diff --git a/dashboard-ui/css/livetv.css b/dashboard-ui/css/livetv.css
index a3dfeffe4f..0b301a2cec 100644
--- a/dashboard-ui/css/livetv.css
+++ b/dashboard-ui/css/livetv.css
@@ -158,7 +158,7 @@
.channelPrograms {
white-space: nowrap;
- height: 53px;
+ height: 56px;
}
.timeslotHeader {
@@ -201,7 +201,7 @@
}
.channelHeaderCellInner {
- padding: .5em .5em;
+ padding: .7em .5em .5em;
display: block;
text-decoration: none;
font-weight: normal !important;
@@ -251,11 +251,11 @@
}
.channelHeaderCell, .timeslotCell {
- height: 52px;
+ height: 55px;
}
.guideProgramName {
- padding: .35em .5em;
+ padding: .55em .5em .35em;
}
.guideProgramTime {
diff --git a/dashboard-ui/livetvrecording.html b/dashboard-ui/livetvrecording.html
index d6347452e8..c5ef194477 100644
--- a/dashboard-ui/livetvrecording.html
+++ b/dashboard-ui/livetvrecording.html
@@ -41,6 +41,7 @@
+ ${ButtonSync}
diff --git a/dashboard-ui/livetvrecordings.html b/dashboard-ui/livetvrecordings.html
index 34bc2a3b1e..b845687ced 100644
--- a/dashboard-ui/livetvrecordings.html
+++ b/dashboard-ui/livetvrecordings.html
@@ -21,7 +21,10 @@
diff --git a/dashboard-ui/scripts/livetvrecording.js b/dashboard-ui/scripts/livetvrecording.js
index 949992d7a9..3db48fdfc6 100644
--- a/dashboard-ui/scripts/livetvrecording.js
+++ b/dashboard-ui/scripts/livetvrecording.js
@@ -78,6 +78,15 @@
LiveTvHelpers.renderOriginalAirDate($('.airDate', page), item);
Dashboard.hideLoadingMsg();
+
+ Dashboard.getCurrentUser().done(function(user) {
+
+ if (SyncManager.isAvailable(item, user)) {
+ $('.btnSync', page).removeClass('hide');
+ } else {
+ $('.btnSync', page).addClass('hide');
+ }
+ });
}
function reload(page) {
@@ -100,6 +109,13 @@
$('#btnDelete', page).on('click', deleteRecording);
$('#btnPlay', page).on('click', play);
+ $('.btnSync', page).on('click', function () {
+
+ SyncManager.showMenu({
+ items: [currentItem]
+ });
+ });
+
}).on('pagebeforeshow', "#liveTvRecordingPage", function () {
var page = this;
diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js
index 9999c4581d..6ab476c3b2 100644
--- a/dashboard-ui/scripts/musicrecommended.js
+++ b/dashboard-ui/scripts/musicrecommended.js
@@ -1,12 +1,19 @@
(function ($, document) {
+ function itemsPerRow() {
+
+ var screenWidth = $(window).width();
+
+ return screenWidth >= 2200 ? 10 : 9;
+ }
+
function loadLatest(page, parentId) {
var userId = Dashboard.getCurrentUserId();
var options = {
IncludeItemTypes: "Audio",
- Limit: 9,
+ Limit: itemsPerRow(),
Fields: "PrimaryImageAspectRatio,SyncInfo",
ParentId: parentId,
ImageTypeLimit: 1,
@@ -37,7 +44,7 @@
SortBy: "DatePlayed",
SortOrder: "Descending",
IncludeItemTypes: "Audio",
- Limit: 9,
+ Limit: itemsPerRow(),
Recursive: true,
Fields: "PrimaryImageAspectRatio,AudioInfo,SyncInfo",
Filters: "IsPlayed",
@@ -77,7 +84,7 @@
SortBy: "PlayCount",
SortOrder: "Descending",
IncludeItemTypes: "Audio",
- Limit: 9,
+ Limit: itemsPerRow(),
Recursive: true,
Fields: "PrimaryImageAspectRatio,AudioInfo,SyncInfo",
Filters: "IsPlayed",
@@ -121,7 +128,7 @@
ParentId: parentId,
Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete,SyncInfo",
StartIndex: 0,
- Limit: 9
+ Limit: itemsPerRow()
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@@ -139,6 +146,7 @@
shape: "square",
showTitle: true,
lazy: true,
+ defaultAction: 'play',
coverImage: true,
showItemCounts: true,
cardLayout: true