Repository endpoint tags pagination (#3238)

* endpoint/api/repository: limit the number of tags returned

- Limit the number of tags returned by /api/v1/repository/<ns:repo> to 500.
- Uses the tag history endpoint instead, with an active tag filte.
- Update UI to use tag history endpoint instead.
This commit is contained in:
Kenny Lee Sin Cheong 2018-09-14 15:30:54 -04:00 committed by GitHub
parent 6d5489b254
commit 8e643ce5d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 99 additions and 34 deletions

View file

@ -33,6 +33,8 @@
'historyFilter': ''
};
$scope.repositoryTags = {};
var buildPollChannel = null;
// Make sure we track the current user.
@ -50,17 +52,48 @@
});
};
var loadRepositoryTags = function() {
loadPaginatedRepositoryTags(1);
};
var loadPaginatedRepositoryTags = function(page) {
var params = {
'repository': $scope.namespace + '/' + $scope.name,
'limit': 100,
'page': page,
'onlyActiveTags': true
};
ApiService.listRepoTags(null, params).then(function(resp) {
var newTags = resp.tags.reduce(function(result, item, index, array) {
var tag_name = item['name'];
result[tag_name] = item;
return result;
}, {});
$.extend($scope.repositoryTags, newTags);
if (resp.has_additional) {
loadPaginatedRepositoryTags(page + 1);
}
});
};
var loadRepository = function() {
// Mark the images to be reloaded.
$scope.viewScope.images = null;
var params = {
'repository': $scope.namespace + '/' + $scope.name,
'includeStats': true
'includeStats': true,
'includeTags': false
};
$scope.repositoryResource = ApiService.getRepoAsResource(params).get(function(repo) {
if (repo != undefined) {
loadRepositoryTags();
repo.tags = $scope.repositoryTags;
$scope.repository = repo;
$scope.viewScope.repository = repo;