diff --git a/dashboard-ui/dashboardsync.html b/dashboard-ui/dashboardsync.html
deleted file mode 100644
index d04e60b95c..0000000000
--- a/dashboard-ui/dashboardsync.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
diff --git a/dashboard-ui/scripts/devices.js b/dashboard-ui/scripts/devices.js
index b28ec6b402..3f844b2379 100644
--- a/dashboard-ui/scripts/devices.js
+++ b/dashboard-ui/scripts/devices.js
@@ -79,11 +79,11 @@
ApiClient.getJSON(ApiClient.getUrl('Devices', {
- SupportsDeviceId: true
+ SupportsUniqueIdentifier: true
- })).done(function (devices) {
+ })).done(function (result) {
- load(page, devices);
+ load(page, result.Items);
Dashboard.hideLoadingMsg();
});
diff --git a/dashboard-ui/scripts/devicesupload.js b/dashboard-ui/scripts/devicesupload.js
index bf53f660e2..f79f0d97d5 100644
--- a/dashboard-ui/scripts/devicesupload.js
+++ b/dashboard-ui/scripts/devicesupload.js
@@ -77,7 +77,7 @@
$.when(promise1, promise2).done(function (response1, response2) {
- load(page, response2[0], response1[0]);
+ load(page, response2[0].Items, response1[0]);
Dashboard.hideLoadingMsg();
});
diff --git a/dashboard-ui/scripts/episodes.js b/dashboard-ui/scripts/episodes.js
index b8b904aca6..eeddd4163d 100644
--- a/dashboard-ui/scripts/episodes.js
+++ b/dashboard-ui/scripts/episodes.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'List');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
// The base query options
var query = {
diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js
index e8063e37ae..9134e30b5e 100644
--- a/dashboard-ui/scripts/itemdetailpage.js
+++ b/dashboard-ui/scripts/itemdetailpage.js
@@ -1543,7 +1543,9 @@
$('.btnSync', page).on('click', function () {
- SyncManager.showMenu([currentItem]);
+ SyncManager.showMenu({
+ items: [currentItem]
+ });
});
$('.btnMoreCommands', page).on('click', function () {
diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js
index 2e7e54c703..8e3e85fed3 100644
--- a/dashboard-ui/scripts/librarylist.js
+++ b/dashboard-ui/scripts/librarylist.js
@@ -251,9 +251,8 @@
closeContextMenu();
- ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {
-
- SyncManager.showMenu([item]);
+ SyncManager.showMenu({
+ items: [id]
});
return false;
@@ -743,21 +742,13 @@
return;
}
- ApiClient.getItems({
+ SyncManager.showMenu({
+ items: selection
+ });
- ids: selection.join(','),
- fields: 'SyncInfo',
- userId: Dashboard.getCurrentUserId()
-
- }).done(function (result) {
-
- SyncManager.showMenu(result.Items);
-
- $(SyncManager).off('jobsubmit.librarylist').on('jobsubmit.librarylist', function () {
-
- hideSelections(page);
- });
+ $(SyncManager).off('jobsubmit.librarylist').on('jobsubmit.librarylist', function () {
+ hideSelections(page);
});
}
diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js
index 7cb61c796f..8e42eae1d7 100644
--- a/dashboard-ui/scripts/mediaplayer.js
+++ b/dashboard-ui/scripts/mediaplayer.js
@@ -925,6 +925,15 @@
Limit: itemLimit
});
+ }
+ else if (item.Type == "Playlist") {
+
+ promise = ApiClient.getInstantMixFromPlaylist(id, {
+ UserId: Dashboard.getCurrentUserId(),
+ Fields: getItemFields,
+ Limit: itemLimit
+ });
+
}
else if (item.Type == "Audio") {
diff --git a/dashboard-ui/scripts/moviecollections.js b/dashboard-ui/scripts/moviecollections.js
index d36bec0fa2..5d50ef303f 100644
--- a/dashboard-ui/scripts/moviecollections.js
+++ b/dashboard-ui/scripts/moviecollections.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'List');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
// The base query options
var query = {
diff --git a/dashboard-ui/scripts/movies.js b/dashboard-ui/scripts/movies.js
index 900ff54f3f..11621dafca 100644
--- a/dashboard-ui/scripts/movies.js
+++ b/dashboard-ui/scripts/movies.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'List');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
// The base query options
var query = {
diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js
index b3ab5fa267..cf9b7feb5b 100644
--- a/dashboard-ui/scripts/moviesrecommended.js
+++ b/dashboard-ui/scripts/moviesrecommended.js
@@ -52,7 +52,7 @@
SortOrder: "Descending",
IncludeItemTypes: "Movie",
Filters: "IsResumable",
- Limit: screenWidth >= 1920 ? 12 : (screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 6 : 3)),
+ Limit: screenWidth >= 1920 ? 12 : (screenWidth >= 1600 ? 8 : 6),
Recursive: true,
Fields: "PrimaryImageAspectRatio,MediaSourceCount,SyncInfo",
CollapseBoxSetItems: false,
@@ -85,7 +85,7 @@
userId: Dashboard.getCurrentUserId(),
categoryLimit: screenWidth >= 1200 ? 4 : 3,
- ItemLimit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 7 : 7)),
+ ItemLimit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 7 : 6)),
Fields: "PrimaryImageAspectRatio,MediaSourceCount,SyncInfo",
ImageTypeLimit: 1,
EnableImageTypes: "Primary,Backdrop,Banner,Thumb"
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index fa56e5b7e8..2a71aa32b5 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -760,6 +760,10 @@ var Dashboard = {
name: Globalize.translate('TabPlayback'),
href: "playbackconfiguration.html",
selected: page.hasClass('playbackConfigurationPage')
+ }, {
+ name: Globalize.translate('TabSync'),
+ href: "syncactivity.html",
+ selected: page.hasClass('syncConfigurationPage')
}, {
divider: true,
name: Globalize.translate('TabAutoOrganize'),
@@ -1258,7 +1262,7 @@ var Dashboard = {
PlayableMediaTypes: "Audio,Video",
SupportedCommands: Dashboard.getSupportedRemoteCommands().join(','),
- SupportsDeviceId: false
+ SupportsUniqueIdentifier: false
};
window.ConnectionManager = new MediaBrowser.ConnectionManager(credentialProvider, appName, appVersion, deviceName, deviceId, capabilities);
diff --git a/dashboard-ui/scripts/sync.js b/dashboard-ui/scripts/sync.js
index b75e0fc69b..64ec43291d 100644
--- a/dashboard-ui/scripts/sync.js
+++ b/dashboard-ui/scripts/sync.js
@@ -1,6 +1,18 @@
(function (window, $) {
- function submitJob(userId, items, form) {
+ function submitJob(userId, syncOptions, form) {
+
+ if (!userId) {
+ throw new Error('userId cannot be null');
+ }
+
+ if (!syncOptions) {
+ throw new Error('syncOptions cannot be null');
+ }
+
+ if (!form) {
+ throw new Error('form cannot be null');
+ }
var target = $('.radioSync:checked', form).get().map(function (c) {
@@ -10,7 +22,7 @@
if (!target) {
- Dashboard.alert('Please select a device to sync to.');
+ Dashboard.alert(Globalize.translate('MessagePleaseSelectDeviceToSyncTo'));
return;
}
@@ -19,8 +31,8 @@
userId: userId,
TargetId: target,
- ItemIds: items.map(function (i) {
- return i.Id;
+ ItemIds: syncOptions.items.map(function (i) {
+ return i.Id || i;
}).join(','),
Quality: $('.radioSyncQuality', form)[0].getAttribute('data-value'),
@@ -39,10 +51,11 @@
$('.syncPanel').panel('close');
$(window.SyncManager).trigger('jobsubmit');
+ Dashboard.alert(Globalize.translate('MessageSyncJobCreated'));
});
}
- function showSyncMenu(items) {
+ function showSyncMenu(options) {
var userId = Dashboard.getCurrentUserId();
@@ -59,17 +72,17 @@
html += '