diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 7818140d87..a4f05fd190 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -91,6 +91,10 @@ pre, textarea.pre { background-attachment: fixed!important; } +.ui-btn-icon-notext .ui-btn-inner .ui-icon { + margin: -10px -9px 0 0!important; +} + /* Header */ @@ -756,9 +760,9 @@ progress { cursor: pointer; } -.imgUserItemRating:hover { - opacity: .5; -} + .imgUserItemRating:hover { + opacity: .5; + } @media all and (min-width: 650px) { .itemImageBlock { diff --git a/dashboard-ui/index.html b/dashboard-ui/index.html index d1d9cbf7ee..714d59ff35 100644 --- a/dashboard-ui/index.html +++ b/dashboard-ui/index.html @@ -6,13 +6,13 @@
-

What's New +

What's New

diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js index 87946709fb..8dff90f64f 100644 --- a/dashboard-ui/scripts/indexpage.js +++ b/dashboard-ui/scripts/indexpage.js @@ -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 diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js index 78f72aa58a..7be0b5eadb 100644 --- a/dashboard-ui/scripts/itemlistpage.js +++ b/dashboard-ui/scripts/itemlistpage.js @@ -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" }); } }; diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 7b5436b674..1d9c224db7 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -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');