From 493873a8d08c618d8738aa99a119631298093067 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 25 Jun 2017 22:48:49 +0200 Subject: [PATCH] permissions dialog: add edit button to selected user group --- .../users/umbusergrouppreview.directive.js | 4 +- .../users/umb-user-group-preview.html | 1 + .../content/content.rights.controller.js | 210 +++++++++--------- .../src/views/content/rights.html | 4 +- 4 files changed, 114 insertions(+), 105 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js index 0481418215..7a777b76c5 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js @@ -20,7 +20,9 @@ mediaStartNode: "=?", permissions: "=?", allowRemove: "=?", - onRemove: "&?" + allowEdit: "=?", + onRemove: "&?", + onEdit: "&?" }, link: link }; diff --git a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html index 0126d8120e..2a38d00df0 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html @@ -39,6 +39,7 @@
+ Edit Remove
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js index 2ed2d9662d..614be714f5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js @@ -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"); } diff --git a/src/Umbraco.Web.UI.Client/src/views/content/rights.html b/src/Umbraco.Web.UI.Client/src/views/content/rights.html index 91b9e708b5..defedb550e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/rights.html +++ b/src/Umbraco.Web.UI.Client/src/views/content/rights.html @@ -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)">