diff --git a/src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js b/src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js index 4e8bfb9a5d..a64d6eed66 100644 --- a/src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js @@ -1,62 +1,74 @@ angular.module("umbraco").controller("Umbraco.Editors.Media.RestoreController", function ($scope, relationResource, mediaResource, navigationService, appState, treeService, localizationService) { - var node = $scope.currentNode; + $scope.source = _.clone($scope.currentNode); $scope.error = null; $scope.success = false; + $scope.loading = true; - relationResource.getByChildId(node.id, "relateParentDocumentOnDelete").then(function (data) { + relationResource.getByChildId($scope.source.id, "relateParentDocumentOnDelete").then(function (data) { + $scope.loading = false; - if (data.length == 0) { - $scope.success = false; - $scope.error = { - errorMsg: localizationService.localize('recycleBin_itemCannotBeRestored'), - data: { - Message: localizationService.localize('recycleBin_noRestoreRelation') - } - } + if (!data.length) { + localizationService.localizeMany(["recycleBin_itemCannotBeRestored", "recycleBin_noRestoreRelation"]) + .then(function(values) { + $scope.success = false; + $scope.error = { + errorMsg: values[0], + data: { + Message: values[1] + } + } + }); return; } $scope.relation = data[0]; - if ($scope.relation.parentId == -1) { + if ($scope.relation.parentId === -1) { $scope.target = { id: -1, name: "Root" }; } else { + $scope.loading = true; mediaResource.getById($scope.relation.parentId).then(function (data) { + $scope.loading = false; $scope.target = data; - - // make sure the target item isn't in the recycle bin - if ($scope.target.path.indexOf("-20") !== -1) { - $scope.error = { - errorMsg: localizationService.localize('recycleBin_itemCannotBeRestored'), - data: { - Message: localizationService.localize('recycleBin_restoreUnderRecycled').then(function (value) { - value.replace('%0%', $scope.target.name); - }) - } - }; + // make sure the target item isn't in the recycle bin + if ($scope.target.path.indexOf("-21") !== -1) { + localizationService.localizeMany(["recycleBin_itemCannotBeRestored", "recycleBin_restoreUnderRecycled"]) + .then(function (values) { + $scope.success = false; + $scope.error = { + errorMsg: values[0], + data: { + Message: values[1].replace('%0%', $scope.target.name) + } + } + }); $scope.success = false; } }, function (err) { $scope.success = false; $scope.error = err; + $scope.loading = false; }); } }, function (err) { $scope.success = false; $scope.error = err; + $scope.loading = false; }); $scope.restore = function () { + $scope.loading = true; // this code was copied from `content.move.controller.js` - mediaResource.move({ parentId: $scope.target.id, id: node.id }) + mediaResource.move({ parentId: $scope.target.id, id: $scope.source.id }) .then(function (path) { + $scope.loading = false; $scope.success = true; //first we need to remove the node that launched the dialog @@ -79,6 +91,7 @@ angular.module("umbraco").controller("Umbraco.Editors.Media.RestoreController", }, function (err) { $scope.success = false; $scope.error = err; + $scope.loading = false; }); }; diff --git a/src/Umbraco.Web.UI.Client/src/views/media/restore.html b/src/Umbraco.Web.UI.Client/src/views/media/restore.html index b8dcc8d5f3..bfc03128a3 100644 --- a/src/Umbraco.Web.UI.Client/src/views/media/restore.html +++ b/src/Umbraco.Web.UI.Client/src/views/media/restore.html @@ -2,24 +2,32 @@
-
+
{{currentNode.name}}