Move all controllers into page definitions and add support for layout profiles
This commit is contained in:
parent
f650479266
commit
d6d11644d8
34 changed files with 3744 additions and 3428 deletions
73
static/js/pages/repo-list.js
Normal file
73
static/js/pages/repo-list.js
Normal file
|
@ -0,0 +1,73 @@
|
|||
(function() {
|
||||
/**
|
||||
* Repository listing page. Shows all repositories for all visibile namespaces.
|
||||
*/
|
||||
angular.module('quayPages').config(['pages', function(pages) {
|
||||
pages.create('repo-list', 'repo-list.html', RepoListCtrl);
|
||||
}]);
|
||||
|
||||
function RepoListCtrl($scope, $sanitize, Restangular, UserService, ApiService) {
|
||||
$scope.namespace = null;
|
||||
$scope.page = 1;
|
||||
$scope.publicPageCount = null;
|
||||
|
||||
// Monitor changes in the user.
|
||||
UserService.updateUserIn($scope, function() {
|
||||
loadMyRepos($scope.namespace);
|
||||
});
|
||||
|
||||
// Monitor changes in the namespace.
|
||||
$scope.$watch('namespace', function(namespace) {
|
||||
loadMyRepos(namespace);
|
||||
});
|
||||
|
||||
$scope.movePublicPage = function(increment) {
|
||||
if ($scope.publicPageCount == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$scope.page += increment;
|
||||
if ($scope.page < 1) {
|
||||
$scope.page = 1;
|
||||
}
|
||||
|
||||
if ($scope.page > $scope.publicPageCount) {
|
||||
$scope.page = $scope.publicPageCount;
|
||||
}
|
||||
|
||||
loadPublicRepos();
|
||||
};
|
||||
|
||||
var loadMyRepos = function(namespace) {
|
||||
if (!$scope.user || $scope.user.anonymous || !namespace) {
|
||||
return;
|
||||
}
|
||||
|
||||
var options = {'public': false, 'sort': true, 'namespace': namespace};
|
||||
|
||||
$scope.user_repositories = ApiService.listReposAsResource().withOptions(options).get(function(resp) {
|
||||
return resp.repositories;
|
||||
});
|
||||
};
|
||||
|
||||
var loadPublicRepos = function() {
|
||||
var options = {
|
||||
'public': true,
|
||||
'private': false,
|
||||
'sort': true,
|
||||
'limit': 10,
|
||||
'page': $scope.page,
|
||||
'count': $scope.page == 1
|
||||
};
|
||||
|
||||
$scope.public_repositories = ApiService.listReposAsResource().withOptions(options).get(function(resp) {
|
||||
if (resp.count) {
|
||||
$scope.publicPageCount = Math.ceil(resp.count / 10);
|
||||
}
|
||||
return resp.repositories;
|
||||
});
|
||||
};
|
||||
|
||||
loadPublicRepos();
|
||||
}
|
||||
})();
|
Reference in a new issue