diff --git a/src/Umbraco.Core/Models/DataTypeDefinition.cs b/src/Umbraco.Core/Models/DataTypeDefinition.cs index 8fcc8b6a13..4f2eb56b04 100644 --- a/src/Umbraco.Core/Models/DataTypeDefinition.cs +++ b/src/Umbraco.Core/Models/DataTypeDefinition.cs @@ -191,7 +191,7 @@ namespace Umbraco.Core.Models return _propertyEditorAlias; }, _propertyEditorAlias, PropertyEditorAliasSelector); //This is a custom property that is not exposed in IUmbracoEntity so add it to the additional data - AdditionalData["DatabaseType"] = value; + _additionalData["DatabaseType"] = value; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/propertyeditors/package.manifest b/src/Umbraco.Web.UI.Client/src/packages/propertyeditors/package.manifest index 4b2941b803..5c1a7cb7a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/propertyeditors/package.manifest +++ b/src/Umbraco.Web.UI.Client/src/packages/propertyeditors/package.manifest @@ -1,29 +1,5 @@ { propertyEditors: [ - { - alias: "MyPackage.MNTP", - name: "Multinode treepicker", - editor: { - view: "~/App_Plugins/propertyeditors/mntp/mntp.html" - }, - - prevalues: { - fields: [ - { - label: "Multipicker", - key: "multi", - view: "boolean" - } - ] - } - }, - { - alias: "MyPackage.RelatedLinks", - name: "Related links", - editor: { - view: "~/App_Plugins/propertyeditors/relatedlinks/relatedlinks.html" - } - }, { alias: "MyPackage.Boolean", name: "Boolean", 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 5005d329b1..0f7a64456a 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 @@ -1,28 +1,81 @@ //used for the media picker dialog angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController", - function ($scope, eventsService, $log) { + function ($scope, entityResource, eventsService, $log, searchService) { var dialogOptions = $scope.$parent.dialogOptions; $scope.dialogTreeEventHandler = $({}); $scope.section = dialogOptions.section; $scope.treeAlias = dialogOptions.treeAlias; + //search defaults + $scope.searcher = searchService.searchContent; + $scope.entityType ="Document"; + $scope.results = []; + + if(dialogOptions.treeAlias === "member"){ + $scope.searcher = searchService.searchMembers; + $scope.entityType = "Member"; + }else if(dialogOptions.treeAlias === "media"){ + $scope.searcher = searchService.searchMedia; + $scope.entityType = "Media"; + } + + function select(id){ + entityResource.getById(id, $scope.entityType).then(function(ent){ + if(dialogOptions && dialogOptions.multiPicker){ + + $scope.showSearch = false; + $scope.results = []; + $scope.term = ""; + $scope.oldTerm = undefined; + + $scope.select(ent); + }else{ + $scope.submit(ent); + } + }); + } + + $scope.selectResult = function(result){ + select(result.id); + }; + + $scope.performSearch = function(){ + if($scope.term){ + if($scope.oldTerm !== $scope.term){ + $scope.results = []; + + $scope.searcher.call(null, {term: $scope.term, results: $scope.results}); + + $scope.showSearch = true; + $scope.oldTerm = $scope.term; + } + }else{ + $scope.oldTerm = ""; + $scope.showSearch = false; + $scope.results = []; + } + }; $scope.dialogTreeEventHandler.bind("treeNodeSelect", function(ev, args){ args.event.preventDefault(); args.event.stopPropagation(); eventsService.publish("Umbraco.Dialogs.TreePickerController.Select", args).then(function(args){ - if(dialogOptions && dialogOptions.multipicker){ - $(args.event.target.parentElement) - .find("i.umb-tree-icon") - .attr("class", "icon umb-tree-icon sprTree icon-check blue"); - - $scope.select(args.node); - }else{ - $scope.submit(args.node); - } - }); + select(args.node.id); + if(dialogOptions && dialogOptions.multiPicker){ + var c = $(args.event.target.parentElement); + if(!args.node.selected){ + args.node.selected = true; + c.find("i.umb-tree-icon").hide() + .after(""); + }else{ + args.node.selected = false; + c.find(".temporary").remove(); + c.find("i.umb-tree-icon").show(); + } + } + }); }); }); \ No newline at end of file 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 205d8548cc..7c75ec69e3 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,7 +1,42 @@
-
+
+
+ +
+
+