From ab36687c8574c47c0b2ad2d3de7aabd7dd2bdc98 Mon Sep 17 00:00:00 2001 From: perploug Date: Sun, 27 Oct 2013 14:12:27 +0100 Subject: [PATCH] Adds contentype alias to media and cotnent tree nodes --- .../common/dialogs/treepicker.controller.js | 21 +++++++++++++++++++ .../Trees/ContentTreeController.cs | 2 ++ src/Umbraco.Web/Trees/MediaTreeController.cs | 15 +++++++------ 3 files changed, 32 insertions(+), 6 deletions(-) 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 f1c061eea3..d5c4158b4f 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 @@ -73,12 +73,33 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController", } }; + if(dialogOptions.filter){ + var filterArray = dialogOptions.filter.split(','); + + $scope.dialogTreeEventHandler.bind("treeNodeExpanded", function(ev, args){ + + if(angular.isArray(args.children)){ + angular.forEach(args.children, function(value, key){ + if(filterArray.indexOf(value.metaData.contentType) >= 0){ + value.filtered = true; + value.icon = "icon-wrong red unpublished"; + } + }); + } + + }); + } + $scope.dialogTreeEventHandler.bind("treeNodeSelect", function(ev, args){ args.event.preventDefault(); args.event.stopPropagation(); eventsService.publish("Umbraco.Dialogs.TreePickerController.Select", args).then(function(args){ + if(args.node.filtered){ + return; + } + select(args.node.name, args.node.id); if($scope.multiPicker){ diff --git a/src/Umbraco.Web/Trees/ContentTreeController.cs b/src/Umbraco.Web/Trees/ContentTreeController.cs index 3039463176..ae2e539d9b 100644 --- a/src/Umbraco.Web/Trees/ContentTreeController.cs +++ b/src/Umbraco.Web/Trees/ContentTreeController.cs @@ -80,6 +80,8 @@ namespace Umbraco.Web.Trees e.ContentTypeIcon, hasChildren); + node.AdditionalData.Add("contentType", e.ContentTypeAlias); + if (e.IsPublished == false) node.SetNotPublishedStyle(); diff --git a/src/Umbraco.Web/Trees/MediaTreeController.cs b/src/Umbraco.Web/Trees/MediaTreeController.cs index 8736987083..00281b3d92 100644 --- a/src/Umbraco.Web/Trees/MediaTreeController.cs +++ b/src/Umbraco.Web/Trees/MediaTreeController.cs @@ -50,13 +50,16 @@ namespace Umbraco.Web.Trees protected override TreeNodeCollection PerformGetTreeNodes(string id, FormDataCollection queryStrings) { var entities = GetChildEntities(id); + var nodes = new TreeNodeCollection(); - var nodes = new TreeNodeCollection(); - - nodes.AddRange( - entities.Cast() - .Select(e => CreateTreeNode(e.Id.ToInvariantString(), queryStrings, e.Name, e.ContentTypeIcon, e.HasChildren))); - + foreach (var entity in entities) + { + var e = (UmbracoEntity)entity; + var node = CreateTreeNode(e.Id.ToInvariantString(), queryStrings, e.Name, e.ContentTypeIcon, e.HasChildren); + + node.AdditionalData.Add("contentType", e.ContentTypeAlias); + nodes.Add(node); + } return nodes; }