From a68f3abf1c53cc702b6e748d927d95d25c59b31a Mon Sep 17 00:00:00 2001 From: Samuell Date: Wed, 12 Feb 2020 16:52:09 +0100 Subject: [PATCH] Fix pagination reset if search input is filled (#4918) Fixes #4914. --- modules/backend/behaviors/ListController.php | 2 +- modules/backend/widgets/Lists.php | 11 +++++++---- .../widgets/lists/partials/_list_pagination.htm | 3 ++- .../lists/partials/_list_pagination_simple.htm | 3 ++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/backend/behaviors/ListController.php b/modules/backend/behaviors/ListController.php index df01b63ea..06709017d 100644 --- a/modules/backend/behaviors/ListController.php +++ b/modules/backend/behaviors/ListController.php @@ -212,7 +212,7 @@ class ListController extends ControllerBehavior */ if ($searchWidget = $toolbarWidget->getSearchWidget()) { $searchWidget->bindEvent('search.submit', function () use ($widget, $searchWidget) { - $widget->setSearchTerm($searchWidget->getActiveTerm()); + $widget->setSearchTerm($searchWidget->getActiveTerm(), true); return $widget->onRefresh(); }); diff --git a/modules/backend/widgets/Lists.php b/modules/backend/widgets/Lists.php index 4389b13ed..70eeff323 100644 --- a/modules/backend/widgets/Lists.php +++ b/modules/backend/widgets/Lists.php @@ -642,9 +642,7 @@ class Lists extends WidgetBase protected function getCurrentPageNumber($query) { $currentPageNumber = $this->currentPageNumber; - - if (!$currentPageNumber && empty($this->searchTerm)) { - // Restore the last visited page from the session if available. + if (empty($currentPageNumber)) { $currentPageNumber = $this->getSession('lastVisitedPage'); } @@ -1410,13 +1408,18 @@ class Lists extends WidgetBase * Applies a search term to the list results, searching will disable tree * view if a value is supplied. * @param string $term + * @param boolean $resetPagination */ - public function setSearchTerm($term) + public function setSearchTerm($term, $resetPagination = false) { if (!empty($term)) { $this->showTree = false; } + if ($resetPagination) { + $this->currentPageNumber = 1; + } + $this->searchTerm = $term; } diff --git a/modules/backend/widgets/lists/partials/_list_pagination.htm b/modules/backend/widgets/lists/partials/_list_pagination.htm index 47f34f3e6..1f81e8894 100644 --- a/modules/backend/widgets/lists/partials/_list_pagination.htm +++ b/modules/backend/widgets/lists/partials/_list_pagination.htm @@ -34,7 +34,8 @@ name="page" class="form-control input-sm custom-select select-no-search" data-request="getEventHandler('onPaginate') ?>" - data-load-indicator=""> + data-load-indicator="" + autocomplete="off"> diff --git a/modules/backend/widgets/lists/partials/_list_pagination_simple.htm b/modules/backend/widgets/lists/partials/_list_pagination_simple.htm index 3ace68ab3..1735143fa 100644 --- a/modules/backend/widgets/lists/partials/_list_pagination_simple.htm +++ b/modules/backend/widgets/lists/partials/_list_pagination_simple.htm @@ -29,7 +29,8 @@