diff --git a/app/controllers/search/globalsearch.php b/app/controllers/search/globalsearch.php index ed4ed6eaa4d7764b30811d9de82695dd134a292d..05fcda294353eab1e66630036758c91adf2958ef 100644 --- a/app/controllers/search/globalsearch.php +++ b/app/controllers/search/globalsearch.php @@ -72,37 +72,40 @@ class Search_GlobalsearchController extends AuthenticatedController } } - $semester_filter = $sidebar->addWidget(new OptionsWidget(_('Semester'))); - $semester_filter->id = 'semester_filter'; - $semester_filter->addSelect( - _('Semester'), - null, - 'semester', - $this->getSemesters(), - 'future', - ['id' => 'semester_select'] + $filter_widget = $sidebar->addWidget(new OptionsWidget(_('Filter'))); + $filter_widget->id = 'filter_widget'; + + $filter_widget->addElement( + new SelectListElement( + _('Semester'), + 'semester', + $this->getSemesters(), + 'future', + ['id' => 'semester_select'] + ), + 'semester_filter' ); - $seminar_type_filter = $sidebar->addWidget(new OptionsWidget(_('Veranstaltungstypen'))); - $seminar_type_filter->id = 'seminar_type_filter'; - $seminar_type_filter->addSelect( - _('Typ der Veranstaltung'), - null, - 'seminar_type', - $this->getSemClasses(), - '', - ['id' => 'seminar_type_select'] + $filter_widget->addElement( + new SelectListElement( + _('Typ der Veranstaltung'), + 'seminar_type', + $this->getSemClasses(), + '', + ['id' => 'seminar_type_select'] + ), + 'seminar_type_filter' ); - $institute_filter = $sidebar->addWidget(new OptionsWidget(_('Einrichtungen'))); - $institute_filter->id = 'institute_filter'; - $institute_filter->addSelect( - _('Einrichtung'), - null, - 'institute', - $this->getInstitutes(), - '', - ['id' => 'institute_select'] + $filter_widget->addElement( + new SelectListElement( + _('Einrichtung'), + 'institute', + $this->getInstitutes(), + '', + ['id' => 'institute_select'] + ), + 'institute_filter' ); } diff --git a/resources/assets/javascripts/bootstrap/search.js b/resources/assets/javascripts/bootstrap/search.js index 6a0559b8f397959bc3a5c3fe6802bc60baf51593..7d4fb76d0ea9193288d7a31aef0ab12dcbf50078 100644 --- a/resources/assets/javascripts/bootstrap/search.js +++ b/resources/assets/javascripts/bootstrap/search.js @@ -2,8 +2,6 @@ STUDIP.domReady(() => { var cache = STUDIP.Search.getCache(); // initially hide all filters except for the semester filter $('#reset-search').hide(); - STUDIP.Search.hideAllFilters(); - $('div#semester_filter').show(); STUDIP.Search.setActiveCategory('show_all_categories'); STUDIP.Search.showActiveFilters(STUDIP.Search.getFilter()); diff --git a/resources/assets/javascripts/lib/search.js b/resources/assets/javascripts/lib/search.js index 2f97f43ee8b7ebe7d3feb9773961318f88ce6e63..f8108cda2b51732f9c47ccfb1a4d94d90bea0c2e 100644 --- a/resources/assets/javascripts/lib/search.js +++ b/resources/assets/javascripts/lib/search.js @@ -339,7 +339,8 @@ const Search = { * Hide all select filters in the sidebar. */ hideAllFilters: function () { - $('div[id$="_filter"]').hide(); + $('#filter_widget').hide(); + $('#filter_widget *[id$="_filter"]').hide(); }, /** @@ -350,12 +351,11 @@ const Search = { showFilter: function (category) { var filters = $('#search-results').data('filters'); STUDIP.Search.hideAllFilters(); - if (filters && filters[category] !== undefined && category != 'show_all_categories') { + if (filters && filters[category] !== undefined && filters[category].length > 0) { + $('#filter_widget').show(); for (let i = 0; i < filters[category].length; i++) { $(`#${filters[category][i]}_filter`).show(); } - } else if (category === 'show_all_categories') { - $('#semester_filter').show(); } }, @@ -547,7 +547,7 @@ const Search = { if (item != 'category') { var value = filter[item]; if (value.trim()) { - var name = $(`#${item}_filter .sidebar-widget-header`).text().trim(); + var name = $(`#${item}_filter .label-text`).text().trim(); var value_text = $(`#${item}_select option:selected`).text().trim(); var filterItem = $('<button></button>').addClass('button remove-filter').text(name + ': ' + value_text).attr('data-filter-name', item); filterItem.on('click', function () { diff --git a/resources/assets/stylesheets/scss/admin-courses.scss b/resources/assets/stylesheets/scss/admin-courses.scss index 753e56be88362848e69c6142f5177a139c439067..09ec6ca139353190547ca633de5e9dbfe77a3257 100644 --- a/resources/assets/stylesheets/scss/admin-courses.scss +++ b/resources/assets/stylesheets/scss/admin-courses.scss @@ -29,10 +29,6 @@ } } -#admin-filter-widget .label-text { - display: block; -} - .action-menu.filter { margin-left: 1em; }