From adcf09c99b551391f3ce6d8aa1b55ce8992e07d2 Mon Sep 17 00:00:00 2001 From: Tim Geyssens Date: Thu, 31 Oct 2013 09:22:06 +0100 Subject: [PATCH 1/4] Work on member group picker, allows multiple selection --- .../dialogs/membergrouppicker.controller.js | 23 +++++++++++++++---- .../common/dialogs/membergrouppicker.html | 4 ++-- .../membergrouppicker.controller.js | 2 +- .../membergrouppicker/membergrouppicker.html | 5 ++-- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.controller.js index d7d85a4142..d9ea9f3a52 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.controller.js @@ -4,9 +4,10 @@ angular.module("umbraco").controller("Umbraco.Dialogs.MemberGroupPickerControlle var dialogOptions = $scope.$parent.dialogOptions; $scope.dialogTreeEventHandler = $({}); $scope.results = []; - + $scope.dialogData = []; + /** Method used for selecting a node */ - function select(text, id, entity) { + function select(text, id) { $scope.showSearch = false; @@ -15,13 +16,23 @@ angular.module("umbraco").controller("Umbraco.Dialogs.MemberGroupPickerControlle $scope.oldTerm = undefined; if (dialogOptions.multiPicker) { - $scope.select(id); + if ($scope.dialogData.indexOf(id) == -1) { + $scope.dialogData.push(id); + } } else { $scope.submit(id); } } + + function remove(text, id) { + var index = $scope.dialogData.indexOf(id); + + if (index > -1) { + $scope.dialogData.splice(index, 1); + } + } $scope.dialogTreeEventHandler.bind("treeNodeSelect", function(ev, args) { @@ -35,8 +46,7 @@ angular.module("umbraco").controller("Umbraco.Dialogs.MemberGroupPickerControlle //from the server in this method. select(a.node.name, a.node.id); - if (dialogOptions && dialogOptions.multipicker) { - + if (dialogOptions.multiPicker) { var c = $(a.event.target.parentElement); if (!a.node.selected) { a.node.selected = true; @@ -44,6 +54,9 @@ angular.module("umbraco").controller("Umbraco.Dialogs.MemberGroupPickerControlle .after(""); } else { + + remove(a.node.name, a.node.id); + a.node.selected = false; c.find(".temporary").remove(); c.find("i.umb-tree-icon").show(); diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.html index 6a8a0e3551..8779d4feb2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/membergrouppicker.html @@ -26,9 +26,9 @@ diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.controller.js index 5cd12cc0cc..e1b892379b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.controller.js @@ -7,7 +7,7 @@ angular.module('umbraco') $scope.renderModel = []; $scope.ids = $scope.model.value.split(','); - $scope.cfg = {multiPicker: false, entityType: "MemberGroup", type: "membergroup", treeAlias: "memberGroup", filter: ""}; + $scope.cfg = {multiPicker: true, entityType: "MemberGroup", type: "membergroup", treeAlias: "memberGroup", filter: ""}; if($scope.model.config){ $scope.cfg = angular.extend($scope.cfg, $scope.model.config); } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.html index 60b90c9c62..ecb514cc61 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/membergrouppicker/membergrouppicker.html @@ -2,11 +2,10 @@