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

Added filters to the item list page

This commit is contained in:
Luke Pulverenti 2013-03-30 10:57:30 -04:00
parent a42f547c00
commit 70187c1434
6 changed files with 203 additions and 48 deletions

View file

@ -81,7 +81,8 @@
IsFolder: true
}, {
Name: "Favorites",
IsFolder: true
IsFolder: true,
url: "itemlist.html?IsFavorite=true&Recursive=true&Title=Favorites"
}, {
Name: "Genres",
IsFolder: true

View file

@ -7,19 +7,42 @@
reload: function () {
var page = $.mobile.activePage;
var parentId = getParameterByName('parentId');
var query = {
Fields: "PrimaryImageAspectRatio",
SortBy: "SortName"
SortBy: "SortName",
Recursive: getParameterByName('Recursive') == 'true'
};
var filters = [];
if (getParameterByName('IsResumable') == 'true') {
filters.push("IsResumable");
$('#chkResumable', page).checked(true).checkboxradio("refresh");
}
if (getParameterByName('IsFavorite') == 'true') {
filters.push("IsFavorite");
$('#chkIsFavorite', page).checked(true).checkboxradio("refresh");
}
if (getParameterByName('IsRecentlyAdded') == 'true') {
filters.push("IsRecentlyAdded");
$('#chkRecentlyAdded', page).checked(true).checkboxradio("refresh");
}
query.Filters = filters.join(',');
if (parentId) {
query.parentId = parentId;
ApiClient.getItem(Dashboard.getCurrentUserId(), parentId).done(ItemListPage.renderTitle);
} else {
$('#itemName', $.mobile.activePage).html("Media Library");
}
else {
$('#itemName', page).html(getParameterByName('Title') || "Media Library");
}
ItemListPage.refreshItems(query);
@ -27,6 +50,8 @@
refreshItems: function (query) {
Dashboard.showLoadingMsg();
var page = $.mobile.activePage;
page.itemQuery = query;
@ -38,15 +63,20 @@
var items = result.Items;
var query = $.mobile.activePage.itemQuery;
var renderOptions = {
items: items,
useAverageAspectRatio: true
useAverageAspectRatio: query.Recursive !== true,
showTitle: query.Recursive
};
var html = Dashboard.getPosterViewHtml(renderOptions);
$('#listItems', $.mobile.activePage).html(html);
Dashboard.hideLoadingMsg();
},
renderTitle: function (item) {
@ -67,6 +97,84 @@
var query = $.mobile.activePage.itemQuery;
query.SortOrder = order;
ItemListPage.refreshItems(query);
},
filter: function(name, add)
{
var query = $.mobile.activePage.itemQuery;
var filters = query.Filters || "";
filters = (',' + filters).replace(',' + name, '').substring(1);
if (add) {
filters = filters ? (filters + ',' + name) : name;
}
query.Filters = filters;
query.Recursive = filters.length ? true : false;
ItemListPage.refreshItems(query);
},
showSortPanel: function () {
var page = $.mobile.activePage;
$('#viewpanel', page).hide();
$('#filterpanel', page).hide();
$('#indexpanel', page).hide();
$('#sortpanel', page).show();
$('#btnViewPanel', page).buttonMarkup({ theme: "c" });
$('#btnSortPanel', page).buttonMarkup({ theme: "a" });
$('#btnIndexPanel', page).buttonMarkup({ theme: "c" });
$('#btnFilterPanel', page).buttonMarkup({ theme: "c" });
},
showViewPanel: function () {
var page = $.mobile.activePage;
$('#viewpanel', page).show();
$('#filterpanel', page).hide();
$('#indexpanel', page).hide();
$('#sortpanel', page).hide();
$('#btnViewPanel', page).buttonMarkup({ theme: "a" });
$('#btnSortPanel', page).buttonMarkup({ theme: "c" });
$('#btnIndexPanel', page).buttonMarkup({ theme: "c" });
$('#btnFilterPanel', page).buttonMarkup({ theme: "c" });
},
showIndexPanel: function () {
var page = $.mobile.activePage;
$('#viewpanel', page).hide();
$('#filterpanel', page).hide();
$('#indexpanel', page).show();
$('#sortpanel', page).hide();
$('#btnViewPanel', page).buttonMarkup({ theme: "c" });
$('#btnSortPanel', page).buttonMarkup({ theme: "c" });
$('#btnIndexPanel', page).buttonMarkup({ theme: "a" });
$('#btnFilterPanel', page).buttonMarkup({ theme: "c" });
},
showFilterPanel: function () {
var page = $.mobile.activePage;
$('#viewpanel', page).hide();
$('#filterpanel', page).show();
$('#indexpanel', page).hide();
$('#sortpanel', page).hide();
$('#btnViewPanel', page).buttonMarkup({ theme: "c" });
$('#btnSortPanel', page).buttonMarkup({ theme: "c" });
$('#btnIndexPanel', page).buttonMarkup({ theme: "c" });
$('#btnFilterPanel', page).buttonMarkup({ theme: "a" });
}
};

View file

@ -311,11 +311,11 @@ var Dashboard = {
},
showLoadingMsg: function () {
$.mobile.showPageLoadingMsg();
$.mobile.loading("show");
},
hideLoadingMsg: function () {
$.mobile.hidePageLoadingMsg();
$.mobile.loading("hide");
},
processPluginConfigurationUpdateResult: function () {
@ -434,7 +434,7 @@ var Dashboard = {
var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary;
var href = item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id;
var href = item.url || (item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id);
var showText = options.showTitle || !hasPrimaryImage || (item.Type !== 'Movie' && item.Type !== 'Series' && item.Type !== 'Season' && item.Type !== 'Trailer');