diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/membergrouppicker/membergrouppicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/membergrouppicker/membergrouppicker.controller.js new file mode 100644 index 0000000000..4457ac8f90 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/membergrouppicker/membergrouppicker.controller.js @@ -0,0 +1,60 @@ +//used for the member picker dialog +angular.module("umbraco").controller("Umbraco.Overlays.MemberGroupPickerController", + function($scope, eventsService, entityResource, searchService, $log) { + + $scope.dialogTreeEventHandler = $({}); + $scope.multiPicker = $scope.model.multiPicker; + + function activate() { + + if($scope.multiPicker) { + $scope.model.selectedMemberGroups = []; + } else { + $scope.model.selectedMemberGroup = ""; + } + + } + + function selectMemberGroup(id) { + $scope.model.selectedMemberGroup = id; + } + + function selectMemberGroups(id) { + $scope.model.selectedMemberGroups.push(id); + } + + /** Method used for selecting a node */ + function select(text, id) { + + if ($scope.model.multiPicker) { + selectMemberGroups(id); + } + else { + selectMemberGroup(id); + $scope.model.submit($scope.model); + } + } + + function nodeSelectHandler(ev, args) { + args.event.preventDefault(); + args.event.stopPropagation(); + + eventsService.emit("dialogs.memberGroupPicker.select", args); + + //This is a tree node, so we don't have an entity to pass in, it will need to be looked up + //from the server in this method. + select(args.node.name, args.node.id); + + //toggle checked state + args.node.selected = args.node.selected === true ? false : true; + } + + $scope.dialogTreeEventHandler.bind("treeNodeSelect", nodeSelectHandler); + + $scope.$on('$destroy', function () { + $scope.dialogTreeEventHandler.unbind("treeNodeSelect", nodeSelectHandler); + }); + + activate(); + + }); diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/membergrouppicker/membergrouppicker.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/membergrouppicker/membergrouppicker.html new file mode 100644 index 0000000000..6d6a96bd3e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/membergrouppicker/membergrouppicker.html @@ -0,0 +1,12 @@ +