Add ability to change the members of a team

This commit is contained in:
Joseph Schorr 2013-11-04 15:31:38 -05:00
parent 633f603f9d
commit e6fadbca05
5 changed files with 65 additions and 29 deletions

View file

@ -14,6 +14,17 @@ $.fn.clipboardCopy = function() {
});
};
function getRestUrl(args) {
var url = '';
for (var i = 0; i < arguments.length; ++i) {
if (i > 0) {
url += '/';
}
url += encodeURI(arguments[i])
}
return url;
}
function getFirstTextLine(commentString) {
if (!commentString) { return; }
@ -573,7 +584,7 @@ function RepoAdminCtrl($scope, Restangular, $routeParams, $rootScope) {
};
$scope.deleteRole = function(entityName, kind) {
var permissionDelete = Restangular.one('repository/' + namespace + '/' + name + '/permissions/' + kind + '/' + entityName);
var permissionDelete = Restangular.one(getRestUrl('repository', namespace, name, 'permissions', kind, entityName));
permissionDelete.customDELETE().then(function() {
delete $scope.permissions[kind][entityName];
}, function(result) {
@ -591,7 +602,7 @@ function RepoAdminCtrl($scope, Restangular, $routeParams, $rootScope) {
'outside_org': !!outside_org
};
var permissionPost = Restangular.one('repository/' + namespace + '/' + name + '/permissions/' + kind + '/' + entityName);
var permissionPost = Restangular.one(getRestUrl('repository', namespace, name, 'permissions', kind, entityName));
permissionPost.customPOST(permission).then(function() {
$scope.permissions[kind][entityName] = permission;
}, function(result) {
@ -604,7 +615,7 @@ function RepoAdminCtrl($scope, Restangular, $routeParams, $rootScope) {
var currentRole = permission.role;
permission.role = role;
var permissionPut = Restangular.one('repository/' + namespace + '/' + name + '/permissions/' + kind + '/' + entityName);
var permissionPut = Restangular.one(getRestUrl('repository', namespace, name, 'permissions', kind, entityName));
permissionPut.customPUT(permission).then(function() {}, function(result) {
if (result.status == 409) {
permission.role = currentRole;
@ -1191,8 +1202,30 @@ function TeamViewCtrl($rootScope, $scope, Restangular, $routeParams) {
$scope.loading = true;
$scope.teamname = teamname;
$scope.addNewMember = function(member) {
if ($scope.members[member.name]) { return; }
$scope.$apply(function() {
var addMember = Restangular.one(getRestUrl('organization', orgname, 'team', teamname, 'members', member.name));
addMember.customPOST().then(function(resp) {
$scope.members[member.name] = resp;
}, function() {
$('#cannotChangeMembersModal').modal({});
});
});
};
$scope.removeMember = function(username) {
var removeMember = Restangular.one(getRestUrl('organization', orgname, 'team', teamname, 'members', username));
removeMember.customDELETE().then(function(resp) {
delete $scope.members[username];
}, function() {
$('#cannotChangeMembersModal').modal({});
});
};
var loadOrganization = function() {
var getOrganization = Restangular.one('organization/' + orgname);
var getOrganization = Restangular.one(getRestUrl('organization', orgname))
getOrganization.get().then(function(resp) {
$scope.organization = resp;
$scope.loading = !$scope.organization || !$scope.members;
@ -1202,7 +1235,7 @@ function TeamViewCtrl($rootScope, $scope, Restangular, $routeParams) {
};
var loadMembers = function() {
var getMembers = Restangular.one('organization/' + orgname + '/team/' + teamname + '/members');
var getMembers = Restangular.one(getRestUrl('organization', orgname, 'team', teamname, 'members'));
getMembers.get().then(function(resp) {
$scope.members = resp.members;
$scope.loading = !$scope.organization || !$scope.members;