diff --git a/dashboard-ui/components/imageeditor/imageeditor.js b/dashboard-ui/components/imageeditor/imageeditor.js index 9e1f13e700..b8e0f2ef0d 100644 --- a/dashboard-ui/components/imageeditor/imageeditor.js +++ b/dashboard-ui/components/imageeditor/imageeditor.js @@ -1,8 +1,6 @@ define(['dialogHelper', 'css!css/metadataeditor.css', 'emby-button', 'paper-icon-button-light'], function (dialogHelper) { var currentItem; - var currentResolve; - var currentReject; var hasChanges = false; function getBaseRemoteOptions() { @@ -241,7 +239,7 @@ }); } - function showEditor(itemId, options) { + function showEditor(itemId, options, resolve, reject) { options = options || {}; @@ -282,7 +280,16 @@ initEditor(dlg, options); // Has to be assigned a z-index after the call to .open() - dlg.addEventListener('close', onDialogClosed); + dlg.addEventListener('close', function () { + + Dashboard.hideLoadingMsg(); + + if (hasChanges) { + resolve(); + } else { + reject(); + } + }); dialogHelper.open(dlg); @@ -299,27 +306,14 @@ xhr.send(); } - function onDialogClosed() { - - Dashboard.hideLoadingMsg(); - - if (hasChanges) { - currentResolve(); - } else { - currentReject(); - } - } - return { show: function (itemId, options) { return new Promise(function (resolve, reject) { - currentResolve = resolve; - currentReject = reject; hasChanges = false; - showEditor(itemId, options); + showEditor(itemId, options, resolve, reject); }); } }; diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index c882ecd0a1..e71de45a6b 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -2109,7 +2109,7 @@ Dashboard.getCurrentUser().then(function (user) { - LibraryBrowser.showMoreCommands(button, currentItem.Id, currentItem.Type, LibraryBrowser.getMoreCommands(currentItem, user)).then(function() { + LibraryBrowser.showMoreCommands(button, currentItem.Id, currentItem.Type, LibraryBrowser.getMoreCommands(currentItem, user)).then(function () { reload(view, params); }); }); @@ -2185,6 +2185,14 @@ removeFromCollection(view, currentItem, [itemId]); }); + view.querySelector('.detailImageContainer').addEventListener('click', function (e) { + var itemDetailGalleryLink = parentWithClass(e.target, 'itemDetailGalleryLink'); + if (itemDetailGalleryLink) { + LibraryBrowser.editImages(currentItem.Id).then(function () { + reload(view, params); + }); + } + }); //var btnMore = page.querySelectorAll('.btnMoreCommands iron-icon'); //for (var i = 0, length = btnMore.length; i < length; i++) { diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index aa71b923bd..6f46f65ffb 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -773,18 +773,24 @@ editImages: function (itemId) { - require(['components/imageeditor/imageeditor'], function (ImageEditor) { + return new Promise(function (resolve, reject) { - ImageEditor.show(itemId); + require(['components/imageeditor/imageeditor'], function (ImageEditor) { + + ImageEditor.show(itemId).then(resolve, reject); + }); }); }, editSubtitles: function (itemId) { - require(['subtitleEditor'], function (subtitleEditor) { + return new Promise(function (resolve, reject) { - var serverId = ApiClient.serverInfo().Id; - subtitleEditor.show(itemId, serverId); + require(['subtitleEditor'], function (subtitleEditor) { + + var serverId = ApiClient.serverInfo().Id; + subtitleEditor.show(itemId, serverId).then(resolve, reject); + }); }); }, @@ -956,10 +962,10 @@ } break; case 'editsubtitles': - LibraryBrowser.editSubtitles(itemId); + LibraryBrowser.editSubtitles(itemId).then(resolve, reject); break; case 'editimages': - LibraryBrowser.editImages(itemId); + LibraryBrowser.editImages(itemId).then(resolve, reject); break; case 'identify': LibraryBrowser.identifyItem(itemId).then(resolve, reject); @@ -3192,7 +3198,7 @@ html += '
'; if (editable) { - html += ""; + html += ""; } if (detectRatio && item.PrimaryImageAspectRatio) {