feat(super-users): paginate user tab

This commit is contained in:
EvB 2016-12-20 13:54:31 -05:00
parent a2ac62f5ce
commit d25051a953
2 changed files with 64 additions and 19 deletions

View file

@ -9,30 +9,61 @@ angular.module('quay').directive('manageUserTab', function () {
transclude: true,
restrict: 'C',
scope: {
'isEnabled': '=isEnabled'
'isEnabled': '=isEnabled'
},
controller: function ($scope, $timeout, $location, $element, ApiService, UserService) {
controller: function ($scope, $timeout, $location, $element, ApiService, UserService, TableService) {
$scope.user = UserService.currentUser();
$scope.users = null;
$scope.orderedUsers = [];
$scope.usersPerPage = 10;
$scope.newUser = {};
$scope.createdUser = null;
$scope.takeOwnershipInfo = null;
$scope.options = {
'predicate': 'username',
'reverse': false,
'filter': null,
'page': 0
};
$scope.showCreateUser = function () {
$scope.createdUser = null;
$('#createUserModal').modal('show');
};
var sortUsers = function() {
if (!$scope.users) {return;}
$scope.orderedUsers = TableService.buildOrderedItems($scope.users, $scope.options,
['username', 'email'], []);
};
var loadUsersInternal = function () {
ApiService.listAllUsers().then(function (resp) {
$scope.users = resp['users'];
sortUsers();
$scope.showInterface = true;
}, function (resp) {
$scope.users = [];
$scope.usersError = ApiService.getErrorMessage(resp);
});
};
$scope.tablePredicateClass = function(name, predicate, reverse) {
if (name != predicate) {
return '';
}
return 'current ' + (reverse ? 'reversed' : '');
};
$scope.orderBy = function(predicate) {
if (predicate == $scope.options.predicate) {
$scope.options.reverse = !$scope.options.reverse;
return;
}
$scope.options.reverse = false;
$scope.options.predicate = predicate;
};
$scope.createUser = function () {
$scope.creatingUser = true;
$scope.createdUser = null;
@ -224,6 +255,10 @@ angular.module('quay').directive('manageUserTab', function () {
loadUsersInternal();
}
});
$scope.$watch('options.predicate', sortUsers);
$scope.$watch('options.reverse', sortUsers);
$scope.$watch('options.filter', sortUsers);
}
};
return directiveDefinitionObject;