permissions dialog: add edit button to selected user group

This commit is contained in:
Mads Rasmussen
2017-06-25 22:48:49 +02:00
parent 7beec02a3f
commit 493873a8d0
4 changed files with 114 additions and 105 deletions

View File

@@ -20,7 +20,9 @@
mediaStartNode: "=?",
permissions: "=?",
allowRemove: "=?",
onRemove: "&?"
allowEdit: "=?",
onRemove: "&?",
onEdit: "&?"
},
link: link
};

View File

@@ -39,6 +39,7 @@
</div>
<div class="umb-user-group-preview__actions">
<a class="umb-user-group-preview__action" title="Edit" href="" ng-if="allowRemove" ng-click="onEdit()">Edit</i></a>
<a class="umb-user-group-preview__action umb-user-group-preview__action--red" title="Remove" href="" ng-if="allowRemove" ng-click="onRemove()">Remove</i></a>
<div>

View File

@@ -22,6 +22,103 @@
usersResource.getUserGroups().then(function (userGroups) {
vm.availableUserGroups = userGroups;
vm.loading = false;
// fake permissions
angular.forEach(vm.availableUserGroups, function(userGroup){
userGroup.permissions = [
{
"groupName": "Content",
"permissions": [
{
"name": "Edit content (save)",
"description": "Lorem ipsum dolor sit amet",
"checked": false
},
{
"name": "Browse content",
"description": "Nullam egestas porta mi, quis finibus nisl commodo a",
"checked": true
},
{
"name": "Publish",
"description": "Aliquam molestie consequat felis",
"checked": true
},
{
"name": "Send to publish",
"description": "Sed pharetra sodales enim quis molestie",
"checked": true
},
{
"name": "Delete",
"description": "Vitae porta mauris turpis sit amet ligula",
"checked": true
},
{
"name": "Create",
"description": "Vestibulum pretium sapien id turpis elementum viverra",
"checked": true
},
]
},
{
"groupName": "Structure",
"permissions": [
{
"name": "Move",
"description": "Vestibulum pretium sapien id turpis elementum viverra",
"checked": true
},
{
"name": "Copy",
"description": "Phasellus sagittis, dolor vel accumsan porttitor",
"checked": false
},
{
"name": "Sort",
"description": "Aliquam erat volutpat",
"checked": false
}
]
},
{
"groupName": "Administration",
"permissions": [
{
"name": "Culture and Hostnames",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Audit Trail",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Translate",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Change document type",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Public access",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Rollback",
"description": "Lorem ipsum dolor sit amet",
"checked": true
}
]
}
];
});
});
}
@@ -36,121 +133,28 @@
function editPermissions(group) {
vm.selectedUserGroup = group;
setViewSate("managePermissions");
// fake permissions
vm.selectedUserGroup.permissions = [
{
"groupName": "Content",
"permissions": [
{
"name": "Edit content (save)",
"description": "Lorem ipsum dolor sit amet",
"checked": false
},
{
"name": "Browse content",
"description": "Nullam egestas porta mi, quis finibus nisl commodo a",
"checked": true
},
{
"name": "Publish",
"description": "Aliquam molestie consequat felis",
"checked": true
},
{
"name": "Send to publish",
"description": "Sed pharetra sodales enim quis molestie",
"checked": true
},
{
"name": "Delete",
"description": "Vitae porta mauris turpis sit amet ligula",
"checked": true
},
{
"name": "Create",
"description": "Vestibulum pretium sapien id turpis elementum viverra",
"checked": true
},
]
},
{
"groupName": "Structure",
"permissions": [
{
"name": "Move",
"description": "Vestibulum pretium sapien id turpis elementum viverra",
"checked": true
},
{
"name": "Copy",
"description": "Phasellus sagittis, dolor vel accumsan porttitor",
"checked": false
},
{
"name": "Sort",
"description": "Aliquam erat volutpat",
"checked": false
}
]
},
{
"groupName": "Administration",
"permissions": [
{
"name": "Culture and Hostnames",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Audit Trail",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Translate",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Change document type",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Public access",
"description": "Lorem ipsum dolor sit amet",
"checked": true
},
{
"name": "Rollback",
"description": "Lorem ipsum dolor sit amet",
"checked": true
}
]
}
];
}
function setPermissions(group) {
// clear allowed permissions before we make the list
// so we don't have deplicates
group.allowedPermissions = [];
// get list of checked permissions
angular.forEach(group.permissions, function(permissionGroup) {
angular.forEach(permissionGroup.permissions, function(permission) {
if(permission.checked) {
if(!group.allowedPermissions) {
group.allowedPermissions = [];
}
group.allowedPermissions.push(permission);
}
});
});
// set to selected so we can remove from the dropdown easily
group.selected = true;
vm.selectedUserGroups.push(group);
if(!group.selected) {
// set to selected so we can remove from the dropdown easily
group.selected = true;
vm.selectedUserGroups.push(group);
}
setViewSate("manageGroups");
}

View File

@@ -30,7 +30,9 @@
name="group.name"
permissions="group.allowedPermissions"
allow-remove="true"
on-remove="vm.removePermissions($index, vm.selectedUserGroups)">
allow-edit="true"
on-remove="vm.removePermissions($index, vm.selectedUserGroups)"
on-edit="vm.editPermissions(group)">
</umb-user-group-preview>
</div>