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-06-25 10:15:50 +02:00
|
|
|
EditProjectMemberController.$inject = ['$scope', 'roles', 'getRole','EditProjectMemberService', '$filter', 'trFilter'];
|
2016-04-21 07:12:18 +02:00
|
|
|
|
2016-06-25 10:15:50 +02:00
|
|
|
function EditProjectMemberController($scope, roles, getRole, EditProjectMemberService, $filter, trFilter) {
|
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
|
|
|
|
2016-06-20 10:05:14 +02:00
|
|
|
function deleteProjectMember() {
|
|
|
|
vm.delete();
|
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-07-01 12:37:17 +02:00
|
|
|
$scope.$emit('modalTitle', $filter('tr')('error'));
|
|
|
|
$scope.$emit('modalMessage', $filter('tr')('failed_to_change_member'));
|
|
|
|
$scope.$emit('raiseError', true);
|
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': '=',
|
2016-06-20 10:05:14 +02:00
|
|
|
'delete': '&',
|
2016-04-28 19:36:39 +02:00
|
|
|
'reload': '&'
|
2016-04-21 07:12:18 +02:00
|
|
|
},
|
|
|
|
'controller': EditProjectMemberController,
|
|
|
|
'controllerAs': 'vm',
|
|
|
|
'bindToController': true
|
|
|
|
};
|
|
|
|
return directive;
|
|
|
|
}
|
|
|
|
|
|
|
|
})();
|