diff --git a/dashboard-ui/apiclient/sync/mediasync.js b/dashboard-ui/apiclient/sync/mediasync.js
index 1ba0b81b4d..620d894d03 100644
--- a/dashboard-ui/apiclient/sync/mediasync.js
+++ b/dashboard-ui/apiclient/sync/mediasync.js
@@ -234,7 +234,10 @@
require(['localassetmanager'], function () {
- var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/File");
+ var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/File", {
+ api_key: apiClient.accessToken()
+ });
+
var localPath = localItem.LocalPath;
Logger.log('Downloading media. Url: ' + url + '. Local path: ' + localPath);
@@ -337,7 +340,8 @@
var imageUrl = apiClient.getImageUrl(itemId, {
Tag: imageTag,
- ImageType: imageType
+ ImageType: imageType,
+ api_key: apiClient.accessToken()
});
LocalAssetManager.downloadImage(imageUrl, serverId, itemId, imageTag).done(function () {
@@ -414,7 +418,8 @@
}
var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/AdditionalFiles", {
- Name: file.Name
+ Name: file.Name,
+ api_key: apiClient.accessToken()
});
require(['localassetmanager'], function () {
diff --git a/dashboard-ui/components/imagedownloader/imagedownloader.js b/dashboard-ui/components/imagedownloader/imagedownloader.js
index 1245b495b8..95ae7ff207 100644
--- a/dashboard-ui/components/imagedownloader/imagedownloader.js
+++ b/dashboard-ui/components/imagedownloader/imagedownloader.js
@@ -5,7 +5,9 @@
var currentDeferred;
var hasChanges = false;
- var browsableImagePageSize = 20;
+ // These images can be large and we're seeing memory problems in safari
+ var browsableImagePageSize = $.browser.safari ? 6 : 12;
+
var browsableImageStartIndex = 0;
var browsableImageType = 'Primary';
var selectedProvider;
diff --git a/dashboard-ui/components/imagedownloader/imagedownloader.template.html b/dashboard-ui/components/imagedownloader/imagedownloader.template.html
index ecc7409ea2..33cbfd589c 100644
--- a/dashboard-ui/components/imagedownloader/imagedownloader.template.html
+++ b/dashboard-ui/components/imagedownloader/imagedownloader.template.html
@@ -3,15 +3,15 @@
-
-
+
-
+
@@ -26,10 +26,9 @@
-
-
-
-
+
+
diff --git a/dashboard-ui/components/paperdialoghelper.js b/dashboard-ui/components/paperdialoghelper.js
index 6435ab5e60..3a48b48e29 100644
--- a/dashboard-ui/components/paperdialoghelper.js
+++ b/dashboard-ui/components/paperdialoghelper.js
@@ -17,17 +17,12 @@
}
}
}
-
- if (isActive) {
- document.body.classList.add('bodyWithPopupOpen');
- }
- else {
- document.body.classList.remove('bodyWithPopupOpen');
- }
}
function onDialogClosed() {
+ Dashboard.onPopupClose();
+
dlg = null;
$(window).off('navigate', onHashChange);
@@ -40,6 +35,7 @@
$(dlg).on('iron-overlay-closed', onDialogClosed);
dlg.open();
+ Dashboard.onPopupOpen();
window.location.hash = hash;
diff --git a/dashboard-ui/cordova/localassetmanager.js b/dashboard-ui/cordova/localassetmanager.js
index 30ef01d0f2..0454a58500 100644
--- a/dashboard-ui/cordova/localassetmanager.js
+++ b/dashboard-ui/cordova/localassetmanager.js
@@ -467,13 +467,37 @@
var deferred = DeferredBuilder.Deferred();
Logger.log('downloading: ' + url + ' to ' + localPath);
- var ft = new FileTransfer();
- ft.download(url, localPath, function (entry) {
- var localUrl = normalizeReturnUrl(entry.toURL());
+ getFileSystem().done(function (fileSystem) {
+
+ fileSystem.root.getFile(localPath.replace('file://', ''), {}, function (targetFile) {
+
+ var downloader = new BackgroundTransfer.BackgroundDownloader();
+ // Create a new download operation.
+ var download = downloader.createDownload(url, targetFile);
+ // Start the download and persist the promise to be able to cancel the download.
+ app.downloadPromise = download.startAsync().then(function () {
+
+ // on success
+ var localUrl = normalizeReturnUrl(targetFile.toURL());
+
+ Logger.log('Downloaded local url: ' + localUrl);
+ deferred.resolveWith(null, [localUrl]);
+
+ }, function () {
+
+ // on error
+ Logger.log('download failed: ' + url + ' to ' + localPath);
+ deferred.reject();
+
+ }, function (value) {
+
+ // on progress
+ Logger.log('download progress: ' + value);
+
+ });
+ });
- Logger.log('Downloaded local url: ' + localUrl);
- deferred.resolveWith(null, [localUrl]);
});
return deferred.promise();
@@ -537,7 +561,7 @@
}
function getLocalId(serverId, itemId) {
-
+ return serverId + '_' + itemId;
}
function hasImage(serverId, itemId, imageTag) {
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 3dac69ba4d..2a0841ca98 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -117,6 +117,20 @@ var Dashboard = {
}
},
+ onPopupOpen: function(){
+ Dashboard.popupCount = (Dashboard.popupCount || 0) + 1;
+ document.body.classList.add('bodyWithPopupOpen');
+ },
+
+ onPopupClose: function(){
+
+ Dashboard.popupCount = (Dashboard.popupCount || 1) - 1;
+
+ if (!Dashboard.popupCount) {
+ document.body.classList.remove('bodyWithPopupOpen');
+ }
+ },
+
getCurrentUser: function () {
if (!Dashboard.getUserPromise) {