Commit 6a02588d authored by Christian Adamski's avatar Christian Adamski Committed by Christian Adamski
Browse files

Issue #3273649 by ChristianAdamski, danthorne: Proximity filter feature...

Issue #3273649 by ChristianAdamski, danthorne: Proximity filter feature "Remember the last selection" for views exposed filters doesn't work
parent 3bef5c7b
Loading
Loading
Loading
Loading
+25 −3
Changes for src/Plugin/views/filter/ProximityFilter.php: 25 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ class ProximityFilter extends NumericFilter implements ContainerFactoryPluginInt
   *
   * @var \Drupal\geolocation\LocationInputManager
   */
  protected $locationInputManager;
  protected LocationInputManager $locationInputManager;

  /**
   * Constructs a Handler object.
@@ -60,7 +60,7 @@ class ProximityFilter extends NumericFilter implements ContainerFactoryPluginInt
  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
  protected function defineOptions(): array {
    // Add source, lat, lng and filter.
    $options = parent::defineOptions();

@@ -156,7 +156,29 @@ class ProximityFilter extends NumericFilter implements ContainerFactoryPluginInt
  /**
   * {@inheritdoc}
   */
  public function acceptExposedInput($input) {
  public function storeExposedInput($input, $status) {
    parent::storeExposedInput($input, $status);

    if (empty($input['center'])) {
      return;
    }

    $session = $this->view->getRequest()->getSession();
    $views_session = $session->get('views', []);
    $display_id = ($this->view->display_handler->isDefaulted('filters')) ? 'default' : $this->view->current_display;

    if (empty($views_session[$this->view->storage->id()][$display_id])) {
      return;
    }

    $views_session[$this->view->storage->id()][$display_id]['center'] = $input['center'];
    $session->set('views', $views_session);
  }

  /**
   * {@inheritdoc}
   */
  public function acceptExposedInput($input): bool {
    parent::acceptExposedInput($input);

    if (