From 49ac05366b861f6907129c2bbc399503148dcbd7 Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Tue, 23 Jul 2019 20:46:50 +0200 Subject: [PATCH 1/8] Update searchtools.es6.js --- .../media_source/system/js/searchtools.es6.js | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index 8c6bdc8dc42bf..0deef46677bf4 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -273,16 +273,20 @@ Joomla = window.Joomla || {}; } if (self.clearListOptions) { - self.getListFields().forEach((i) => { - i.value = ''; - self.checkFilter(i); + if (self.getListFields()) { + self.getListFields().forEach(i => { + i.value = ''; + self.checkFilter(i); + }); if (window.jQuery && window.jQuery.chosen) { - window.jQuery(i).trigger('chosen:updated'); + window.jQuery('#list_limit').trigger('chosen:updated'); } - }); + } + } - // Special case to limit box to the default config limit + // Special case to limit box to the default config limit + if (document.querySelector('#list_limit')) { document.querySelector('#list_limit').value = self.options.defaultLimit; if (window.jQuery && window.jQuery.chosen) { @@ -333,8 +337,10 @@ Joomla = window.Joomla || {}; } getListFields() { - return Array.prototype.slice.call(this.listContainer.querySelectorAll('select')); - } + if (this.listContainer) { + return Array.prototype.slice.call(this.listContainer.querySelectorAll('select')); + } + } // Common container functions // eslint-disable-next-line class-methods-use-this From 95e300bba1458757c9845bbb1da68149e03cfe3d Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Tue, 23 Jul 2019 21:41:42 +0200 Subject: [PATCH 2/8] Hound --- build/media_source/system/js/searchtools.es6.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index 0deef46677bf4..c8e5dbd0437fd 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -273,8 +273,8 @@ Joomla = window.Joomla || {}; } if (self.clearListOptions) { - if (self.getListFields()) { - self.getListFields().forEach(i => { + if (self.getListFields()) { + self.getListFields().forEach((i) => { i.value = ''; self.checkFilter(i); }); @@ -282,7 +282,7 @@ Joomla = window.Joomla || {}; if (window.jQuery && window.jQuery.chosen) { window.jQuery('#list_limit').trigger('chosen:updated'); } - } + }); } // Special case to limit box to the default config limit @@ -339,8 +339,8 @@ Joomla = window.Joomla || {}; getListFields() { if (this.listContainer) { return Array.prototype.slice.call(this.listContainer.querySelectorAll('select')); - } - } + } + } // Common container functions // eslint-disable-next-line class-methods-use-this From 145cbd20c194e776c9aef45e6b010bf4ec6f0753 Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Tue, 23 Jul 2019 22:00:26 +0200 Subject: [PATCH 3/8] Update searchtools.es6.js --- build/media_source/system/js/searchtools.es6.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index c8e5dbd0437fd..c197228329acd 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -282,7 +282,7 @@ Joomla = window.Joomla || {}; if (window.jQuery && window.jQuery.chosen) { window.jQuery('#list_limit').trigger('chosen:updated'); } - }); + } } // Special case to limit box to the default config limit From 5cc29eba85e066b679136785f3a6c357d9438bbf Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Tue, 23 Jul 2019 22:19:27 +0200 Subject: [PATCH 4/8] Update build/media_source/system/js/searchtools.es6.js Co-Authored-By: Richard Fath --- build/media_source/system/js/searchtools.es6.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index c197228329acd..ebf399011e224 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -280,7 +280,7 @@ Joomla = window.Joomla || {}; }); if (window.jQuery && window.jQuery.chosen) { - window.jQuery('#list_limit').trigger('chosen:updated'); + document.querySelector('#list_limit').trigger('chosen:updated'); } } } From 3722b413d5765ee5c90503c2bd7655288ae5978d Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Wed, 24 Jul 2019 07:56:11 +0200 Subject: [PATCH 5/8] Removed jQuery - triggers --- build/media_source/system/js/searchtools.es6.js | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index ebf399011e224..c98a5481287f5 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -265,10 +265,6 @@ Joomla = window.Joomla || {}; self.getFilterFields().forEach((i) => { i.value = ''; self.checkFilter(i); - - if (window.jQuery && window.jQuery.chosen) { - window.jQuery(i).trigger('chosen:updated'); - } }); } @@ -278,20 +274,12 @@ Joomla = window.Joomla || {}; i.value = ''; self.checkFilter(i); }); - - if (window.jQuery && window.jQuery.chosen) { - document.querySelector('#list_limit').trigger('chosen:updated'); - } } } // Special case to limit box to the default config limit if (document.querySelector('#list_limit')) { document.querySelector('#list_limit').value = self.options.defaultLimit; - - if (window.jQuery && window.jQuery.chosen) { - window.jQuery('#list_limit').trigger('chosen:updated'); - } } self.theForm.submit(); @@ -448,10 +436,6 @@ Joomla = window.Joomla || {}; } } }); - - if (window.jQuery && window.jQuery.chosen) { - window.jQuery(this.orderField).trigger('chosen:updated'); - } } this.activeOrder = this.orderField.value; From 59e6f2f405c70ced5f757f76b26828d551f07d00 Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Fri, 26 Jul 2019 16:27:08 +0200 Subject: [PATCH 6/8] Added list limit from filter form --- layouts/joomla/searchtools/default.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/layouts/joomla/searchtools/default.php b/layouts/joomla/searchtools/default.php index 0c93556305bac..9bef413db9802 100644 --- a/layouts/joomla/searchtools/default.php +++ b/layouts/joomla/searchtools/default.php @@ -59,13 +59,26 @@ $noResultsText = Text::_($noResults); } } + + // List limit from filter form + $listLimit = $data['view']->filterForm->getFieldAttribute('limit', 'default', 20, 'list'); +} + +// List limit from view, filter-form, global parameter or default 20 +if (isset($listLimit)) +{ + $listLimit = $data['options']['defaultLimit'] ?? $listLimit; +} +else +{ + $listLimit = $data['options']['defaultLimit'] ?? Factory::getApplication()->get('list_limit', 20); } // Set some basic options. $customOptions = array( 'filtersHidden' => isset($data['options']['filtersHidden']) && $data['options']['filtersHidden'] ? $data['options']['filtersHidden'] : $hideActiveFilters, 'filterButton' => isset($data['options']['filterButton']) && $data['options']['filterButton'] ? $data['options']['filterButton'] : $showFilterButton, - 'defaultLimit' => $data['options']['defaultLimit'] ?? Factory::getApplication()->get('list_limit', 20), + 'defaultLimit' => $listLimit, 'searchFieldSelector' => '#filter_search', 'selectorFieldName' => $selectorFieldName, 'showSelector' => $showSelector, From 9dc81e687e9dd81d830bd7715414e09c58de6c23 Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Fri, 26 Jul 2019 23:21:08 +0200 Subject: [PATCH 7/8] Added check for allowed limit value --- layouts/joomla/searchtools/default.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/layouts/joomla/searchtools/default.php b/layouts/joomla/searchtools/default.php index 9bef413db9802..4e40cc8b36a91 100644 --- a/layouts/joomla/searchtools/default.php +++ b/layouts/joomla/searchtools/default.php @@ -74,6 +74,10 @@ $listLimit = $data['options']['defaultLimit'] ?? Factory::getApplication()->get('list_limit', 20); } +// Check if in allowed range +$allowedLimits = array(5, 10, 15, 20, 25, 30, 50, 100, 200, 500); +$listLimit = in_array ($listLimit , $allowedLimits) ? $listLimit :20; + // Set some basic options. $customOptions = array( 'filtersHidden' => isset($data['options']['filtersHidden']) && $data['options']['filtersHidden'] ? $data['options']['filtersHidden'] : $hideActiveFilters, From a767cdd261490a5851ebc58fd19e4c0447b24581 Mon Sep 17 00:00:00 2001 From: Ove Eriksson Date: Sat, 27 Jul 2019 13:43:05 +0200 Subject: [PATCH 8/8] Removed check for allowed listlimits --- layouts/joomla/searchtools/default.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/layouts/joomla/searchtools/default.php b/layouts/joomla/searchtools/default.php index 4e40cc8b36a91..9bef413db9802 100644 --- a/layouts/joomla/searchtools/default.php +++ b/layouts/joomla/searchtools/default.php @@ -74,10 +74,6 @@ $listLimit = $data['options']['defaultLimit'] ?? Factory::getApplication()->get('list_limit', 20); } -// Check if in allowed range -$allowedLimits = array(5, 10, 15, 20, 25, 30, 50, 100, 200, 500); -$listLimit = in_array ($listLimit , $allowedLimits) ? $listLimit :20; - // Set some basic options. $customOptions = array( 'filtersHidden' => isset($data['options']['filtersHidden']) && $data['options']['filtersHidden'] ? $data['options']['filtersHidden'] : $hideActiveFilters,