Merge pull request #213 from coreos-inc/orgmember

Add a secondary tab to Teams for managing org members
This commit is contained in:
Jimmy Zelinskie 2015-07-06 11:48:40 -04:00
commit cf4800c06c
8 changed files with 373 additions and 105 deletions

View file

@ -12,7 +12,7 @@ angular.module('quay').directive('teamsManager', function () {
'organization': '=organization',
'isEnabled': '=isEnabled'
},
controller: function($scope, $element, ApiService, CreateService, $timeout) {
controller: function($scope, $element, ApiService, CreateService, $timeout, UserService) {
$scope.TEAM_PATTERN = TEAM_PATTERN;
$scope.teamRoles = [
{ 'id': 'member', 'title': 'Member', 'kind': 'default' },
@ -20,8 +20,12 @@ angular.module('quay').directive('teamsManager', function () {
{ 'id': 'admin', 'title': 'Admin', 'kind': 'primary' }
];
UserService.updateUserIn($scope);
$scope.members = {};
$scope.orderedTeams = [];
$scope.showingMembers = false;
$scope.fullMemberList = null;
var loadTeamMembers = function() {
if (!$scope.organization || !$scope.isEnabled) { return; }
@ -141,6 +145,47 @@ angular.module('quay').directive('teamsManager', function () {
delete $scope.organization.teams[teamname];
}, ApiService.errorDisplay('Cannot delete team'));
};
$scope.showMembers = function(value) {
$scope.showingMembers = value;
if (value && !$scope.fullMemberList) {
var params = {
'orgname': $scope.organization.name
};
ApiService.getOrganizationMembers(null, params).then(function(resp) {
$scope.fullMemberList = resp['members'];
}, ApiService.errorDisplay('Could not load full membership list'));
}
};
$scope.removeMember = function(memberInfo, callback) {
var params = {
'orgname': $scope.organization.name,
'membername': memberInfo.name
};
var errorHandler = ApiService.errorDisplay('Could not remove member', function() {
callback(false);
});
ApiService.removeOrganizationMember(null, params).then(function(resp) {
// Reset the state of the directive.
$scope.members = {};
$scope.orderedTeams = [];
$scope.fullMemberList = null;
loadOrderedTeams();
loadTeamMembers();
$scope.showMembers(true);
callback(true);
}, errorHandler)
};
$scope.askRemoveMember = function(memberInfo) {
$scope.removeMemberInfo = $.extend({}, memberInfo);
};
}
};