Add repository list pagination
Also changes our binds to be bind-once, which should significantly reduce memory and increase performance for large lists Fixes #1856
This commit is contained in:
parent
502fa23d31
commit
e4ad25ea81
6 changed files with 55 additions and 20 deletions
|
@ -16,19 +16,22 @@ angular.module('quay').directive('repoListTable', function () {
|
|||
controller: function($scope, $element, $filter, TableService, UserService) {
|
||||
$scope.repositories = null;
|
||||
$scope.orderedRepositories = [];
|
||||
$scope.reposPerPage = 50;
|
||||
|
||||
$scope.maxPopularity = 0;
|
||||
$scope.options = {
|
||||
'predicate': 'popularity',
|
||||
'reverse': false,
|
||||
'filter': null
|
||||
'filter': null,
|
||||
'page': 0
|
||||
};
|
||||
|
||||
var buildOrderedRepositories = function() {
|
||||
if (!$scope.repositories) { return; }
|
||||
|
||||
$scope.orderedRepositories = TableService.buildOrderedItems($scope.repositories, $scope.options,
|
||||
[], ['last_modified_datetime', 'popularity'])
|
||||
$scope.orderedRepositories = TableService.buildOrderedItems($scope.repositories,
|
||||
$scope.options,
|
||||
['namespace', 'name'], ['last_modified_datetime', 'popularity'])
|
||||
};
|
||||
|
||||
$scope.tablePredicateClass = function(name, predicate, reverse) {
|
||||
|
@ -70,6 +73,7 @@ angular.module('quay').directive('repoListTable', function () {
|
|||
|
||||
$scope.$watch('options.predicate', buildOrderedRepositories);
|
||||
$scope.$watch('options.reverse', buildOrderedRepositories);
|
||||
$scope.$watch('options.filter', buildOrderedRepositories);
|
||||
|
||||
$scope.$watch('repositoriesResources', function(resources) {
|
||||
$scope.repositories = [];
|
||||
|
|
Reference in a new issue