1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

deminify filterdialog.js

This commit is contained in:
grafixeyehero 2019-09-13 19:11:15 +03:00
parent a9982263b0
commit b2a2b03b37

View file

@ -1,27 +1,52 @@
define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "require", "emby-checkbox", "emby-collapse", "css!./style"], function(dialogHelper, globalize, connectionManager, events, browser, require) { define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "require", "emby-checkbox", "emby-collapse", "css!./style"], function (dialogHelper, globalize, connectionManager, events, browser, require) {
"use strict"; "use strict";
function renderOptions(context, selector, cssClass, items, isCheckedFn) { function renderOptions(context, selector, cssClass, items, isCheckedFn) {
var elem = context.querySelector(selector); var elem = context.querySelector(selector);
items.length ? elem.classList.remove("hide") : elem.classList.add("hide"); if (items.length) {
elem.classList.remove("hide");
} else {
elem.classList.add("hide");
}
var html = ""; var html = "";
html += '<div class="checkboxList">', html += items.map(function(filter) { html += '<div class="checkboxList">';
var itemHtml = "", html += items.map(function (filter) {
checkedHtml = isCheckedFn(filter) ? " checked" : ""; var itemHtml = "";
return itemHtml += "<label>", itemHtml += '<input is="emby-checkbox" type="checkbox"' + checkedHtml + ' data-filter="' + filter + '" class="' + cssClass + '"/>', itemHtml += "<span>" + filter + "</span>", itemHtml += "</label>" var checkedHtml = isCheckedFn(filter) ? " checked" : "";
}).join(""), html += "</div>", elem.querySelector(".filterOptions").innerHTML = html itemHtml += "<label>";
itemHtml += '<input is="emby-checkbox" type="checkbox"' + checkedHtml + ' data-filter="' + filter + '" class="' + cssClass + '"/>';
itemHtml += "<span>" + filter + "</span>";
itemHtml += "</label>";
return itemHtml;
}).join("");
html += "</div>";
elem.querySelector(".filterOptions").innerHTML = html;
} }
function renderFilters(context, result, query) { function renderFilters(context, result, query) {
result.Tags && (result.Tags.length = Math.min(result.Tags.length, 50)), renderOptions(context, ".genreFilters", "chkGenreFilter", result.Genres, function(i) { if (result.Tags) {
return -1 != ("|" + (query.Genres || "") + "|").indexOf("|" + i + "|") result.Tags.length = Math.min(result.Tags.length, 50);
}), renderOptions(context, ".officialRatingFilters", "chkOfficialRatingFilter", result.OfficialRatings, function(i) { }
return -1 != ("|" + (query.OfficialRatings || "") + "|").indexOf("|" + i + "|") renderOptions(context, ".genreFilters", "chkGenreFilter", result.Genres, function (i) {
}), renderOptions(context, ".tagFilters", "chkTagFilter", result.Tags, function(i) { var delimeter = "|";
return -1 != ("|" + (query.Tags || "") + "|").indexOf("|" + i + "|") return (delimeter + (query.Genres || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
}), renderOptions(context, ".yearFilters", "chkYearFilter", result.Years, function(i) { });
return -1 != ("," + (query.Years || "") + ",").indexOf("," + i + ",") renderOptions(context, ".officialRatingFilters", "chkOfficialRatingFilter", result.OfficialRatings, function (i) {
}) var delimeter = "|";
return (delimeter + (query.OfficialRatings || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
renderOptions(context, ".tagFilters", "chkTagFilter", result.Tags, function (i) {
var delimeter = "|";
return (delimeter + (query.Tags || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
renderOptions(context, ".yearFilters", "chkYearFilter", result.Years, function (i) {
var delimeter = ",";
return (delimeter + (query.Years || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
renderOptions(context, ".audioLanguagesFilters", "chkAudioLanguagesFilter", result.AudioLanguages, function (i) {
var delimeter = ",";
return (delimeter + (query.AudioLanguages || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
} }
function loadDynamicFilters(context, apiClient, userId, itemQuery) { function loadDynamicFilters(context, apiClient, userId, itemQuery) {
@ -29,170 +54,361 @@ define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "
UserId: userId, UserId: userId,
ParentId: itemQuery.ParentId, ParentId: itemQuery.ParentId,
IncludeItemTypes: itemQuery.IncludeItemTypes IncludeItemTypes: itemQuery.IncludeItemTypes
})).then(function(result) { })).then(function (result) {
renderFilters(context, result, itemQuery) renderFilters(context, result, itemQuery);
}) });
} }
function updateFilterControls(context, options) { function updateFilterControls(context, options) {
var elems, i, length, query = options.query; var elems;
if ("livetvchannels" == options.mode) context.querySelector(".chkFavorite").checked = 1 == query.IsFavorite, context.querySelector(".chkLikes").checked = 1 == query.IsLiked, context.querySelector(".chkDislikes").checked = 1 == query.IsDisliked; var i;
else var length;
for (elems = context.querySelectorAll(".chkStandardFilter"), i = 0, length = elems.length; i < length; i++) { var query = options.query;
var chkStandardFilter = elems[i],
filters = "," + (query.Filters || ""), if (options.mode == "livetvchannels") {
filterName = chkStandardFilter.getAttribute("data-filter"); context.querySelector(".chkFavorite").checked = query.IsFavorite == true;
chkStandardFilter.checked = -1 != filters.indexOf("," + filterName) context.querySelector(".chkLikes").checked = query.IsLiked == true;
context.querySelector(".chkDislikes").checked = query.IsDisliked == true;
} else {
elems = context.querySelectorAll(".chkStandardFilter");
for (i = 0, length = elems.length; i < length; i++) {
var chkStandardFilter = elems[i];
var filters = "," + (query.Filters || "");
var filterName = chkStandardFilter.getAttribute("data-filter");
chkStandardFilter.checked = filters.indexOf("," + filterName) != -1;
} }
for (elems = context.querySelectorAll(".chkVideoTypeFilter"), i = 0, length = elems.length; i < length; i++) {
var chkVideoTypeFilter = elems[i],
filters = "," + (query.VideoTypes || ""),
filterName = chkVideoTypeFilter.getAttribute("data-filter");
chkVideoTypeFilter.checked = -1 != filters.indexOf("," + filterName)
} }
for (context.querySelector(".chk3DFilter").checked = 1 == query.Is3D, context.querySelector(".chkHDFilter").checked = 1 == query.IsHD, context.querySelector(".chk4KFilter").checked = 1 == query.Is4K, context.querySelector(".chkSDFilter").checked = 1 == query.IsHD, context.querySelector("#chkSubtitle").checked = 1 == query.HasSubtitles, context.querySelector("#chkTrailer").checked = 1 == query.HasTrailer, context.querySelector("#chkThemeSong").checked = 1 == query.HasThemeSong, context.querySelector("#chkThemeVideo").checked = 1 == query.HasThemeVideo, context.querySelector("#chkSpecialFeature").checked = 1 == query.HasSpecialFeature, context.querySelector("#chkSpecialEpisode").checked = 0 == query.ParentIndexNumber, context.querySelector("#chkMissingEpisode").checked = 1 == query.IsMissing, context.querySelector("#chkFutureEpisode").checked = 1 == query.IsUnaired, i = 0, length = elems.length; i < length; i++) {
var chkStatus = elems[i], elems = context.querySelectorAll(".chkVideoTypeFilter");
filters = "," + (query.SeriesStatus || ""), for (i = 0, length = elems.length; i < length; i++) {
filterName = chkStatus.getAttribute("data-filter"); var chkVideoTypeFilter = elems[i];
chkStatus.checked = -1 != filters.indexOf("," + filterName) var filters = "," + (query.VideoTypes || "");
var filterName = chkVideoTypeFilter.getAttribute("data-filter");
chkVideoTypeFilter.checked = filters.indexOf("," + filterName) != -1;
}
context.querySelector(".chk3DFilter").checked = query.Is3D == true;
context.querySelector(".chkHDFilter").checked = query.IsHD == true;
context.querySelector(".chk4KFilter").checked = query.Is4K == true;
context.querySelector(".chkSDFilter").checked = query.IsHD == true;
context.querySelector("#chkSubtitle").checked = query.HasSubtitles == true;
context.querySelector("#chkTrailer").checked = query.HasTrailer == true;
context.querySelector("#chkThemeSong").checked = query.HasThemeSong == true;
context.querySelector("#chkThemeVideo").checked = query.HasThemeVideo == true;
context.querySelector("#chkSpecialFeature").checked = query.HasSpecialFeature == true;
context.querySelector("#chkSpecialEpisode").checked = query.ParentIndexNumber == 0;
context.querySelector("#chkMissingEpisode").checked = query.IsMissing == true;
context.querySelector("#chkFutureEpisode").checked = query.IsUnaired == true;
for (i = 0, length = elems.length; i < length; i++) {
var chkStatus = elems[i];
var filters = "," + (query.SeriesStatus || "");
var filterName = chkStatus.getAttribute("data-filter");
chkStatus.checked = filters.indexOf("," + filterName) != -1;
} }
} }
function triggerChange(instance) { function triggerChange(instance) {
events.trigger(instance, "filterchange") events.trigger(instance, "filterchange");
} }
function parentWithClass(elem, className) { function parentWithClass(elem, className) {
for (; !elem.classList || !elem.classList.contains(className);) while (!elem.classList || !elem.classList.contains(className)) {
if (!(elem = elem.parentNode)) return null; elem = elem.parentNode;
return elem if (!elem) {
return null;
}
}
return elem;
} }
function setVisibility(context, options) { function setVisibility(context, options) {
"livetvchannels" != options.mode && "albums" != options.mode && "artists" != options.mode && "albumartists" != options.mode && "songs" != options.mode || hideByClass(context, "videoStandard"), enableDynamicFilters(options.mode) && (context.querySelector(".genreFilters").classList.remove("hide"), context.querySelector(".officialRatingFilters").classList.remove("hide"), context.querySelector(".tagFilters").classList.remove("hide"), context.querySelector(".yearFilters").classList.remove("hide")), "movies" != options.mode && "episodes" != options.mode || context.querySelector(".videoTypeFilters").classList.remove("hide"), options.mode, "movies" != options.mode && "series" != options.mode && "episodes" != options.mode || context.querySelector(".features").classList.remove("hide"), "series" == options.mode && context.querySelector(".seriesStatus").classList.remove("hide"), "episodes" == options.mode && showByClass(context, "episodeFilter") if (options.mode == "livetvchannels" || options.mode == "albums" || options.mode == "artists" || options.mode == "albumartists" || options.mode == "songs") {
hideByClass(context, "videoStandard");
}
if (enableDynamicFilters(options.mode)) {
context.querySelector(".genreFilters").classList.remove("hide");
context.querySelector(".officialRatingFilters").classList.remove("hide");
context.querySelector(".tagFilters").classList.remove("hide");
context.querySelector(".yearFilters").classList.remove("hide");
}
if (options.mode == "movies" || options.mode == "episodes") {
context.querySelector(".videoTypeFilters").classList.remove("hide");
}
if (options.mode == "movies" || options.mode == "series" || options.mode == "episodes") {
context.querySelector(".features").classList.remove("hide");
}
if (options.mode == "series") {
context.querySelector(".seriesStatus").classList.remove("hide");
}
if (options.mode == "episodes") {
showByClass(context, "episodeFilter");
}
} }
function showByClass(context, className) { function showByClass(context, className) {
for (var elems = context.querySelectorAll("." + className), i = 0, length = elems.length; i < length; i++) elems[i].classList.remove("hide") var elems = context.querySelectorAll("." + className);
for (var i = 0, length = elems.length; i < length; i++) {
elems[i].classList.remove("hide");
}
} }
function hideByClass(context, className) { function hideByClass(context, className) {
for (var elems = context.querySelectorAll("." + className), i = 0, length = elems.length; i < length; i++) elems[i].classList.add("hide") var elems = context.querySelectorAll("." + className);
for (var i = 0, length = elems.length; i < length; i++) {
elems[i].classList.add("hide");
}
} }
function enableDynamicFilters(mode) { function enableDynamicFilters(mode) {
return "movies" == mode || "series" == mode || "albums" == mode || "albumartists" == mode || "artists" == mode || "songs" == mode || "episodes" == mode return mode == "movies" || mode == "series" || mode == "albums" || mode == "albumartists" || mode == "artists" || mode == "songs" || mode == "episodes";
} }
return function(options) {
return function (options) {
function onFavoriteChange() { function onFavoriteChange() {
var query = options.query; var query = options.query;
query.StartIndex = 0, query.IsFavorite = !!this.checked || null, triggerChange(self) query.StartIndex = 0;
query.IsFavorite = !!this.checked || null;
triggerChange(self);
} }
function onStandardFilterChange() { function onStandardFilterChange() {
var query = options.query, var query = options.query;
filterName = this.getAttribute("data-filter"), var filterName = this.getAttribute("data-filter");
filters = query.Filters || ""; var filters = query.Filters || "";
filters = ("," + filters).replace("," + filterName, "").substring(1), this.checked && (filters = filters ? filters + "," + filterName : filterName), query.StartIndex = 0, query.Filters = filters, triggerChange(self) filters = ("," + filters).replace("," + filterName, "").substring(1);
if (this.checked) {
filters = filters ? filters + "," + filterName : filterName;
}
query.StartIndex = 0;
query.Filters = filters;
triggerChange(self);
} }
function onVideoTypeFilterChange() { function onVideoTypeFilterChange() {
var query = options.query, var query = options.query;
filterName = this.getAttribute("data-filter"), var filterName = this.getAttribute("data-filter");
filters = query.VideoTypes || ""; var filters = query.VideoTypes || "";
filters = ("," + filters).replace("," + filterName, "").substring(1), this.checked && (filters = filters ? filters + "," + filterName : filterName), query.StartIndex = 0, query.VideoTypes = filters, triggerChange(self) filters = ("," + filters).replace("," + filterName, "").substring(1);
if (this.checked) {
filters = filters ? filters + "," + filterName : filterName;
}
query.StartIndex = 0;
query.VideoTypes = filters;
triggerChange(self);
} }
function onStatusChange() { function onStatusChange() {
var query = options.query, var query = options.query;
filterName = this.getAttribute("data-filter"), var filterName = this.getAttribute("data-filter");
filters = query.SeriesStatus || ""; var filters = query.SeriesStatus || "";
filters = ("," + filters).replace("," + filterName, "").substring(1), this.checked && (filters = filters ? filters + "," + filterName : filterName), query.SeriesStatus = filters, query.StartIndex = 0, triggerChange(self) filters = ("," + filters).replace("," + filterName, "").substring(1);
if (this.checked) {
filters = filters ? filters + "," + filterName : filterName;
}
query.SeriesStatus = filters;
query.StartIndex = 0;
triggerChange(self);
} }
function bindEvents(context) { function bindEvents(context) {
var elems, i, length, query = options.query; var elems;
if ("livetvchannels" == options.mode) { var i;
for (elems = context.querySelectorAll(".chkFavorite"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("change", onFavoriteChange); var length;
context.querySelector(".chkLikes").addEventListener("change", function() { var query = options.query;
query.StartIndex = 0, query.IsLiked = !!this.checked || null, triggerChange(self)
}), context.querySelector(".chkDislikes").addEventListener("change", function() { if (options.mode == "livetvchannels") {
query.StartIndex = 0, query.IsDisliked = !!this.checked || null, triggerChange(self) elems = context.querySelectorAll(".chkFavorite");
}) for (i = 0, length = elems.length; i < length; i++) {
} else elems[i].addEventListener("change", onFavoriteChange);
for (elems = context.querySelectorAll(".chkStandardFilter"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("change", onStandardFilterChange); }
for (elems = context.querySelectorAll(".chkVideoTypeFilter"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("change", onVideoTypeFilterChange); context.querySelector(".chkLikes").addEventListener("change", function () {
for (context.querySelector(".chk3DFilter").addEventListener("change", function() { query.StartIndex = 0;
query.StartIndex = 0, query.Is3D = !!this.checked || null, triggerChange(self) query.IsLiked = this.checked ? true : null;
}), context.querySelector(".chk4KFilter").addEventListener("change", function() { triggerChange(self);
query.StartIndex = 0, query.Is4K = !!this.checked || null, triggerChange(self) });
}), context.querySelector(".chkHDFilter").addEventListener("change", function() { context.querySelector(".chkDislikes").addEventListener("change", function () {
query.StartIndex = 0, query.IsHD = !!this.checked || null, triggerChange(self) query.StartIndex = 0;
}), context.querySelector(".chkSDFilter").addEventListener("change", function() { query.IsDisliked = this.checked ? true : null;
query.StartIndex = 0, query.IsHD = !this.checked && null, triggerChange(self) triggerChange(self);
}), elems = context.querySelectorAll(".chkStatus"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("change", onStatusChange); });
context.querySelector("#chkTrailer").addEventListener("change", function() { } else {
query.StartIndex = 0, query.HasTrailer = !!this.checked || null, triggerChange(self) elems = context.querySelectorAll(".chkStandardFilter");
}), context.querySelector("#chkThemeSong").addEventListener("change", function() { for (i = 0, length = elems.length; i < length; i++) {
query.StartIndex = 0, query.HasThemeSong = !!this.checked || null, triggerChange(self) elems[i].addEventListener("change", onStandardFilterChange);
}), context.querySelector("#chkSpecialFeature").addEventListener("change", function() { }
query.StartIndex = 0, query.HasSpecialFeature = !!this.checked || null, triggerChange(self) }
}), context.querySelector("#chkThemeVideo").addEventListener("change", function() { elems = context.querySelectorAll(".chkVideoTypeFilter");
query.StartIndex = 0, query.HasThemeVideo = !!this.checked || null, triggerChange(self) for (i = 0, length = elems.length; i < length; i++) {
}), context.querySelector("#chkMissingEpisode").addEventListener("change", function() { elems[i].addEventListener("change", onVideoTypeFilterChange);
query.StartIndex = 0, this.checked ? (query.IsMissing = !0, query.IsUnaired = !1) : (query.IsMissing = !1, query.IsUnaired = context.querySelector("#chkFutureEpisode").checked || null), triggerChange(self) }
}), context.querySelector("#chkSpecialEpisode").addEventListener("change", function() { context.querySelector(".chk3DFilter").addEventListener("change", function () {
query.StartIndex = 0, query.ParentIndexNumber = this.checked ? 0 : null, triggerChange(self) query.StartIndex = 0;
}), context.querySelector("#chkFutureEpisode").addEventListener("change", function() { query.Is3D = this.checked ? true : null;
query.StartIndex = 0, this.checked ? (query.IsUnaired = !0, query.IsMissing = null) : (query.IsUnaired = null, query.IsMissing = context.querySelector("#chkMissingEpisode").checked), triggerChange(self) triggerChange(self);
}), context.querySelector("#chkSubtitle").addEventListener("change", function() { });
query.StartIndex = 0, query.HasSubtitles = !!this.checked || null, triggerChange(self) context.querySelector(".chk4KFilter").addEventListener("change", function () {
}), context.addEventListener("change", function(e) { query.StartIndex = 0;
query.Is4K = this.checked ? true : null;
triggerChange(self);
});
context.querySelector(".chkHDFilter").addEventListener("change", function () {
query.StartIndex = 0;
query.IsHD = this.checked ? true : null;
triggerChange(self);
});
context.querySelector(".chkSDFilter").addEventListener("change", function () {
query.StartIndex = 0;
query.IsHD = this.checked ? false : null;
triggerChange(self);
});
elems = context.querySelectorAll(".chkStatus");
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener("change", onStatusChange);
}
context.querySelector("#chkTrailer").addEventListener("change", function () {
query.StartIndex = 0;
query.HasTrailer = this.checked ? true : null;
triggerChange(self);
});
context.querySelector("#chkThemeSong").addEventListener("change", function () {
query.StartIndex = 0;
query.HasThemeSong = this.checked ? true : null;
triggerChange(self);
});
context.querySelector("#chkSpecialFeature").addEventListener("change", function () {
query.StartIndex = 0;
query.HasSpecialFeature = this.checked ? true : null;
triggerChange(self);
});
context.querySelector("#chkThemeVideo").addEventListener("change", function () {
query.StartIndex = 0;
query.HasThemeVideo = this.checked ? true : null;
triggerChange(self);
});
context.querySelector("#chkMissingEpisode").addEventListener("change", function () {
query.StartIndex = 0;
query.IsMissing = this.checked ? true : false;
triggerChange(self);
});
context.querySelector("#chkSpecialEpisode").addEventListener("change", function () {
query.StartIndex = 0;
query.ParentIndexNumber = this.checked ? 0 : null;
triggerChange(self);
});
context.querySelector("#chkFutureEpisode").addEventListener("change", function () {
query.StartIndex = 0;
if (this.checked) {
query.IsUnaired = true;
query.IsVirtualUnaired = null;
} else {
query.IsUnaired = null;
query.IsVirtualUnaired = false;
}
triggerChange(self);
});
context.querySelector("#chkSubtitle").addEventListener("change", function () {
query.StartIndex = 0;
query.HasSubtitles = this.checked ? true : null;
triggerChange(self);
});
context.addEventListener("change", function (e) {
var chkGenreFilter = parentWithClass(e.target, "chkGenreFilter"); var chkGenreFilter = parentWithClass(e.target, "chkGenreFilter");
if (chkGenreFilter) { if (chkGenreFilter) {
var filterName = chkGenreFilter.getAttribute("data-filter"), var filterName = chkGenreFilter.getAttribute("data-filter");
filters = query.Genres || "", var filters = query.Genres || "";
delimiter = "|"; var delimiter = "|";
return filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1), chkGenreFilter.checked && (filters = filters ? filters + delimiter + filterName : filterName), query.StartIndex = 0, query.Genres = filters, void triggerChange(self) filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
if (chkGenreFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
query.StartIndex = 0;
query.Genres = filters;
triggerChange(self);
return;
} }
var chkTagFilter = parentWithClass(e.target, "chkTagFilter"); var chkTagFilter = parentWithClass(e.target, "chkTagFilter");
if (chkTagFilter) { if (chkTagFilter) {
var filterName = chkTagFilter.getAttribute("data-filter"), var filterName = chkTagFilter.getAttribute("data-filter");
filters = query.Tags || "", var filters = query.Tags || "";
delimiter = "|"; var delimiter = "|";
return filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1), chkTagFilter.checked && (filters = filters ? filters + delimiter + filterName : filterName), query.StartIndex = 0, query.Tags = filters, void triggerChange(self) filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
if (chkTagFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
query.StartIndex = 0;
query.Tags = filters;
triggerChange(self);
return;
} }
var chkYearFilter = parentWithClass(e.target, "chkYearFilter"); var chkYearFilter = parentWithClass(e.target, "chkYearFilter");
if (chkYearFilter) { if (chkYearFilter) {
var filterName = chkYearFilter.getAttribute("data-filter"), var filterName = chkYearFilter.getAttribute("data-filter");
filters = query.Years || "", var filters = query.Years || "";
delimiter = ","; var delimiter = ",";
return filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1), chkYearFilter.checked && (filters = filters ? filters + delimiter + filterName : filterName), query.StartIndex = 0, query.Years = filters, void triggerChange(self) filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
if (chkYearFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
query.StartIndex = 0;
query.Years = filters;
triggerChange(self);
return;
} }
var chkOfficialRatingFilter = parentWithClass(e.target, "chkOfficialRatingFilter"); var chkOfficialRatingFilter = parentWithClass(e.target, "chkOfficialRatingFilter");
if (chkOfficialRatingFilter) { if (chkOfficialRatingFilter) {
var filterName = chkOfficialRatingFilter.getAttribute("data-filter"), var filterName = chkOfficialRatingFilter.getAttribute("data-filter");
filters = query.OfficialRatings || "", var filters = query.OfficialRatings || "";
delimiter = "|"; var delimiter = "|";
return filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1), chkOfficialRatingFilter.checked && (filters = filters ? filters + delimiter + filterName : filterName), query.StartIndex = 0, query.OfficialRatings = filters, void triggerChange(self) filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
if (chkOfficialRatingFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
query.StartIndex = 0;
query.OfficialRatings = filters;
triggerChange(self);
return;
} }
}) });
} }
var self = this; var self = this;
self.show = function() {
return new Promise(function(resolve, reject) { self.show = function () {
require(["text!./filterdialog.template.html"], function(template) { return new Promise(function (resolve, reject) {
require(["text!./filterdialog.template.html"], function (template) {
var dlg = dialogHelper.createDialog({ var dlg = dialogHelper.createDialog({
removeOnClose: !0, removeOnClose: true,
modal: !1 modal: false
}); });
if (dlg.classList.add("ui-body-a"), dlg.classList.add("background-theme-a"), dlg.classList.add("formDialog"), dlg.classList.add("filterDialog"), dlg.innerHTML = globalize.translateDocument(template), setVisibility(dlg, options), dialogHelper.open(dlg), dlg.addEventListener("close", resolve), updateFilterControls(dlg, options), bindEvents(dlg), enableDynamicFilters(options.mode)) { dlg.classList.add("ui-body-a");
dlg.classList.add("background-theme-a");
dlg.classList.add("formDialog");
dlg.classList.add("filterDialog");
dlg.innerHTML = globalize.translateDocument(template);
setVisibility(dlg, options);
dialogHelper.open(dlg);
dlg.addEventListener("close", resolve);
updateFilterControls(dlg, options);
bindEvents(dlg);
if (enableDynamicFilters(options.mode)) {
dlg.classList.add("dynamicFilterDialog"); dlg.classList.add("dynamicFilterDialog");
var apiClient = connectionManager.getApiClient(options.serverId); var apiClient = connectionManager.getApiClient(options.serverId);
loadDynamicFilters(dlg, apiClient, apiClient.getCurrentUserId(), options.query) loadDynamicFilters(dlg, apiClient, apiClient.getCurrentUserId(), options.query);
} }
}) });
}) });
} };
} };
}); });