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 @@
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 += 'Date | ';
+ html += 'Start | ';
+ html += 'End | ';
+ html += 'Name | ';
+ html += 'Genre | ';
+
+ 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 += '' + startDate.toLocaleDateString() + ' | ';
+
+ html += '' + getDisplayTime(program.StartDate) + ' | ';
+
+ html += '' + getDisplayTime(program.EndDate) + ' | ';
+
+ html += '' + (program.Name || '') + ' | ';
+ html += '' + program.Genres.join(' / ') + ' | ';
+
+ html += '
';
+ }
+
+ html += '
';
+
+ $('#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