Fixes: U4-5011 Auto collapsing tree structure

This commit is contained in:
Shannon
2014-06-26 16:14:50 +10:00
parent 07e0cd2957
commit be98ceea6c
3 changed files with 30 additions and 1 deletions

View File

@@ -132,8 +132,26 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat
//reset current node selection
//scope.currentNode = null;
//filter the path for root node ids
//Filter the path for root node ids (we don't want to pass in -1 or 'init')
args.path = _.filter(args.path, function (item) { return (item !== "init" && item !== "-1"); });
//Once those are filtered we need to check if the current user has a special start node id,
// if they do, then we're going to trim the start of the array for anything found from that start node
// and previous so that the tree syncs properly. The tree syncs from the top down and if there are parts
// of the tree's path in there that don't actually exist in the dom/model then syncing will not work.
var startNodes = [Umbraco.Sys.ServerVariables.security.startContentId, Umbraco.Sys.ServerVariables.security.startMediaId];
_.each(startNodes, function (i) {
var found = _.find(args.path, function(p) {
return String(p) === String(i);
});
if (found) {
args.path = args.path.splice(_.indexOf(args.path, found));
}
});
loadPath(args.path, args.forceReload, args.activate);
return deferred.promise;

View File

@@ -33,6 +33,10 @@ Umbraco.Sys.ServerVariables = {
{ alias: "myTree", packageFolder: "MyPackage" }
]
},
security : {
startContentId: -1,
startMediaId: -1
},
isDebuggingEnabled: true,
application: {
assemblyVersion: "1",

View File

@@ -235,6 +235,13 @@ namespace Umbraco.Web.Editors
{"trees", GetTreePluginsMetaData()}
}
},
{
"security", new Dictionary<string, object>
{
{"startContentId", Security.CurrentUser.StartContentId},
{"startMediaId", Security.CurrentUser.StartMediaId}
}
},
{"isDebuggingEnabled", HttpContext.IsDebuggingEnabled},
{
"application", GetApplicationState()