diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.controller.js index b3bd9a1e98..06fdc4e108 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.controller.js @@ -52,8 +52,15 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController", if(dialogOptions.filter[0] === "{"){ dialogOptions.filterAdvanced = true; } + + $scope.dialogTreeEventHandler.bind("treeNodeExpanded", function (ev, args) { + if (angular.isArray(args.children)) { + performFiltering(args.children); + } + }); } + /** Method used for selecting a node */ function select(text, id, entity) { //if we get the root, we just return a constructed entity, no need for server data @@ -192,30 +199,4 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController", } } }); - - $scope.dialogTreeEventHandler.bind("treeNodeExpanded", function (ev, args) { - - //remove the custom startNodeId query string param, that is only meant to be used 1 time - // for the initial tree structure loading. - if (angular.isArray(args.children)) { - for (var child in args.children) { - var parts = args.children[child].childNodesUrl.split("&"); - var childNodesUrl = ""; - for (var p in parts) { - if (!parts[p].startsWith("startNodeId")) { - childNodesUrl += parts[p] + "&"; - } - } - childNodesUrl = childNodesUrl.trimEnd("&"); - args.children[child].childNodesUrl = childNodesUrl; - } - } - - if (dialogOptions.filter) { - if (angular.isArray(args.children)) { - performFiltering(args.children); - } - } - - }); }); \ No newline at end of file diff --git a/src/Umbraco.Web/Trees/UrlHelperExtensions.cs b/src/Umbraco.Web/Trees/UrlHelperExtensions.cs index 5dccf2b65e..0931fc0997 100644 --- a/src/Umbraco.Web/Trees/UrlHelperExtensions.cs +++ b/src/Umbraco.Web/Trees/UrlHelperExtensions.cs @@ -13,7 +13,10 @@ namespace Umbraco.Web.Trees .EnsureEndsWith('?'); //now we need to append the query strings - actionUrl += "id=" + nodeId.EnsureEndsWith('&') + queryStrings.ToQueryString("id"); + actionUrl += "id=" + nodeId.EnsureEndsWith('&') + queryStrings.ToQueryString("id", + //Always ignore the custom start node id when generating URLs for tree nodes since this is a custom once-only parameter + // that should only ever be used when requesting a tree to render (root), not a tree node + TreeQueryStringParameters.StartNodeId); return actionUrl; }