From 4fea694c6a5be9be011f82519581d1567fed114f Mon Sep 17 00:00:00 2001 From: perploug Date: Mon, 18 Nov 2013 22:29:19 +0100 Subject: [PATCH] Loads content and media trees with a custom root --- .../common/directives/umbtree.directive.js | 3 +- .../src/common/resources/tree.resource.js | 6 +++- .../common/dialogs/treepicker.controller.js | 1 + .../src/views/common/dialogs/treepicker.html | 6 ++-- .../prevalueeditors/treesource.controller.js | 12 +++---- .../src/views/prevalueeditors/treesource.html | 32 ++++++++++--------- .../Trees/ContentTreeControllerBase.cs | 8 +++++ src/Umbraco.Web/Trees/TreeControllerBase.cs | 1 + .../Trees/TreeQueryStringParameters.cs | 1 + 9 files changed, 45 insertions(+), 25 deletions(-) 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 abf22e5979..829ca0978b 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 @@ -17,6 +17,7 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat showheader: '@', cachekey: '@', isdialog: '@', + rootnodeid: '@', eventhandler: '=' }, @@ -219,7 +220,7 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat //anytime we want to load the tree we need to disable the delete animations deleteAnimations = false; - treeService.getTree({ section: scope.section, tree: scope.treealias, cacheKey: scope.cachekey, isDialog: scope.isdialog ? scope.isdialog : false }) + treeService.getTree({ section: scope.section, tree: scope.treealias, cacheKey: scope.cachekey, isDialog: scope.isdialog ? scope.isdialog : false, rootNodeId: scope.rootnodeid ? scope.rootnodeid : -1 }) .then(function(data) { //set the data once we have it scope.tree = data; diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/tree.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/tree.resource.js index d004262fe3..91cd883203 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/tree.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/tree.resource.js @@ -45,6 +45,9 @@ function treeResource($q, $http, umbRequestHelper) { if (!options.isDialog) { options.isDialog = false; } + if (!options.rootNodeId) { + options.rootNodeId = -1; + } return umbRequestHelper.resourcePromise( $http.get( @@ -54,7 +57,8 @@ function treeResource($q, $http, umbRequestHelper) { [ {application: options.section}, { tree: options.tree }, - { isDialog: options.isDialog } + { isDialog: options.isDialog }, + { rootNodeId: options.rootNodeId }, ])), 'Failed to retreive data for application tree ' + options.section); }, 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 6030a52629..41962b3f86 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 @@ -7,6 +7,7 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController", $scope.section = dialogOptions.section; $scope.treeAlias = dialogOptions.treeAlias; $scope.multiPicker = dialogOptions.multiPicker; + $scope.rootNodeId = dialogOptions.rootNodeId; //search defaults $scope.searcher = searchService.searchContent; diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.html index 0f0a91c382..f788e86ff5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.html @@ -1,5 +1,5 @@
-
+
-