Work on member group picker, allows multiple selection

This commit is contained in:
Tim Geyssens
2013-10-31 09:22:06 +01:00
parent 177eb3d360
commit adcf09c99b
4 changed files with 23 additions and 11 deletions

View File

@@ -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("<i class='icon umb-tree-icon sprTree icon-check blue temporary'></i>");
}
else {
remove(a.node.name, a.node.id);
a.node.selected = false;
c.find(".temporary").remove();
c.find("i.umb-tree-icon").show();

View File

@@ -26,9 +26,9 @@
<button
class="btn btn-primary"
ng-show="multipicker"
ng-show="dialogOptions.multiPicker"
ng-click="submit(dialogData)">
<localize key="buttons_select">Select</localize>({{dialogData.selection.length}})
<localize key="buttons_select">Select</localize>
</button>
</div>

View File

@@ -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);
}

View File

@@ -2,11 +2,10 @@
<ul class="unstyled"
ui-sortable="sortableOptions"
ng-model="renderModel">
<li ng-repeat="node in renderModel">
<i class="icon icon-navigation handle"></i>
<a href="#" prevent-default ng-click="remove($index)">
<i class="icon icon-delete red hover-show"></i>
@@ -19,7 +18,7 @@
<ul class="unstyled">
<li>
<a href="#" ng-click="openMemberGroupPicker()" prevent-default>
<i class="icon icon-add"></i> <localize key="general_add">Add</localize>
<i class="icon icon-add blue"></i> <localize key="general_add">Add</localize>
</a>
</li>
</ul>