diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css
index 5b9713c69f..5173dcb095 100644
--- a/dashboard-ui/css/librarybrowser.css
+++ b/dashboard-ui/css/librarybrowser.css
@@ -874,6 +874,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
position: absolute;
top: 5px;
right: 5px;
+ font-size: 200%;
}
.playedIndicator + .syncIndicator {
diff --git a/dashboard-ui/scripts/livetvcomponents.js b/dashboard-ui/scripts/livetvcomponents.js
index 652f1997ae..da8ebf2720 100644
--- a/dashboard-ui/scripts/livetvcomponents.js
+++ b/dashboard-ui/scripts/livetvcomponents.js
@@ -8,8 +8,9 @@
return enableScrollX() ? 'overflowSquare' : 'square';
}
- function getTimersHtml(timers) {
+ function getTimersHtml(timers, options) {
+ options = options || {};
var items = timers.map(function (t) {
t.Type = 'Timer';
return t;
@@ -28,7 +29,7 @@
var dateText = '';
- if (item.StartDate) {
+ if (options.indexByDate !== false && item.StartDate) {
try {
var premiereDate = datetime.parseISO8601Date(item.StartDate, true);
@@ -55,14 +56,24 @@
}
}
+ if (currentGroup.length) {
+ groups.push({
+ name: currentGroupName,
+ items: currentGroup
+ });
+ }
+
var html = '';
for (i = 0, length = groups.length; i < length; i++) {
var group = groups[i];
- html += '
';
- html += '';
+ if (group.name) {
+ html += '
';
+
+ html += '';
+ }
if (enableScrollX()) {
html += '
';
@@ -84,7 +95,9 @@
});
html += '
';
- html += '
';
+ if (group.name) {
+ html += '
';
+ }
}
return Promise.resolve(html);
diff --git a/dashboard-ui/scripts/livetvrecordings.js b/dashboard-ui/scripts/livetvrecordings.js
index f8491e801e..e84246b1e8 100644
--- a/dashboard-ui/scripts/livetvrecordings.js
+++ b/dashboard-ui/scripts/livetvrecordings.js
@@ -89,17 +89,33 @@
function renderActiveRecordings(context) {
- ApiClient.getLiveTvRecordings({
+ ApiClient.getLiveTvTimers({
- userId: Dashboard.getCurrentUserId(),
- IsInProgress: true,
- Fields: 'CanDelete'
+ IsActive: true
}).then(function (result) {
- renderRecordings(context.querySelector('#activeRecordings'), result.Items);
+ // The IsActive param is new, so handle older servers that don't support it
+ if (result.Items.length && result.Items[0].Status != 'InProgress') {
+ result.Items = [];
+ }
+ renderTimers(context.querySelector('#activeRecordings'), result.Items, {
+ indexByDate: false
+ });
});
+
+ //ApiClient.getLiveTvRecordings({
+
+ // userId: Dashboard.getCurrentUserId(),
+ // IsInProgress: true,
+ // Fields: 'CanDelete'
+
+ //}).then(function (result) {
+
+ // renderRecordings(context.querySelector('#activeRecordings'), result.Items);
+
+ //});
}
function renderLatestRecordings(context) {
@@ -117,11 +133,11 @@
});
}
- function renderTimers(context, timers) {
+ function renderTimers(context, timers, options) {
- LiveTvHelpers.getTimersHtml(timers).then(function (html) {
+ LiveTvHelpers.getTimersHtml(timers, options).then(function (html) {
- var elem = context.querySelector('#upcomingRecordings');
+ var elem = context;
if (html) {
elem.classList.remove('hide');
@@ -138,9 +154,11 @@
function renderUpcomingRecordings(context) {
- ApiClient.getLiveTvTimers().then(function (result) {
+ ApiClient.getLiveTvTimers({
+ IsActive: false
+ }).then(function (result) {
- renderTimers(context, result.Items);
+ renderTimers(context.querySelector('#upcomingRecordings'), result.Items);
});
}
@@ -167,6 +185,9 @@
return function (view, params, tabContent) {
var self = this;
+
tabContent.querySelector('#activeRecordings .recordingItems').addEventListener('timercancelled', function () {
+ reload(tabContent);
+ });
tabContent.querySelector('#upcomingRecordings .recordingItems').addEventListener('timercancelled', function () {
reload(tabContent);
});
diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css
index 845a702fb1..b0baa86210 100644
--- a/dashboard-ui/thirdparty/paper-button-style.css
+++ b/dashboard-ui/thirdparty/paper-button-style.css
@@ -419,6 +419,11 @@ div.dialogHeader {
color: #fff;
}
+.ui-body-a .dialogHeader a {
+ color: #fff!important;
+ text-transform: uppercase;
+}
+
.ui-body-b div.dialogHeader {
background-color: #101010;
}