Skip to content
Snippets Groups Projects
Commit 89052a1f authored by Elmar Ludwig's avatar Elmar Ludwig Committed by Jan-Hendrik Willms
Browse files

combine search filters into a single widget, fixes #4238

Closes #4238

Merge request studip/studip!3075
parent aba69291
No related branches found
No related tags found
No related merge requests found
...@@ -72,37 +72,40 @@ class Search_GlobalsearchController extends AuthenticatedController ...@@ -72,37 +72,40 @@ class Search_GlobalsearchController extends AuthenticatedController
} }
} }
$semester_filter = $sidebar->addWidget(new OptionsWidget(_('Semester'))); $filter_widget = $sidebar->addWidget(new OptionsWidget(_('Filter')));
$semester_filter->id = 'semester_filter'; $filter_widget->id = 'filter_widget';
$semester_filter->addSelect(
_('Semester'), $filter_widget->addElement(
null, new SelectListElement(
'semester', _('Semester'),
$this->getSemesters(), 'semester',
'future', $this->getSemesters(),
['id' => 'semester_select'] 'future',
['id' => 'semester_select']
),
'semester_filter'
); );
$seminar_type_filter = $sidebar->addWidget(new OptionsWidget(_('Veranstaltungstypen'))); $filter_widget->addElement(
$seminar_type_filter->id = 'seminar_type_filter'; new SelectListElement(
$seminar_type_filter->addSelect( _('Typ der Veranstaltung'),
_('Typ der Veranstaltung'), 'seminar_type',
null, $this->getSemClasses(),
'seminar_type', '',
$this->getSemClasses(), ['id' => 'seminar_type_select']
'', ),
['id' => 'seminar_type_select'] 'seminar_type_filter'
); );
$institute_filter = $sidebar->addWidget(new OptionsWidget(_('Einrichtungen'))); $filter_widget->addElement(
$institute_filter->id = 'institute_filter'; new SelectListElement(
$institute_filter->addSelect( _('Einrichtung'),
_('Einrichtung'), 'institute',
null, $this->getInstitutes(),
'institute', '',
$this->getInstitutes(), ['id' => 'institute_select']
'', ),
['id' => 'institute_select'] 'institute_filter'
); );
} }
......
...@@ -2,8 +2,6 @@ STUDIP.domReady(() => { ...@@ -2,8 +2,6 @@ STUDIP.domReady(() => {
var cache = STUDIP.Search.getCache(); var cache = STUDIP.Search.getCache();
// initially hide all filters except for the semester filter // initially hide all filters except for the semester filter
$('#reset-search').hide(); $('#reset-search').hide();
STUDIP.Search.hideAllFilters();
$('div#semester_filter').show();
STUDIP.Search.setActiveCategory('show_all_categories'); STUDIP.Search.setActiveCategory('show_all_categories');
STUDIP.Search.showActiveFilters(STUDIP.Search.getFilter()); STUDIP.Search.showActiveFilters(STUDIP.Search.getFilter());
......
...@@ -339,7 +339,8 @@ const Search = { ...@@ -339,7 +339,8 @@ const Search = {
* Hide all select filters in the sidebar. * Hide all select filters in the sidebar.
*/ */
hideAllFilters: function () { hideAllFilters: function () {
$('div[id$="_filter"]').hide(); $('#filter_widget').hide();
$('#filter_widget *[id$="_filter"]').hide();
}, },
/** /**
...@@ -350,12 +351,11 @@ const Search = { ...@@ -350,12 +351,11 @@ const Search = {
showFilter: function (category) { showFilter: function (category) {
var filters = $('#search-results').data('filters'); var filters = $('#search-results').data('filters');
STUDIP.Search.hideAllFilters(); 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++) { for (let i = 0; i < filters[category].length; i++) {
$(`#${filters[category][i]}_filter`).show(); $(`#${filters[category][i]}_filter`).show();
} }
} else if (category === 'show_all_categories') {
$('#semester_filter').show();
} }
}, },
...@@ -547,7 +547,7 @@ const Search = { ...@@ -547,7 +547,7 @@ const Search = {
if (item != 'category') { if (item != 'category') {
var value = filter[item]; var value = filter[item];
if (value.trim()) { 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 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); var filterItem = $('<button></button>').addClass('button remove-filter').text(name + ': ' + value_text).attr('data-filter-name', item);
filterItem.on('click', function () { filterItem.on('click', function () {
......
...@@ -29,10 +29,6 @@ ...@@ -29,10 +29,6 @@
} }
} }
#admin-filter-widget .label-text {
display: block;
}
.action-menu.filter { .action-menu.filter {
margin-left: 1em; margin-left: 1em;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment