New team view interface

This commit is contained in:
Joseph Schorr 2014-08-15 20:51:31 -04:00
parent 56d7a3524d
commit 7d7cca39cc
8 changed files with 173 additions and 45 deletions

View file

@ -1944,7 +1944,9 @@ quayApp.directive('entityReference', function () {
restrict: 'C',
scope: {
'entity': '=entity',
'namespace': '=namespace'
'namespace': '=namespace',
'showGravatar': '@showGravatar',
'gravatarSize': '@gravatarSize'
},
controller: function($scope, $element, UserService, UtilService) {
$scope.getIsAdmin = function(namespace) {
@ -3423,6 +3425,8 @@ quayApp.directive('entitySearch', function () {
// Set this property to immediately clear the contents of the control.
'clearValue': '=clearValue',
'pullRight': '@pullRight'
},
controller: function($rootScope, $scope, $element, Restangular, UserService, ApiService, Config) {
$scope.lazyLoading = true;

View file

@ -2349,22 +2349,34 @@ function TeamViewCtrl($rootScope, $scope, Restangular, ApiService, $routeParams)
$scope.orgname = orgname;
$scope.teamname = teamname;
$scope.addingMember = false;
$scope.memberMap = null;
$rootScope.title = 'Loading...';
$scope.addNewMember = function(member) {
if (!member || $scope.members[member.name]) { return; }
$scope.filterFunction = function(invited, robots) {
return function(item) {
return item.is_robot == robots && item.invited == invited;
};
};
$scope.addNewMember = function(member) {
if (!member || $scope.memberMap[member.name]) { return; }
var params = {
'orgname': orgname,
'teamname': teamname,
'membername': member.name
};
$scope.addingMember = true;
ApiService.updateOrganizationTeamMember(null, params).then(function(resp) {
$scope.members[member.name] = resp;
$scope.members.push(resp);
$scope.memberMap[resp.name] = resp;
$scope.addingMember = false;
}, function() {
$('#cannotChangeMembersModal').modal({});
$scope.addingMember = false;
});
};
@ -2376,7 +2388,14 @@ function TeamViewCtrl($rootScope, $scope, Restangular, ApiService, $routeParams)
};
ApiService.deleteOrganizationTeamMember(null, params).then(function(resp) {
delete $scope.members[username];
for (var i = $scope.members.length - 1; i >= 0; --i) {
var current = $scope.members[i];
if (current.name == username) {
$scope.members.splice(i, 1);
delete $scope.memberMap[username];
break;
}
}
}, function() {
$('#cannotChangeMembersModal').modal({});
});
@ -2424,6 +2443,12 @@ function TeamViewCtrl($rootScope, $scope, Restangular, ApiService, $routeParams)
'html': true
});
$scope.memberMap = {};
for (var i = 0; i < $scope.members.length; ++i) {
var current = $scope.members[i];
$scope.memberMap[current.name] = current;
}
return resp.members;
});
};