Merge pull request #213 from coreos-inc/orgmember
Add a secondary tab to Teams for managing org members
This commit is contained in:
commit
cf4800c06c
8 changed files with 373 additions and 105 deletions
|
@ -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);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Reference in a new issue