diff --git a/src/Umbraco.Web.UI.Client/src/common/services/search.service.js b/src/Umbraco.Web.UI.Client/src/common/services/search.service.js index a58c5a88eb..a5461a20cd 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/search.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/search.service.js @@ -12,6 +12,7 @@ angular.module('umbraco.services') el.metaData = {treeAlias: "member"}; el.title = el.Fields.nodeName; el.subTitle = el.Fields.email; + el.id = el.Id; }); args.results.push({ @@ -28,6 +29,7 @@ angular.module('umbraco.services') el.menuUrl = "UmbracoTrees/ContentTree/GetMenu?id=" + el.Id + "&application=content"; el.metaData = {treeAlias: "content"}; el.title = el.Fields.nodeName; + el.id = el.Id; contentResource.getNiceUrl(el.Id).then(function(url){ el.subTitle = angular.fromJson(url); @@ -48,6 +50,7 @@ angular.module('umbraco.services') el.menuUrl = "UmbracoTrees/MediaTree/GetMenu?id=" + el.Id + "&application=media"; el.metaData = {treeAlias: "media"}; el.title = el.Fields.nodeName; + el.id = el.Id; }); args.results.push({ diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.controller.js index 4861499cf6..a172a482fb 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.controller.js @@ -1,8 +1,41 @@ //used for the media picker dialog angular.module("umbraco").controller("Umbraco.Dialogs.ContentPickerController", - function ($scope, eventsService, $log) { + function ($scope, eventsService, entityResource, searchService, $log) { var dialogOptions = $scope.$parent.dialogOptions; $scope.dialogTreeEventHandler = $({}); + $scope.results = []; + + $scope.select = function(result){ + entityResource.getById(result.id, "Document").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.performSearch = function(){ + if($scope.term){ + if($scope.oldTerm !== $scope.term){ + $scope.results = []; + searchService.searchContent({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(); diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.html index 12f68dda96..32109e5fcd 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/contentpicker.html @@ -1,16 +1,49 @@