diff --git a/ApiClient.js b/ApiClient.js index 4c88b35c3f..fe361a8685 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -95,6 +95,10 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { return name; }()); + function encodeName(name) { + return encodeURIComponent(name).replace("'", '%27'); + } + /** * Wraps around jQuery ajax methods to add additional info to the request. */ @@ -867,7 +871,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Studios/" + name); + var url = self.getUrl("Studios/" + encodeName(name)); return self.ajax({ type: "GET", @@ -885,7 +889,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Genres/" + name); + var url = self.getUrl("Genres/" + encodeName(name)); return self.ajax({ type: "GET", @@ -921,7 +925,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Persons/" + name); + var url = self.getUrl("Persons/" + encodeName(name)); return self.ajax({ type: "GET", @@ -1047,7 +1051,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; - var url = "Persons/" + name + "/Images/" + options.type; + var url = "Persons/" + encodeName(name) + "/Images/" + options.type; if (options.index != null) { url += "/" + options.index; @@ -1117,7 +1121,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; - var url = "Genres/" + name + "/Images/" + options.type; + var url = "Genres/" + encodeName(name) + "/Images/" + options.type; if (options.index != null) { url += "/" + options.index; @@ -1131,7 +1135,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; /** - * Constructs a url for a genre image + * Constructs a url for a studio image * @param {String} name * @param {Object} options * Options supports the following properties: @@ -1152,7 +1156,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; - var url = "Studios/" + name + "/Images/" + options.type; + var url = "Studios/" + encodeName(name) + "/Images/" + options.type; if (options.index != null) { url += "/" + options.index; @@ -1739,7 +1743,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/ItemsByName/Favorites/" + name); + var url = self.getUrl("Users/" + userId + "/ItemsByName/Favorites/" + encodeName(name)); var method = isFavorite ? "POST" : "DELETE"; @@ -1766,7 +1770,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/ItemsByName/" + name + "/Rating", { + var url = self.getUrl("Users/" + userId + "/ItemsByName/" + encodeName(name) + "/Rating", { likes: likes }); @@ -1791,7 +1795,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/ItemsByName/" + name + "/Rating"); + var url = self.getUrl("Users/" + userId + "/ItemsByName/" + encodeName(name) + "/Rating"); return self.ajax({ type: "DELETE", @@ -1815,7 +1819,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/ItemsByName/" + name + "/UserData"); + var url = self.getUrl("Users/" + userId + "/ItemsByName/" + encodeName(name) + "/UserData"); return self.ajax({ type: "GET", diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index d9fc5c25d6..945beca856 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -20,7 +20,7 @@ } .libraryPage, .itemListContent { - background: #494949 url(images/bgflip.png) repeat-x!important; + background: #262626!important; background-attachment: fixed!important; } @@ -28,8 +28,8 @@ color: #fff; } -.listPage { - background: #262626!important; +.type-home { + background: #494949 url(images/bgflip.png) repeat-x!important; } .listHeader { diff --git a/dashboard-ui/itemlist.html b/dashboard-ui/itemlist.html index 3a208f6b37..37c423f42a 100644 --- a/dashboard-ui/itemlist.html +++ b/dashboard-ui/itemlist.html @@ -7,100 +7,8 @@
- -

- -

-
- -
- -
- -
-
- -
- View - Sort - Filter - Index -
- -
- - - - - -
+

+
diff --git a/dashboard-ui/moviegenres.html b/dashboard-ui/moviegenres.html index fd7254f30f..0c99af2675 100644 --- a/dashboard-ui/moviegenres.html +++ b/dashboard-ui/moviegenres.html @@ -4,7 +4,7 @@ Media Browser -
+

Movies

diff --git a/dashboard-ui/moviepeople.html b/dashboard-ui/moviepeople.html index c350023816..b7fc595f92 100644 --- a/dashboard-ui/moviepeople.html +++ b/dashboard-ui/moviepeople.html @@ -4,7 +4,7 @@ Media Browser -
+

Movies

diff --git a/dashboard-ui/movies.html b/dashboard-ui/movies.html index 740fb89ffe..741cc5c8c7 100644 --- a/dashboard-ui/movies.html +++ b/dashboard-ui/movies.html @@ -4,7 +4,7 @@ Media Browser -
+

Movies

diff --git a/dashboard-ui/moviestudios.html b/dashboard-ui/moviestudios.html index 095160db4f..c8150a53de 100644 --- a/dashboard-ui/moviestudios.html +++ b/dashboard-ui/moviestudios.html @@ -4,7 +4,7 @@ Media Browser -
+

Movies

diff --git a/dashboard-ui/scripts/Itemdetailpage.js b/dashboard-ui/scripts/Itemdetailpage.js index 3fc249bc4c..16b371eaa3 100644 --- a/dashboard-ui/scripts/Itemdetailpage.js +++ b/dashboard-ui/scripts/Itemdetailpage.js @@ -421,7 +421,7 @@ function renderCast(page, item) { var html = ''; - var casts = item.People || {}; + var casts = item.People || []; for (var i = 0, length = casts.length; i < length; i++) { diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js index a2b0e827e5..9d487751bb 100644 --- a/dashboard-ui/scripts/itemlistpage.js +++ b/dashboard-ui/scripts/itemlistpage.js @@ -1,190 +1,67 @@ -var ItemListPage = { +(function ($, document) { - onPageShow: function () { + // The base query options + var query = { - ItemListPage.reload(); - }, + SortBy: "SortName", + SortOrder: "Ascending", + Fields: "PrimaryImageAspectRatio,UserData,DisplayMediaType,ItemCounts,DateCreated", + Limit: LibraryBrowser.getDetaultPageSize(), + StartIndex: 0 + }; - reload: function () { - - var page = $.mobile.activePage; - - var parentId = getParameterByName('parentId'); - - var query = { - Fields: "PrimaryImageAspectRatio", - 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"); - } - - var sortBy = getParameterByName('SortBy') || 'SortName'; - query.SortBy = sortBy; - $('.radioSortBy', page).checked(false).checkboxradio("refresh"); - $('#radio' + sortBy, page).checked(true).checkboxradio("refresh"); - - var order = getParameterByName('SortOrder') || 'Ascending'; - - query.SortOrder = order; - $('.radioSortOrder', page).checked(false).checkboxradio("refresh"); - $('#radio' + order, page).checked(true).checkboxradio("refresh"); - - query.Filters = filters.join(','); - //query.limit = 100; - - if (parentId) { - query.parentId = parentId; - - ApiClient.getItem(Dashboard.getCurrentUserId(), parentId).done(ItemListPage.renderTitle); - } - else { - $('#itemName', page).html(getParameterByName('Title') || "Media Library"); - } - - ItemListPage.refreshItems(query); - }, - - refreshItems: function (query) { + function reloadItems(page) { Dashboard.showLoadingMsg(); - var page = $.mobile.activePage; + var userId = Dashboard.getCurrentUserId(); - page.itemQuery = query; + ApiClient.getItems(userId, query).done(function (result) { - ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(ItemListPage.renderItems); - }, + var html = ''; - renderItems: function (result) { + var showPaging = result.TotalRecordCount > query.Limit; - var items = result.Items; + if (showPaging) { + html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, true); + } - var query = $.mobile.activePage.itemQuery; + html += LibraryBrowser.getPosterDetailViewHtml({ + items: result.Items, + useAverageAspectRatio: true + }); - var renderOptions = { + if (showPaging) { + html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount); + } - items: items, - useAverageAspectRatio: query.Recursive !== true, - showTitle: query.Recursive - }; + var elem = $('#items', page).html(html).trigger('create'); - var html = LibraryBrowser.getPosterViewHtml(renderOptions); + $('select', elem).on('change', function () { + query.StartIndex = (parseInt(this.value) - 1) * query.Limit; + reloadItems(page); + }); - $('#listItems', $.mobile.activePage).html(html); + Dashboard.hideLoadingMsg(); + }); - Dashboard.hideLoadingMsg(); - }, + ApiClient.getItem(userId, query.ParentId).done(function (item) { - renderTitle: function (item) { + $('#itemName', page).html(item.Name); - - $('#itemName', $.mobile.activePage).html(item.Name); - }, - - sortBy: function (sortBy) { - - var query = $.mobile.activePage.itemQuery; - query.SortBy = sortBy; - ItemListPage.refreshItems(query); - }, - - sortOrder: function (order) { - - 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; - - 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" }); + }); } -}; -$(document).on('pageshow', "#itemListPage", ItemListPage.onPageShow); + $(document).on('pageinit', "#itemListPage", function () { + + + }).on('pagebeforeshow', "#itemListPage", function () { + + query.ParentId = getParameterByName('parentId'); + reloadItems(this); + + }).on('pageshow', "#itemListPage", function () { + + }); + +})(jQuery, document); \ No newline at end of file diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index ca850ac066..5dafd972ac 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -81,7 +81,11 @@ } else if (item.MediaType == "Game") { +<<<<<<< HEAD html += ""; +======= + html += ""; +>>>>>>> 103dcc97e4c89de41919ec2ab1025f8df30e87fb } else { diff --git a/dashboard-ui/tvgenres.html b/dashboard-ui/tvgenres.html index 6e92c239b3..f71d879561 100644 --- a/dashboard-ui/tvgenres.html +++ b/dashboard-ui/tvgenres.html @@ -4,7 +4,7 @@ Media Browser -
+

TV Shows

diff --git a/dashboard-ui/tvpeople.html b/dashboard-ui/tvpeople.html index c8bdc805eb..e57e19c327 100644 --- a/dashboard-ui/tvpeople.html +++ b/dashboard-ui/tvpeople.html @@ -4,7 +4,7 @@ Media Browser -
+

TV Shows

diff --git a/dashboard-ui/tvshows.html b/dashboard-ui/tvshows.html index 0d6ab94bef..c1a7298889 100644 --- a/dashboard-ui/tvshows.html +++ b/dashboard-ui/tvshows.html @@ -4,7 +4,7 @@ Media Browser -
+

TV Shows

diff --git a/dashboard-ui/tvstudios.html b/dashboard-ui/tvstudios.html index 861f4704c3..1f9be0fbba 100644 --- a/dashboard-ui/tvstudios.html +++ b/dashboard-ui/tvstudios.html @@ -4,7 +4,7 @@ Media Browser -
+

TV Shows

diff --git a/packages.config b/packages.config index 01740f591a..edc26a2383 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file