diff --git a/dashboard-ui/scripts/Itemdetailpage.js b/dashboard-ui/scripts/Itemdetailpage.js index 66647cc716..86f9e225bd 100644 --- a/dashboard-ui/scripts/Itemdetailpage.js +++ b/dashboard-ui/scripts/Itemdetailpage.js @@ -167,35 +167,35 @@ if (imageTags.Logo) { - html += createGalleryImage(item.Id, "Logo", item.ImageTags.Logo); + html += LibraryBrowser.createGalleryImage(item.Id, "Logo", item.ImageTags.Logo); } if (imageTags.Thumb) { - html += createGalleryImage(item.Id, "Thumb", item.ImageTags.Thumb); + html += LibraryBrowser.createGalleryImage(item.Id, "Thumb", item.ImageTags.Thumb); } if (imageTags.Art) { - html += createGalleryImage(item.Id, "Art", item.ImageTags.Art); + html += LibraryBrowser.createGalleryImage(item.Id, "Art", item.ImageTags.Art); } if (imageTags.Menu) { - html += createGalleryImage(item.Id, "Menu", item.ImageTags.Menu); + html += LibraryBrowser.createGalleryImage(item.Id, "Menu", item.ImageTags.Menu); } if (imageTags.Disc) { - html += createGalleryImage(item.Id, "Disc", item.ImageTags.Disc); + html += LibraryBrowser.createGalleryImage(item.Id, "Disc", item.ImageTags.Disc); } if (imageTags.Box) { - html += createGalleryImage(item.Id, "Box", item.ImageTags.Box); + html += LibraryBrowser.createGalleryImage(item.Id, "Box", item.ImageTags.Box); } if (item.BackdropImageTags) { for (i = 0, length = item.BackdropImageTags.length; i < length; i++) { - html += createGalleryImage(item.Id, "Backdrop", item.BackdropImageTags[0], i); + html += LibraryBrowser.createGalleryImage(item.Id, "Backdrop", item.BackdropImageTags[0], i); } } @@ -203,44 +203,13 @@ if (item.ScreenshotImageTags) { for (i = 0, length = item.ScreenshotImageTags.length; i < length; i++) { - html += createGalleryImage(item.Id, "Screenshot", item.ScreenshotImageTags[0], i); + html += LibraryBrowser.createGalleryImage(item.Id, "Screenshot", item.ScreenshotImageTags[0], i); } } $('#galleryContent', page).html(html).trigger('create'); } - function createGalleryImage(itemId, type, tag, index) { - - var downloadWidth = 400; - var lightboxWidth = 800; - var html = ''; - - if (typeof (index) == "undefined") index = 0; - - html += '
'; - html += ''; - html += ''; - html += '
'; - - html += '
'; - html += 'Close'; - html += ''; - html += '
'; - - return html; - } - function renderMediaInfo(page, item) { var html = ''; @@ -433,32 +402,9 @@ for (var i = 0, length = casts.length; i < length; i++) { - var cast = casts[i]; - var role = cast.Role || cast.Type; - - html += ''; - html += '
'; - - if (cast.PrimaryImageTag) { - - var imgUrl = ApiClient.getPersonImageUrl(cast.Name, { - width: 185, - tag: cast.PrimaryImageTag, - type: "primary" - }); - - html += ''; - } else { - var style = "background-color:" + LibraryBrowser.getMetroColor(cast.Name) + ";"; - - html += ''; - } - - html += '
' + cast.Name + '
'; - html += '
' + role + '
'; - - html += '
'; + var cast = casts[i]; + html += LibraryBrowser.createCastImage(cast); } $('#castContent', page).html(html); diff --git a/dashboard-ui/scripts/gamedetailpage.js b/dashboard-ui/scripts/gamedetailpage.js index 0736e6e86a..0edd16a732 100644 --- a/dashboard-ui/scripts/gamedetailpage.js +++ b/dashboard-ui/scripts/gamedetailpage.js @@ -90,35 +90,35 @@ if (imageTags.Logo) { - html += createGalleryImage(item.Id, "Logo", item.ImageTags.Logo); + html += LibraryBrowser.createGalleryImage(item.Id, "Logo", item.ImageTags.Logo); } if (imageTags.Thumb) { - html += createGalleryImage(item.Id, "Thumb", item.ImageTags.Thumb); + html += LibraryBrowser.createGalleryImage(item.Id, "Thumb", item.ImageTags.Thumb); } if (imageTags.Art) { - html += createGalleryImage(item.Id, "Art", item.ImageTags.Art); + html += LibraryBrowser.createGalleryImage(item.Id, "Art", item.ImageTags.Art); } if (imageTags.Menu) { - html += createGalleryImage(item.Id, "Menu", item.ImageTags.Menu); + html += LibraryBrowser.createGalleryImage(item.Id, "Menu", item.ImageTags.Menu); } if (imageTags.Disc) { - html += createGalleryImage(item.Id, "Disc", item.ImageTags.Disc); + html += LibraryBrowser.createGalleryImage(item.Id, "Disc", item.ImageTags.Disc); } if (imageTags.Box) { - html += createGalleryImage(item.Id, "Box", item.ImageTags.Box); + html += LibraryBrowser.createGalleryImage(item.Id, "Box", item.ImageTags.Box); } if (item.BackdropImageTags) { for (var i = 0, length = item.BackdropImageTags.length; i < length; i++) { - html += createGalleryImage(item.Id, "Backdrop", item.BackdropImageTags[0], i); + html += LibraryBrowser.createGalleryImage(item.Id, "Backdrop", item.BackdropImageTags[0], i); } } @@ -126,37 +126,6 @@ $('#galleryContent', page).html(html).trigger('create'); } - function createGalleryImage(itemId, type, tag, index) { - - var downloadWidth = 400; - var lightboxWidth = 800; - var html = ''; - - if (typeof (index) == "undefined") index = 0; - - html += '
'; - html += ''; - html += ''; - html += '
'; - - html += '
'; - html += 'Close'; - html += ''; - html += '
'; - - return html; - } - function renderTrailers(page, item) { var html = ''; diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 22cfbc31af..49466724ef 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -977,7 +977,70 @@ } return html; - } + }, + + createGalleryImage: function (itemId, type, tag, index) { + + var downloadWidth = 400; + var lightboxWidth = 800; + var html = ''; + + if (typeof (index) == "undefined") index = 0; + + html += '
'; + html += ''; + html += ''; + html += '
'; + + html += '
'; + html += 'Close'; + html += ''; + html += '
'; + + return html; + }, + + createCastImage: function (cast) { + + var html = ''; + + var role = cast.Role || cast.Type; + + html += ''; + html += '
'; + + if (cast.PrimaryImageTag) { + + var imgUrl = ApiClient.getPersonImageUrl(cast.Name, { + width: 185, + tag: cast.PrimaryImageTag, + type: "primary" + }); + + html += ''; + } else { + var style = "background-color:" + LibraryBrowser.getMetroColor(cast.Name) + ";"; + + html += ''; + } + + html += '
' + cast.Name + '
'; + html += '
' + role + '
'; + + html += '
'; + + return html; + } }; diff --git a/dashboard-ui/scripts/tvseries.js b/dashboard-ui/scripts/tvseries.js index 86f3663369..1c1a86b25a 100644 --- a/dashboard-ui/scripts/tvseries.js +++ b/dashboard-ui/scripts/tvseries.js @@ -1,4 +1,6 @@ -(function ($, document, LibraryBrowser) { +(function ($, document, LibraryBrowser, window) { + + var currentItem; function reload(page) { @@ -8,7 +10,9 @@ ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) { - var name = item.Name; + currentItem = item; + + var name = item.Name; $('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item)); @@ -16,12 +20,22 @@ $('#itemName', page).html(name); + setInitialCollapsibleState(page, item); renderDetails(page, item); Dashboard.hideLoadingMsg(); }); } + function setInitialCollapsibleState(page, item) { + + if (!item.People || !item.People.length) { + $('#castCollapsible', page).hide(); + } else { + $('#castCollapsible', page).show(); + } + } + function renderDetails(page, item) { if (item.Taglines && item.Taglines.length) { @@ -58,8 +72,8 @@ function renderUserDataIcons(page, item) { $('#itemRatings', page).html(LibraryBrowser.getUserDataIconsHtml(item)); } - - function renderSeasons(page) { + + function renderSeasons(page) { ApiClient.getItems(Dashboard.getCurrentUserId(), { @@ -73,30 +87,122 @@ useAverageAspectRatio: true }); - $('#seasonsContent', page).html(html); }); } - $(document).on('pageshow', "#tvSeriesPage", function () { + function renderGallery(page, item) { - var page = this; - - reload(page); + var imageTags = item.ImageTags || {}; + var html = ''; + var i, length; - $('#seasonsCollapsible', page).on('expand.lazyload', function () { + if (imageTags.Logo) { - renderSeasons(page); + html += LibraryBrowser.createGalleryImage(item.Id, "Logo", item.ImageTags.Logo); + } + if (imageTags.Thumb) { - $(this).off('expand.lazyload'); - }); - - }).on('pagehide', "#tvSeriesPage", function () { + html += LibraryBrowser.createGalleryImage(item.Id, "Thumb", item.ImageTags.Thumb); + } + if (imageTags.Art) { - var page = this; + html += LibraryBrowser.createGalleryImage(item.Id, "Art", item.ImageTags.Art); - $('#seasonsCollapsible', page).off('expand.lazyload'); - }); + } + if (imageTags.Menu) { + html += LibraryBrowser.createGalleryImage(item.Id, "Menu", item.ImageTags.Menu); -})(jQuery, document, LibraryBrowser); \ No newline at end of file + } + if (imageTags.Disc) { + + html += LibraryBrowser.createGalleryImage(item.Id, "Disc", item.ImageTags.Disc); + } + if (imageTags.Box) { + + html += LibraryBrowser.createGalleryImage(item.Id, "Box", item.ImageTags.Box); + } + + if (item.BackdropImageTags) { + + for (i = 0, length = item.BackdropImageTags.length; i < length; i++) { + html += LibraryBrowser.createGalleryImage(item.Id, "Backdrop", item.BackdropImageTags[0], i); + } + + } + + if (item.ScreenshotImageTags) { + + for (i = 0, length = item.ScreenshotImageTags.length; i < length; i++) { + html += LibraryBrowser.createGalleryImage(item.Id, "Screenshot", item.ScreenshotImageTags[0], i); + } + } + + $('#galleryContent', page).html(html).trigger('create'); + } + + function renderCast(page, item) { + var html = ''; + + var casts = item.People || []; + + for (var i = 0, length = casts.length; i < length; i++) { + + var cast = casts[i]; + + html += LibraryBrowser.createCastImage(cast); + } + + $('#castContent', page).html(html); + } + + $(document).on('pageinit', "#tvSeriesPage", function () { + + var page = this; + + }).on('pageshow', "#tvSeriesPage", function () { + + var page = this; + + reload(page); + + $('#seasonsCollapsible', page).on('expand.lazyload', function () { + + renderSeasons(page); + + $(this).off('expand.lazyload'); + }); + + $('#castCollapsible', page).on('expand.lazyload', function () { + renderCast(page, currentItem); + + $(this).off('expand.lazyload'); + }); + + $('#galleryCollapsible', page).on('expand.lazyload', function () { + + renderGallery(page, currentItem); + + $(this).off('expand.lazyload'); + }); + + }).on('pagehide', "#tvSeriesPage", function () { + + currentItem = null; + var page = this; + + $('#seasonsCollapsible', page).off('expand.lazyload'); + $('#castCollapsible', page).off('expand.lazyload'); + $('#galleryCollapsible', page).off('expand.lazyload'); + }); + + function tvSeriesPage() { + + var self = this; + + } + + window.TvSeriesPage = new tvSeriesPage(); + +})(jQuery, document, LibraryBrowser, window);