diff --git a/ApiClient.js b/ApiClient.js index 39c154b4b4..31d11c9451 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -2047,6 +2047,27 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }); }; + self.getAdditionalVideoParts = function (userId, itemId) { + + if (!itemId) { + throw new Error("null itemId"); + } + + var options = {}; + + if (userId) { + options.userId = userId; + } + + var url = self.getUrl("Videos/" + itemId + "/AdditionalParts", options); + + return self.ajax({ + type: "GET", + url: url, + dataType: "json" + }); + }; + /** * Gets theme songs for an item */ diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index 958edf2afb..b043e67b31 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -159,6 +159,12 @@
+
+
+ Additional Parts +
+
+
Trailers diff --git a/dashboard-ui/scripts/Itemdetailpage.js b/dashboard-ui/scripts/Itemdetailpage.js index 1afc3bcd54..84bb702f55 100644 --- a/dashboard-ui/scripts/Itemdetailpage.js +++ b/dashboard-ui/scripts/Itemdetailpage.js @@ -148,6 +148,13 @@ renderCast(page, item, context, 10); } + if (!item.PartCount || item.PartCount < 2) { + $('#additionalPartsCollapsible', page).addClass('hide'); + } else { + $('#additionalPartsCollapsible', page).removeClass('hide'); + renderAdditionalParts(page, item); + } + $('#themeSongsCollapsible', page).hide(); $('#themeVideosCollapsible', page).hide(); @@ -350,7 +357,7 @@ if (html) { html = (item.Status == 'Ended' ? 'Aired ' : 'Airs ') + html; - + $('#seriesAirTime', page).show().html(html).trigger('create'); } else { $('#seriesAirTime', page).hide(); @@ -377,7 +384,7 @@ } function renderChildren(page, item) { - + var sortBy = item.Type == "BoxSet" ? "ProductionYear,SortName" : "SortName"; ApiClient.getItems(Dashboard.getCurrentUserId(), { @@ -560,6 +567,21 @@ } + function renderAdditionalParts(page, item) { + + ApiClient.getAdditionalVideoParts(Dashboard.getCurrentUserId(), item.Id).done(function (result) { + + if (result.Items.length) { + + $('#additionalPartsCollapsible', page).show(); + + $('#additionalPartsContent', page).html(getVideosHtml(result.Items)).trigger('create'); + } else { + $('#additionalPartsCollapsible', page).hide(); + } + }); + } + function renderScenes(page, item, limit) { var html = ''; diff --git a/packages.config b/packages.config index aedca50697..f5f290f271 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file