mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Always show enabled filters (#6286)
This commit is contained in:
parent
c5cc093fba
commit
ed3671a536
1 changed files with 12 additions and 4 deletions
|
@ -1,6 +1,7 @@
|
||||||
import dom from '../../scripts/dom';
|
import dom from '../../scripts/dom';
|
||||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||||
import globalize from '../../lib/globalize';
|
import globalize from '../../lib/globalize';
|
||||||
|
import union from 'lodash-es/union';
|
||||||
import Events from '../../utils/events.ts';
|
import Events from '../../utils/events.ts';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import '../../elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../elements/emby-collapse/emby-collapse';
|
import '../../elements/emby-collapse/emby-collapse';
|
||||||
|
@ -9,6 +10,13 @@ import ServerConnections from '../ServerConnections';
|
||||||
import template from './filterdialog.template.html';
|
import template from './filterdialog.template.html';
|
||||||
import { stopMultiSelect } from '../../components/multiSelect/multiSelect';
|
import { stopMultiSelect } from '../../components/multiSelect/multiSelect';
|
||||||
|
|
||||||
|
function merge(resultItems, queryItems, delimiter) {
|
||||||
|
if (!queryItems) {
|
||||||
|
return resultItems;
|
||||||
|
}
|
||||||
|
return union(resultItems, queryItems.split(delimiter)).sort();
|
||||||
|
}
|
||||||
|
|
||||||
function renderOptions(context, selector, cssClass, items, isCheckedFn) {
|
function renderOptions(context, selector, cssClass, items, isCheckedFn) {
|
||||||
const elem = context.querySelector(selector);
|
const elem = context.querySelector(selector);
|
||||||
if (items.length) {
|
if (items.length) {
|
||||||
|
@ -32,19 +40,19 @@ function renderOptions(context, selector, cssClass, items, isCheckedFn) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderFilters(context, result, query) {
|
function renderFilters(context, result, query) {
|
||||||
renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres, function (i) {
|
renderOptions(context, '.genreFilters', 'chkGenreFilter', merge(result.Genres, query.Genres, '|'), function (i) {
|
||||||
const delimeter = '|';
|
const delimeter = '|';
|
||||||
return (delimeter + (query.Genres || '') + delimeter).includes(delimeter + i + delimeter);
|
return (delimeter + (query.Genres || '') + delimeter).includes(delimeter + i + delimeter);
|
||||||
});
|
});
|
||||||
renderOptions(context, '.officialRatingFilters', 'chkOfficialRatingFilter', result.OfficialRatings, function (i) {
|
renderOptions(context, '.officialRatingFilters', 'chkOfficialRatingFilter', merge(result.OfficialRatings, query.OfficialRatings, '|'), function (i) {
|
||||||
const delimeter = '|';
|
const delimeter = '|';
|
||||||
return (delimeter + (query.OfficialRatings || '') + delimeter).includes(delimeter + i + delimeter);
|
return (delimeter + (query.OfficialRatings || '') + delimeter).includes(delimeter + i + delimeter);
|
||||||
});
|
});
|
||||||
renderOptions(context, '.tagFilters', 'chkTagFilter', result.Tags, function (i) {
|
renderOptions(context, '.tagFilters', 'chkTagFilter', merge(result.Tags, query.Tags, '|'), function (i) {
|
||||||
const delimeter = '|';
|
const delimeter = '|';
|
||||||
return (delimeter + (query.Tags || '') + delimeter).includes(delimeter + i + delimeter);
|
return (delimeter + (query.Tags || '') + delimeter).includes(delimeter + i + delimeter);
|
||||||
});
|
});
|
||||||
renderOptions(context, '.yearFilters', 'chkYearFilter', result.Years, function (i) {
|
renderOptions(context, '.yearFilters', 'chkYearFilter', merge(result.Years, query.Years, ','), function (i) {
|
||||||
const delimeter = ',';
|
const delimeter = ',';
|
||||||
return (delimeter + (query.Years || '') + delimeter).includes(delimeter + i + delimeter);
|
return (delimeter + (query.Years || '') + delimeter).includes(delimeter + i + delimeter);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue