2016-04-21 07:12:18 +02:00
|
|
|
(function() {
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
angular
|
2016-04-21 12:19:51 +02:00
|
|
|
.module('harbor.project.member')
|
2016-04-21 07:12:18 +02:00
|
|
|
.directive('editProjectMember', editProjectMember);
|
2016-04-22 18:49:52 +02:00
|
|
|
|
2016-04-26 12:23:34 +02:00
|
|
|
EditProjectMemberController.$inject = ['$scope', 'roles', 'getRole','EditProjectMemberService', 'DeleteProjectMemberService'];
|
2016-04-21 07:12:18 +02:00
|
|
|
|
2016-04-26 12:23:34 +02:00
|
|
|
function EditProjectMemberController($scope, roles, getRole, EditProjectMemberService, DeleteProjectMemberService) {
|
2016-04-21 07:12:18 +02:00
|
|
|
var vm = this;
|
2016-05-04 12:42:05 +02:00
|
|
|
|
|
|
|
vm.roles = roles();
|
|
|
|
vm.editMode = false;
|
|
|
|
vm.lastRoleName = vm.roleName;
|
2016-04-26 12:23:34 +02:00
|
|
|
|
2016-05-04 12:42:05 +02:00
|
|
|
$scope.$watch('vm.roleName', function(current, origin) {
|
|
|
|
if(current) {
|
|
|
|
vm.currentRole = getRole({'key': 'roleName', 'value': current});
|
|
|
|
vm.roleId = vm.currentRole.id;
|
|
|
|
}
|
2016-04-26 12:23:34 +02:00
|
|
|
});
|
|
|
|
|
2016-04-22 18:49:52 +02:00
|
|
|
vm.updateProjectMember = updateProjectMember;
|
|
|
|
vm.deleteProjectMember = deleteProjectMember;
|
2016-05-04 12:42:05 +02:00
|
|
|
vm.cancelUpdate = cancelUpdate;
|
2016-04-21 12:19:51 +02:00
|
|
|
|
2016-04-22 18:49:52 +02:00
|
|
|
function updateProjectMember(e) {
|
2016-04-21 07:12:18 +02:00
|
|
|
if(vm.editMode) {
|
2016-05-04 12:42:05 +02:00
|
|
|
console.log('update project member, roleId:' + e.roleId);
|
2016-04-26 12:23:34 +02:00
|
|
|
EditProjectMemberService(e.projectId, e.userId, e.roleId)
|
|
|
|
.success(editProjectMemberComplete)
|
|
|
|
.error(editProjectMemberFailed);
|
2016-04-21 07:12:18 +02:00
|
|
|
}else {
|
2016-04-22 18:49:52 +02:00
|
|
|
vm.editMode = true;
|
2016-04-21 12:19:51 +02:00
|
|
|
}
|
2016-04-21 07:12:18 +02:00
|
|
|
}
|
2016-04-22 18:49:52 +02:00
|
|
|
|
|
|
|
function deleteProjectMember(e) {
|
2016-04-26 12:23:34 +02:00
|
|
|
DeleteProjectMemberService(e.projectId, e.userId)
|
|
|
|
.success(editProjectMemberComplete)
|
|
|
|
.error(editProjectMemberFailed);
|
2016-04-22 18:49:52 +02:00
|
|
|
}
|
2016-04-26 12:23:34 +02:00
|
|
|
|
|
|
|
function editProjectMemberComplete(data, status, headers) {
|
2016-05-04 12:42:05 +02:00
|
|
|
console.log('edit project member complete: ' + status);
|
|
|
|
vm.lastRoleName = vm.roleName;
|
2016-05-25 06:13:07 +02:00
|
|
|
vm.editMode = false;
|
|
|
|
vm.reload();
|
2016-04-26 12:23:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function editProjectMemberFailed(e) {
|
2016-05-04 12:42:05 +02:00
|
|
|
console.log('Failed to edit project member:' + e);
|
|
|
|
}
|
|
|
|
|
|
|
|
function cancelUpdate() {
|
|
|
|
vm.editMode = false;
|
|
|
|
vm.roleName = vm.lastRoleName;
|
2016-04-26 12:23:34 +02:00
|
|
|
}
|
|
|
|
|
2016-04-21 07:12:18 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function editProjectMember() {
|
|
|
|
var directive = {
|
|
|
|
'restrict': 'A',
|
2016-06-16 08:10:35 +02:00
|
|
|
'templateUrl': '/static/resources/js/components/project-member/edit-project-member.directive.html',
|
2016-04-21 07:12:18 +02:00
|
|
|
'scope': {
|
2016-04-21 12:24:40 +02:00
|
|
|
'username': '=',
|
2016-04-21 07:12:18 +02:00
|
|
|
'userId': '=',
|
2016-05-04 12:42:05 +02:00
|
|
|
'currentUserId': '=',
|
2016-04-26 12:23:34 +02:00
|
|
|
'roleName': '=',
|
2016-04-28 19:36:39 +02:00
|
|
|
'projectId': '=',
|
|
|
|
'reload': '&'
|
2016-04-21 07:12:18 +02:00
|
|
|
},
|
|
|
|
'controller': EditProjectMemberController,
|
|
|
|
'controllerAs': 'vm',
|
|
|
|
'bindToController': true
|
|
|
|
};
|
|
|
|
return directive;
|
|
|
|
}
|
|
|
|
|
|
|
|
})();
|