diff --git a/ApiClient.js b/ApiClient.js index f2c0987236..e63eb4d2b1 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -415,6 +415,17 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }); }; + self.getLiveTvPrograms = function (options) { + + var url = self.getUrl("/LiveTv/Programs", options || {}); + + return self.ajax({ + type: "GET", + url: url, + dataType: "json" + }); + }; + self.getLiveTvRecordings = function (options) { var url = self.getUrl("/LiveTv/Recordings", options || {}); diff --git a/dashboard-ui/livetvchannel.html b/dashboard-ui/livetvchannel.html index c25498cae5..b6512b3a7b 100644 --- a/dashboard-ui/livetvchannel.html +++ b/dashboard-ui/livetvchannel.html @@ -40,6 +40,15 @@
+
+
+ Programs +
+
+ +
+
+
diff --git a/dashboard-ui/scripts/edititemmetadata.js b/dashboard-ui/scripts/edititemmetadata.js index 228408c90b..64de531c6c 100644 --- a/dashboard-ui/scripts/edititemmetadata.js +++ b/dashboard-ui/scripts/edititemmetadata.js @@ -131,9 +131,9 @@ function loadLiveTvChannels(service, openItems, callback) { - ApiClient.getLiveTvChannels({ ServiceName: service }).done(function (services) { + ApiClient.getLiveTvChannels({ ServiceName: service }).done(function (result) { - var nodes = services.map(function (i) { + var nodes = result.Items.map(function (i) { var state = openItems.indexOf(i.Id) == -1 ? 'closed' : 'open'; diff --git a/dashboard-ui/scripts/livetvchannel.js b/dashboard-ui/scripts/livetvchannel.js index 1aa0ee5525..432965e700 100644 --- a/dashboard-ui/scripts/livetvchannel.js +++ b/dashboard-ui/scripts/livetvchannel.js @@ -1,6 +1,85 @@ (function ($, document, apiClient) { - var currentItem + var currentItem; + + function getDisplayTime(date) { + + try { + + date = parseISO8601Date(date, { toLocal: true }); + + } catch (err) { + return date; + } + + date = date.toLocaleTimeString(); + + date = date.replace('0:00', '0'); + + return date; + } + + function renderPrograms(page, result) { + + var html = ''; + + var cssClass = "detailTable"; + + html += '
'; + + html += ''; + + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + + html += ''; + + for (var i = 0, length = result.Items.length; i < length; i++) { + + var program = result.Items[i]; + + html += ''; + + var startDate = program.StartDate; + + try { + + startDate = parseISO8601Date(startDate, { toLocal: true }); + + } catch (err) { + + } + + html += ''; + + html += ''; + + html += ''; + + html += ''; + html += ''; + + html += ''; + } + + html += '
DateStartEndNameGenre
' + startDate.toLocaleDateString() + '' + getDisplayTime(program.StartDate) + '' + getDisplayTime(program.EndDate) + '' + (program.Name || '') + '' + program.Genres.join(' / ') + '
'; + + $('#programList', page).html(html); + } + + function loadPrograms(page) { + + ApiClient.getLiveTvPrograms({ + ChannelIds: currentItem.Id + + }).done(function (result) { + + renderPrograms(page, result); + }); + } function reload(page) { @@ -43,6 +122,8 @@ }); + loadPrograms(page); + Dashboard.hideLoadingMsg(); }); } diff --git a/dashboard-ui/scripts/livetvchannels.js b/dashboard-ui/scripts/livetvchannels.js index 74f4c8ec05..a26c7d6dcb 100644 --- a/dashboard-ui/scripts/livetvchannels.js +++ b/dashboard-ui/scripts/livetvchannels.js @@ -76,7 +76,7 @@ apiClient.getLiveTvChannels().done(function (result) { - renderChannels(page, result); + renderChannels(page, result.Items); }); }); diff --git a/packages.config b/packages.config index 75cba28646..ab57a48b15 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file