diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index 8c6bdc8dc42bf..c98a5481287f5 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -265,29 +265,21 @@ Joomla = window.Joomla || {}; self.getFilterFields().forEach((i) => { i.value = ''; self.checkFilter(i); - - if (window.jQuery && window.jQuery.chosen) { - window.jQuery(i).trigger('chosen:updated'); - } }); } if (self.clearListOptions) { - self.getListFields().forEach((i) => { - i.value = ''; - self.checkFilter(i); - - if (window.jQuery && window.jQuery.chosen) { - window.jQuery(i).trigger('chosen:updated'); - } - }); + if (self.getListFields()) { + self.getListFields().forEach((i) => { + i.value = ''; + self.checkFilter(i); + }); + } + } - // 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) { - window.jQuery('#list_limit').trigger('chosen:updated'); - } } self.theForm.submit(); @@ -333,7 +325,9 @@ 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 @@ -442,10 +436,6 @@ Joomla = window.Joomla || {}; } } }); - - if (window.jQuery && window.jQuery.chosen) { - window.jQuery(this.orderField).trigger('chosen:updated'); - } } this.activeOrder = this.orderField.value; 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,