mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-30 22:24:14 +01:00
82 lines
2.2 KiB
JavaScript
82 lines
2.2 KiB
JavaScript
(function() {
|
|
|
|
'use strict';
|
|
|
|
angular
|
|
.module('harbor.project.member')
|
|
.directive('editProjectMember', editProjectMember);
|
|
|
|
EditProjectMemberController.$inject = ['$scope', 'roles', 'getRole','EditProjectMemberService'];
|
|
|
|
function EditProjectMemberController($scope, roles, getRole, EditProjectMemberService) {
|
|
var vm = this;
|
|
|
|
vm.roles = roles();
|
|
vm.editMode = false;
|
|
vm.lastRoleName = vm.roleName;
|
|
|
|
$scope.$watch('vm.roleName', function(current, origin) {
|
|
if(current) {
|
|
vm.currentRole = getRole({'key': 'roleName', 'value': current});
|
|
vm.roleId = vm.currentRole.id;
|
|
}
|
|
});
|
|
|
|
vm.updateProjectMember = updateProjectMember;
|
|
vm.deleteProjectMember = deleteProjectMember;
|
|
vm.cancelUpdate = cancelUpdate;
|
|
|
|
function updateProjectMember(e) {
|
|
if(vm.editMode) {
|
|
console.log('update project member, roleId:' + e.roleId);
|
|
EditProjectMemberService(e.projectId, e.userId, e.roleId)
|
|
.success(editProjectMemberComplete)
|
|
.error(editProjectMemberFailed);
|
|
}else {
|
|
vm.editMode = true;
|
|
}
|
|
}
|
|
|
|
function deleteProjectMember() {
|
|
vm.delete();
|
|
}
|
|
|
|
function editProjectMemberComplete(data, status, headers) {
|
|
console.log('edit project member complete: ' + status);
|
|
vm.lastRoleName = vm.roleName;
|
|
vm.editMode = false;
|
|
vm.reload();
|
|
}
|
|
|
|
function editProjectMemberFailed(e) {
|
|
console.log('Failed to edit project member:' + e);
|
|
}
|
|
|
|
function cancelUpdate() {
|
|
vm.editMode = false;
|
|
vm.roleName = vm.lastRoleName;
|
|
}
|
|
|
|
}
|
|
|
|
function editProjectMember() {
|
|
var directive = {
|
|
'restrict': 'A',
|
|
'templateUrl': '/static/resources/js/components/project-member/edit-project-member.directive.html',
|
|
'scope': {
|
|
'username': '=',
|
|
'userId': '=',
|
|
'currentUserId': '=',
|
|
'roleName': '=',
|
|
'projectId': '=',
|
|
'delete': '&',
|
|
'reload': '&'
|
|
},
|
|
'controller': EditProjectMemberController,
|
|
'controllerAs': 'vm',
|
|
'bindToController': true
|
|
};
|
|
return directive;
|
|
}
|
|
|
|
})(); |