diff --git a/dashboard-ui/scripts/tvlatest.js b/dashboard-ui/scripts/tvlatest.js new file mode 100644 index 0000000000..3d958ca089 --- /dev/null +++ b/dashboard-ui/scripts/tvlatest.js @@ -0,0 +1,81 @@ +define([], function () { + + function getView() { + + return 'Thumb'; + } + + function loadLatest(context, params) { + + Dashboard.showLoadingMsg(); + + var userId = Dashboard.getCurrentUserId(); + + var parentId = params.topParentId; + + var options = { + + IncludeItemTypes: "Episode", + Limit: 30, + Fields: "PrimaryImageAspectRatio,SyncInfo", + ParentId: parentId, + ImageTypeLimit: 1, + EnableImageTypes: "Primary,Backdrop,Banner,Thumb" + }; + + ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) { + + var view = getView(); + var html = ''; + + if (view == 'ThumbCard') { + + html += LibraryBrowser.getPosterViewHtml({ + items: items, + shape: "backdrop", + preferThumb: true, + inheritThumb: false, + showUnplayedIndicator: false, + showChildCountIndicator: true, + overlayText: false, + showParentTitle: true, + lazy: true, + showTitle: true, + cardLayout: true + }); + + } else if (view == 'Thumb') { + + html += LibraryBrowser.getPosterViewHtml({ + items: items, + shape: "backdrop", + preferThumb: true, + inheritThumb: false, + showParentTitle: false, + showUnplayedIndicator: false, + showChildCountIndicator: true, + overlayText: false, + centerText: true, + lazy: true, + showTitle: false, + overlayPlayButton: AppInfo.enableAppLayouts + }); + } + + var elem = context.querySelector('#latestEpisodes'); + elem.innerHTML = html; + ImageLoader.lazyChildren(elem); + + Dashboard.hideLoadingMsg(); + }); + } + return function (view, params, tabContent) { + + var self = this; + + self.renderTab = function() { + + loadLatest(tabContent, params); + }; + }; +}); \ No newline at end of file diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js index 3c51a15825..92f424c1f3 100644 --- a/dashboard-ui/scripts/tvrecommended.js +++ b/dashboard-ui/scripts/tvrecommended.js @@ -20,79 +20,13 @@ loadResume(); loadNextUp(); - loadLatest(); - } - - function loadLatest() { - - Dashboard.showLoadingMsg(); - - var userId = Dashboard.getCurrentUserId(); - - var parentId = params.topParentId; - - var options = { - - IncludeItemTypes: "Episode", - Limit: 30, - Fields: "PrimaryImageAspectRatio,SyncInfo", - ParentId: parentId, - ImageTypeLimit: 1, - EnableImageTypes: "Primary,Backdrop,Banner,Thumb" - }; - - ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) { - - var viewStyle = getView(); - var html = ''; - - if (viewStyle == 'ThumbCard') { - - html += LibraryBrowser.getPosterViewHtml({ - items: items, - shape: getThumbShape(), - preferThumb: true, - inheritThumb: false, - showUnplayedIndicator: false, - showChildCountIndicator: true, - overlayText: false, - showParentTitle: true, - lazy: true, - showTitle: true, - cardLayout: true - }); - - } else if (viewStyle == 'Thumb') { - - html += LibraryBrowser.getPosterViewHtml({ - items: items, - shape: getThumbShape(), - preferThumb: true, - inheritThumb: false, - showParentTitle: false, - showUnplayedIndicator: false, - showChildCountIndicator: true, - overlayText: false, - centerText: true, - lazy: true, - showTitle: false, - overlayPlayButton: AppInfo.enableAppLayouts - }); - } - - var elem = view.querySelector('#latestEpisodes'); - elem.innerHTML = html; - ImageLoader.lazyChildren(elem); - - Dashboard.hideLoadingMsg(); - }); } function loadNextUp() { var query = { - Limit: enableScrollX() ? 24 : 15, + Limit: 24, Fields: "PrimaryImageAspectRatio,SeriesInfo,DateCreated,SyncInfo", UserId: Dashboard.getCurrentUserId(), ImageTypeLimit: 1, @@ -116,7 +50,7 @@ html += libraryBrowser.getPosterViewHtml({ items: result.Items, - shape: getThumbShape(), + shape: "backdrop", showTitle: true, preferThumb: true, showParentTitle: true, @@ -129,7 +63,7 @@ html += libraryBrowser.getPosterViewHtml({ items: result.Items, - shape: getThumbShape(), + shape: "backdrop", showTitle: true, showParentTitle: true, overlayText: false, @@ -160,7 +94,7 @@ var parentId = LibraryMenu.getTopParentId(); - var screenWidth = window.innerWidth; + var limit = 6; var options = { @@ -168,7 +102,7 @@ SortOrder: "Descending", IncludeItemTypes: "Episode", Filters: "IsResumable", - Limit: screenWidth >= 1920 ? 5 : (screenWidth >= 1600 ? 4 : 3), + Limit: limit, Recursive: true, Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData,SyncInfo", ExcludeLocationTypes: "Virtual", @@ -226,23 +160,12 @@ self.initTab = function () { var tabContent = self.tabContent; - - var resumableItems = tabContent.querySelector('#resumableItems'); - var nextUpItems = tabContent.querySelector('#nextUpItems'); - var latestEpisodes = tabContent.querySelector('#latestEpisodes'); - if (enableScrollX()) { - resumableItems.classList.add('hiddenScrollX'); - nextUpItems.classList.add('hiddenScrollX'); - latestEpisodes.classList.add('hiddenScrollX'); + tabContent.querySelector('#resumableItems').classList.add('hiddenScrollX'); } else { - resumableItems.classList.remove('hiddenScrollX'); - nextUpItems.classList.remove('hiddenScrollX'); - latestEpisodes.classList.remove('hiddenScrollX'); + tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX'); } - libraryBrowser.createCardMenus(resumableItems); - libraryBrowser.createCardMenus(nextUpItems); - libraryBrowser.createCardMenus(latestEpisodes); + libraryBrowser.createCardMenus(tabContent.querySelector('#resumableItems')); }; self.renderTab = function () { @@ -262,18 +185,21 @@ case 0: break; case 1: - depends.push('scripts/tvupcoming'); + depends.push('scripts/tvlatest'); break; case 2: - depends.push('scripts/tvshows'); + depends.push('scripts/tvupcoming'); break; case 3: - depends.push('scripts/episodes'); + depends.push('scripts/tvshows'); break; case 4: - depends.push('scripts/tvgenres'); + depends.push('scripts/episodes'); break; case 5: + depends.push('scripts/tvgenres'); + break; + case 6: depends.push('scripts/tvstudios'); break; default: @@ -322,6 +248,11 @@ baseUrl += '?topParentId=' + topParentId; } + if (enableScrollX()) { + view.querySelector('#resumableItems').classList.add('hiddenScrollX'); + } else { + view.querySelector('#resumableItems').classList.remove('hiddenScrollX'); + } libraryBrowser.createCardMenus(view.querySelector('#resumableItems')); libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 1, 2, 4, 5, 6]); diff --git a/dashboard-ui/tv.html b/dashboard-ui/tv.html index eb2af7a7a2..35581be1fc 100644 --- a/dashboard-ui/tv.html +++ b/dashboard-ui/tv.html @@ -2,11 +2,12 @@
- - - - - + + + + + +
@@ -24,20 +25,22 @@

${HeaderNextUp}

${ButtonSync}
-
+
+
+

${HeaderLatestEpisodes}

${ButtonSync}
-
+
-
+
-
+
@@ -66,7 +69,7 @@
-
+
@@ -79,13 +82,13 @@
-
+
-
+