diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtree.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtree.directive.js index c42184cf90..e39cb05200 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtree.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtree.directive.js @@ -127,7 +127,6 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat //helper to load a specific path on the active tree as soon as its ready - function loadPath(path, forceReload) { function _load(tree, path, forceReload) { @@ -144,26 +143,23 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat } } - //expands the first child with a tree alias as soon as the tree has loaded - + + //given a tree alias, this will search the current section tree for the specified tree alias and + //set that to the activeTree function loadActiveTree(treeAlias) { scope.activeTree = undefined; - function _load(tree, alias) { + function _load(tree) { scope.activeTree = _.find(tree.children, function(node) { return node.metaData.treeAlias === treeAlias; }); - scope.activeTree.expanded = true; - - scope.loadChildren(scope.activeTree, false).then(function() { - emitEvent("activeTreeLoaded", { tree: scope.activeTree }); - }); + emitEvent("activeTreeLoaded", { tree: scope.activeTree }); } if (scope.tree) { - _load(scope.tree.root, treeAlias); + _load(scope.tree.root); } else { scope.eventhandler.one("treeLoaded", function(e, args) { - _load(args.tree, treeAlias); + _load(args.tree); }); } } @@ -199,12 +195,13 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat } } - function syncTree(node, path, forceReload) { + /** syncs the tree, the treeNode can be ANY tree node in the tree that requires syncing */ + function syncTree(treeNode, path, forceReload) { deleteAnimations = false; treeService.syncTree({ - node: node, + node: treeNode, path: path, forceReload: forceReload }).then(function (data) { diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js index b2ab87aecf..d86e26d2b6 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js @@ -103,7 +103,7 @@ angular.module("umbraco.directives") } else { return {}; - } + } }; /** diff --git a/src/Umbraco.Web.UI.Client/src/common/services/tree.service.js b/src/Umbraco.Web.UI.Client/src/common/services/tree.service.js index 21b3d8fa50..1a1bd898ea 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/tree.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/tree.service.js @@ -419,9 +419,6 @@ function treeService($q, treeResource, iconHelper, notificationsService, $rootSc if (!args.path) { throw "No path defined on args object for syncTree"; } - //if (!current.metaData["treeAlias"] && !args.node.section) { - // throw "No section defined on args.node object for syncTree"; - //} if (!angular.isArray(args.path)) { throw "Path must be an array"; } @@ -458,53 +455,31 @@ function treeService($q, treeResource, iconHelper, notificationsService, $rootSc var self = this; var node = args.node; - var doSync = function() { - if (node.children) { - //children are loaded, check for the existence - var child = self.getChildNode(node, args.path[currPathIndex]); - if (child) { - if (args.path.length === (currPathIndex + 1)) { - //woot! synced the node - if (!args.forceReload) { - deferred.resolve(child); - } - else { - //even though we've found the node if forceReload is specified - //we want to go update this single node from the server - self.reloadNode(child).then(function (reloaded) { - deferred.resolve(reloaded); - }, function() { - deferred.reject(); - }); - } + var doSync = function() { + //check if it exists in the already loaded children + var child = self.getChildNode(node, args.path[currPathIndex]); + if (child) { + if (args.path.length === (currPathIndex + 1)) { + //woot! synced the node + if (!args.forceReload) { + deferred.resolve(child); } else { - //now we need to recurse with the updated node/currPathIndex - currPathIndex++; - node = child; - //recurse - doSync(); + //even though we've found the node if forceReload is specified + //we want to go update this single node from the server + self.reloadNode(child).then(function(reloaded) { + deferred.resolve(reloaded); + }, function() { + deferred.reject(); + }); } } else { - //we couldn't find the child, if forceReload is true, we can go re-fetch the child collection and try again - if (args.forceReload) { - self.loadNodeChildren({ node: node, section: node.section }).then(function () { - //now we'll check again - child = self.getChildNode(node, args.path[currPathIndex]); - if (child) { - deferred.resolve(child); - } - else { - //fail! - deferred.reject(); - } - }); - } - else { - //fail! - deferred.reject(); - } + //now we need to recurse with the updated node/currPathIndex + currPathIndex++; + node = child; + //recurse + doSync(); } } else { @@ -529,11 +504,11 @@ function treeService($q, treeResource, iconHelper, notificationsService, $rootSc //fail! deferred.reject(); } - }, function() { + }, function () { //fail! deferred.reject(); }); - } + } }; //start