From e671300dc09f78d47dbc2b3626300a06471afb73 Mon Sep 17 00:00:00 2001 From: perploug Date: Fri, 1 Nov 2013 09:28:26 +0100 Subject: [PATCH] Move and copy dialog treee sync --- .../src/common/services/navigation.service.js | 6 ++++++ .../src/views/content/content.copy.controller.js | 9 ++++++--- .../src/views/content/content.move.controller.js | 10 ++++++++-- .../src/views/datatype/datatype.edit.controller.js | 2 ++ src/Umbraco.Web/Editors/ContentController.cs | 12 +++++------- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js b/src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js index f8b0c8fef6..83f6414504 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js @@ -286,6 +286,12 @@ angular.module('umbraco.services') } }, + reloadNode: function (node) { + if(this.ui.treeEventHandler){ + this.ui.treeEventHandler.reloadNode(node); + } + }, + reloadSection: function (sectionAlias) { if(this.ui.treeEventHandler){ this.ui.treeEventHandler.clearCache(sectionAlias); diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js index c915c978e8..3e15c08990 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js @@ -1,6 +1,6 @@ angular.module("umbraco") .controller("Umbraco.Editors.Content.CopyController", - function ($scope, eventsService, contentResource, $log) { + function ($scope, eventsService, contentResource, navigationService, $log) { var dialogOptions = $scope.$parent.dialogOptions; $scope.dialogTreeEventHandler = $({}); @@ -18,7 +18,7 @@ angular.module("umbraco") } c.find("i.umb-tree-icon").hide() - .after(""); + .after(""); $scope.target = args.node; $scope.selectedEl = c; @@ -27,9 +27,12 @@ angular.module("umbraco") $scope.copy = function(){ contentResource.copy({parentId: $scope.target.id, id: node.id, relateToOriginal: $scope.relate}) - .then(function(){ + .then(function(path){ $scope.error = false; $scope.success = true; + + navigationService.syncPath(path, true); + },function(err){ $scope.success = false; $scope.error = err; diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.move.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.move.controller.js index 7ba022353d..12acd9aa79 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/content.move.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.move.controller.js @@ -1,6 +1,6 @@ //used for the media picker dialog angular.module("umbraco").controller("Umbraco.Editors.Content.MoveController", - function ($scope, eventsService, contentResource, $log) { + function ($scope, eventsService, contentResource, navigationService, $log) { var dialogOptions = $scope.$parent.dialogOptions; $scope.dialogTreeEventHandler = $({}); @@ -27,9 +27,15 @@ angular.module("umbraco").controller("Umbraco.Editors.Content.MoveController", $scope.move = function(){ contentResource.move({parentId: $scope.target.id, id: node.id}) - .then(function(){ + .then(function(path){ $scope.error = false; $scope.success = true; + + //reloads the parent + navigationService.reloadNode(dialogOptions.currentNode.parent); + + //reloads the target + navigationService.syncPath(path, true); },function(err){ $scope.success = false; $scope.error = err; diff --git a/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.edit.controller.js index baea7df43c..1bfac972c7 100644 --- a/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.edit.controller.js @@ -101,6 +101,8 @@ function DataTypeEditController($scope, $routeParams, $location, dataTypeResourc } }); + navigationService.syncPath([String(data.id)]); + }, function(err) { //NOTE: in the case of data type values we are setting the orig/new props diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index d157a20818..a5fe178f34 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -458,13 +458,12 @@ namespace Umbraco.Web.Editors /// /// [EnsureUserPermissionForContent("move.ParentId", 'M')] - public HttpResponseMessage PostMove(MoveOrCopy move) + public string PostMove(MoveOrCopy move) { var toMove = ValidateMoveOrCopy(move); Services.ContentService.Move(toMove, move.ParentId); - - return Request.CreateResponse(HttpStatusCode.OK); + return toMove.Path; } /// @@ -473,13 +472,12 @@ namespace Umbraco.Web.Editors /// /// [EnsureUserPermissionForContent("copy.ParentId", 'C')] - public HttpResponseMessage PostCopy(MoveOrCopy copy) + public string PostCopy(MoveOrCopy copy) { var toCopy = ValidateMoveOrCopy(copy); - Services.ContentService.Copy(toCopy, copy.ParentId, copy.RelateToOriginal); - - return Request.CreateResponse(HttpStatusCode.OK); + var c = Services.ContentService.Copy(toCopy, copy.ParentId, copy.RelateToOriginal); + return c.Path; } ///