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
}
}
$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'
);
}
......
......@@ -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());
......
......@@ -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 () {
......
......@@ -29,10 +29,6 @@
}
}
#admin-filter-widget .label-text {
display: block;
}
.action-menu.filter {
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