From fd9f7d0e64ee6ff5d5c46befabf9aa02f569bff1 Mon Sep 17 00:00:00 2001 From: kunw Date: Thu, 21 Apr 2016 13:12:18 +0800 Subject: [PATCH] updates for changing user's role feature. --- .../details/switch-roles.directive.html | 6 +++ .../details/switch-roles.directive.js | 51 ++++++++++++++++++ .../edit-projectmember.controller.js | 15 ------ .../edit-projectmember.directive.html | 11 ++++ .../edit-projectmember.directive.js | 52 +++++++++++++++++++ .../components/user/list-user.directive.html | 12 +---- static/ng/resources/js/harbor.module.js | 2 + views/ng/sections/headerInclude.htm | 7 +++ 8 files changed, 131 insertions(+), 25 deletions(-) create mode 100644 static/ng/resources/js/components/details/switch-roles.directive.html create mode 100644 static/ng/resources/js/components/details/switch-roles.directive.js delete mode 100644 static/ng/resources/js/components/projectmember/edit-projectmember.controller.js create mode 100644 static/ng/resources/js/components/projectmember/edit-projectmember.directive.html create mode 100644 static/ng/resources/js/components/projectmember/edit-projectmember.directive.js diff --git a/static/ng/resources/js/components/details/switch-roles.directive.html b/static/ng/resources/js/components/details/switch-roles.directive.html new file mode 100644 index 000000000..f6d129af7 --- /dev/null +++ b/static/ng/resources/js/components/details/switch-roles.directive.html @@ -0,0 +1,6 @@ + + //vm.currentRole.name// + + \ No newline at end of file diff --git a/static/ng/resources/js/components/details/switch-roles.directive.js b/static/ng/resources/js/components/details/switch-roles.directive.js new file mode 100644 index 000000000..b325b67e2 --- /dev/null +++ b/static/ng/resources/js/components/details/switch-roles.directive.js @@ -0,0 +1,51 @@ +(function() { + + 'use strict'; + + angular + .module('harbor.details') + .directive('switchRoles', switchRoles); + + + SwitchRolesController.$inject = []; + + function SwitchRolesController() { + var vm = this; + + vm.currentRole = getRoleById(vm.roleId); + vm.selectRole = selectRole; + + function selectRole(role) { + vm.roleId = role.id; + vm.currentRole = getRoleById(vm.roleId); + } + + function getRoleById(roleId) { + for(var i = 0; i < vm.roles.length; i++) { + var role = vm.roles[i]; + if(role.id == roleId) { + return role; + } + } + } + + } + + function switchRoles() { + var directive = { + 'restrict': 'E', + 'templateUrl': '/static/ng/resources/js/components/details/switch-roles.directive.html', + 'scope': { + 'roles': '=', + 'editMode': '=', + 'userId': '=', + 'roleId': '=', + }, + 'controller' : SwitchRolesController, + 'controllerAs': 'vm', + 'bindToController': true + }; + return directive; + } + +})(); \ No newline at end of file diff --git a/static/ng/resources/js/components/projectmember/edit-projectmember.controller.js b/static/ng/resources/js/components/projectmember/edit-projectmember.controller.js deleted file mode 100644 index 3ba4ccb1c..000000000 --- a/static/ng/resources/js/components/projectmember/edit-projectmember.controller.js +++ /dev/null @@ -1,15 +0,0 @@ -(function() { - - 'use strict'; - - angular - .module('harbor.projectmember') - .controller('EditProjectMemberController', EditProjectMemberController); - - EditProjectMemberController.$inject = ['EditProjectMemberService']; - - function EditProjectMemberController(EditProjectMemberService) { - - } - -})(); \ No newline at end of file diff --git a/static/ng/resources/js/components/projectmember/edit-projectmember.directive.html b/static/ng/resources/js/components/projectmember/edit-projectmember.directive.html new file mode 100644 index 000000000..2f0b96e09 --- /dev/null +++ b/static/ng/resources/js/components/projectmember/edit-projectmember.directive.html @@ -0,0 +1,11 @@ +user1 + + + + +    + + + + + \ No newline at end of file diff --git a/static/ng/resources/js/components/projectmember/edit-projectmember.directive.js b/static/ng/resources/js/components/projectmember/edit-projectmember.directive.js new file mode 100644 index 000000000..f4ae790b4 --- /dev/null +++ b/static/ng/resources/js/components/projectmember/edit-projectmember.directive.js @@ -0,0 +1,52 @@ +(function() { + + 'use strict'; + + angular + .module('harbor.projectmember') + .constant('roles', roles) + .directive('editProjectMember', editProjectMember); + + function roles() { + return [ + {'id': '1', 'name': 'Project Admin'}, + {'id': '2', 'name': 'Developer'}, + {'id': '3', 'name': 'Guest'} + ]; + } + + EditProjectMemberController.$inject = ['roles', 'EditProjectMemberService']; + + function EditProjectMemberController(roles, EditProjectMemberService) { + var vm = this; + vm.roles = roles(); + vm.editMode = false; + vm.update = update; + + function update(e) { + if(vm.editMode) { + vm.editMode = false; + }else { + vm.editMode = true; + } + vm.roleId = e.roleId; + } + + } + + function editProjectMember() { + var directive = { + 'restrict': 'A', + 'templateUrl': '/static/ng/resources/js/components/projectmember/edit-projectmember.directive.html', + 'scope': { + 'userId': '=', + 'roleId': '=' + }, + 'controller': EditProjectMemberController, + 'controllerAs': 'vm', + 'bindToController': true + }; + return directive; + } + +})(); \ No newline at end of file diff --git a/static/ng/resources/js/components/user/list-user.directive.html b/static/ng/resources/js/components/user/list-user.directive.html index a6c217d0b..8f93af307 100644 --- a/static/ng/resources/js/components/user/list-user.directive.html +++ b/static/ng/resources/js/components/user/list-user.directive.html @@ -44,16 +44,8 @@ UsernameRoleOperation - - user13Project Admin - - - tester13Project Admin - - - user13Project Admin - - + + diff --git a/static/ng/resources/js/harbor.module.js b/static/ng/resources/js/harbor.module.js index 113fef0c7..795ca6225 100644 --- a/static/ng/resources/js/harbor.module.js +++ b/static/ng/resources/js/harbor.module.js @@ -9,10 +9,12 @@ 'harbor.layout.log', 'harbor.services.user', 'harbor.services.repository', + 'harbor.services.projectmember', 'harbor.session', 'harbor.header', 'harbor.details', 'harbor.repository', + 'harbor.projectmember', 'harbor.user', 'harbor.log' ]); diff --git a/views/ng/sections/headerInclude.htm b/views/ng/sections/headerInclude.htm index cb72f3c1a..2ffa65659 100644 --- a/views/ng/sections/headerInclude.htm +++ b/views/ng/sections/headerInclude.htm @@ -55,6 +55,9 @@ + + + @@ -66,6 +69,7 @@ + @@ -73,6 +77,9 @@ + + +