mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update filter and sorting menus
This commit is contained in:
parent
c65749da5a
commit
1044d68ba6
14 changed files with 265 additions and 211 deletions
|
@ -2,8 +2,8 @@
|
|||
|
||||
var data = {};
|
||||
|
||||
function getPageData() {
|
||||
var key = getSavedQueryKey();
|
||||
function getPageData(context) {
|
||||
var key = getSavedQueryKey(context);
|
||||
var pageData = data[key];
|
||||
|
||||
if (!pageData) {
|
||||
|
@ -22,19 +22,35 @@
|
|||
return pageData;
|
||||
}
|
||||
|
||||
function getQuery() {
|
||||
function getQuery(context) {
|
||||
|
||||
return getPageData().query;
|
||||
return getPageData(context).query;
|
||||
}
|
||||
|
||||
function getSavedQueryKey() {
|
||||
function getSavedQueryKey(context) {
|
||||
|
||||
return LibraryBrowser.getSavedQueryKey('movies');
|
||||
if (!context.savedQueryKey) {
|
||||
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('channelitems');
|
||||
}
|
||||
return context.savedQueryKey;
|
||||
}
|
||||
|
||||
function getParam(context, name) {
|
||||
|
||||
if (!context.pageParams) {
|
||||
context.pageParams = {};
|
||||
}
|
||||
|
||||
if (!context.pageParams[name]) {
|
||||
context.pageParams[name] = getParameterByName(name);
|
||||
}
|
||||
|
||||
return context.pageParams[name];
|
||||
}
|
||||
|
||||
function reloadFeatures(page) {
|
||||
|
||||
var channelId = getParameterByName('id');
|
||||
var channelId = getParam(page, 'id');
|
||||
|
||||
ApiClient.getJSON(ApiClient.getUrl("Channels/" + channelId + "/Features")).then(function (features) {
|
||||
|
||||
|
@ -55,12 +71,12 @@
|
|||
|
||||
var maxPageSize = features.MaxPageSize;
|
||||
|
||||
var query = getQuery();
|
||||
var query = getQuery(page);
|
||||
if (maxPageSize) {
|
||||
query.Limit = Math.min(maxPageSize, query.Limit || maxPageSize);
|
||||
}
|
||||
|
||||
getPageData().sortFields = features.DefaultSortFields;
|
||||
getPageData(page).sortFields = features.DefaultSortFields;
|
||||
|
||||
reloadItems(page);
|
||||
});
|
||||
|
@ -70,10 +86,10 @@
|
|||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
var channelId = getParameterByName('id');
|
||||
var folderId = getParameterByName('folderId');
|
||||
var channelId = getParam(page, 'id');
|
||||
var folderId = getParam(page, 'folderId');
|
||||
|
||||
var query = getQuery();
|
||||
var query = getQuery(page);
|
||||
query.UserId = Dashboard.getCurrentUserId();
|
||||
|
||||
if (folderId) {
|
||||
|
@ -161,7 +177,7 @@
|
|||
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
||||
|
||||
var filterDialog = new filterDialogFactory({
|
||||
query: getQuery()
|
||||
query: getQuery(page)
|
||||
});
|
||||
|
||||
Events.on(filterDialog, 'filterchange', function () {
|
||||
|
@ -174,7 +190,7 @@
|
|||
|
||||
function showSortMenu(page) {
|
||||
|
||||
var sortFields = getPageData().sortFields;
|
||||
var sortFields = getPageData(page).sortFields;
|
||||
|
||||
var items = [];
|
||||
|
||||
|
@ -225,13 +241,13 @@
|
|||
callback: function () {
|
||||
reloadItems(page);
|
||||
},
|
||||
query: getQuery()
|
||||
query: getQuery(page)
|
||||
});
|
||||
}
|
||||
|
||||
function updateFilterControls(page) {
|
||||
|
||||
var query = getQuery();
|
||||
var query = getQuery(page);
|
||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWith);
|
||||
}
|
||||
|
||||
|
@ -241,7 +257,7 @@
|
|||
|
||||
$('.alphabetPicker', this).on('alphaselect', function (e, character) {
|
||||
|
||||
var query = getQuery();
|
||||
var query = getQuery(page);
|
||||
query.NameStartsWithOrGreater = character;
|
||||
query.StartIndex = 0;
|
||||
|
||||
|
@ -249,7 +265,7 @@
|
|||
|
||||
}).on('alphaclear', function (e) {
|
||||
|
||||
var query = getQuery();
|
||||
var query = getQuery(page);
|
||||
query.NameStartsWithOrGreater = '';
|
||||
|
||||
reloadItems(page);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue