From 07dbd0c729ecafb9a7ba89737d8ebcb3537b4f6c Mon Sep 17 00:00:00 2001 From: Sebastian Hilger Date: Mon, 23 Apr 2018 18:09:37 +0200 Subject: [PATCH] Add searchOnEnter option to make the Search widget fire on enter key (#3524) Documented in https://github.com/octobercms/docs/commit/e56468a95b01757a0664b063a556a1e7f6d35927. Credit to @manogi. Added an option to change from the "search on every keystroke" functionality to one where the serach is only fired when hitting the enter key. This makes sense when having larger datasets or CMS users who are slow typers. --- modules/backend/widgets/Search.php | 13 +++++++++---- modules/backend/widgets/search/partials/_search.htm | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/backend/widgets/Search.php b/modules/backend/widgets/Search.php index 603beffde..8976313c2 100644 --- a/modules/backend/widgets/Search.php +++ b/modules/backend/widgets/Search.php @@ -41,6 +41,11 @@ class Search extends WidgetBase */ public $scope; + /** + * @var bool Search on enter key instead of every key stroke. + */ + public $searchOnEnter = false; + // // Object properties // @@ -71,6 +76,7 @@ class Search extends WidgetBase 'growable', 'scope', 'mode', + 'searchOnEnter', ]); /* @@ -92,8 +98,7 @@ class Search extends WidgetBase if ($this->partial) { return $this->controller->makePartial($this->partial); - } - else { + } else { return $this->makePartial('search'); } } @@ -106,6 +111,7 @@ class Search extends WidgetBase $this->vars['cssClasses'] = implode(' ', $this->cssClasses); $this->vars['placeholder'] = Lang::get($this->prompt); $this->vars['value'] = $this->getActiveTerm(); + $this->vars['searchOnEnter'] = $this->searchOnEnter; } /** @@ -143,8 +149,7 @@ class Search extends WidgetBase { if (strlen($term)) { $this->putSession('term', $term); - } - else { + } else { $this->resetSession(); } diff --git a/modules/backend/widgets/search/partials/_search.htm b/modules/backend/widgets/search/partials/_search.htm index 713ea8e84..92d4bc922 100644 --- a/modules/backend/widgets/search/partials/_search.htm +++ b/modules/backend/widgets/search/partials/_search.htm @@ -5,7 +5,7 @@ name="getName() ?>" value="" data-request="getEventHandler('onSubmit') ?>" - data-track-input + data-load-indicator data-load-indicator-opaque class="form-control "