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
115
static/js/pages/landing.js
Normal file
115
static/js/pages/landing.js
Normal file
|
@ -0,0 +1,115 @@
|
|||
(function() {
|
||||
/**
|
||||
* Landing page.
|
||||
*/
|
||||
angular.module('quayPages').config(['pages', function(pages) {
|
||||
pages.create('landing', 'landing.html', LandingCtrl, {
|
||||
'pageClass': 'landing-page'
|
||||
});
|
||||
}]);
|
||||
|
||||
function LandingCtrl($scope, UserService, ApiService, Features, Config) {
|
||||
$scope.namespace = null;
|
||||
$scope.currentScreenshot = 'repo-view';
|
||||
|
||||
$scope.$watch('namespace', function(namespace) {
|
||||
loadMyRepos(namespace);
|
||||
});
|
||||
|
||||
UserService.updateUserIn($scope, function() {
|
||||
loadMyRepos($scope.namespace);
|
||||
});
|
||||
|
||||
$scope.changeScreenshot = function(screenshot) {
|
||||
$scope.currentScreenshot = screenshot;
|
||||
};
|
||||
|
||||
$scope.canCreateRepo = function(namespace) {
|
||||
if (!$scope.user) { return false; }
|
||||
|
||||
if (namespace == $scope.user.username) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($scope.user.organizations) {
|
||||
for (var i = 0; i < $scope.user.organizations.length; ++i) {
|
||||
var org = $scope.user.organizations[i];
|
||||
if (org.name == namespace) {
|
||||
return org.can_create_repo;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
var loadMyRepos = function(namespace) {
|
||||
if (!$scope.user || $scope.user.anonymous || !namespace) {
|
||||
return;
|
||||
}
|
||||
|
||||
var options = {'limit': 4, 'public': false, 'sort': true, 'namespace': namespace };
|
||||
$scope.my_repositories = ApiService.listReposAsResource().withOptions(options).get(function(resp) {
|
||||
return resp.repositories;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.chromify = function() {
|
||||
browserchrome.update();
|
||||
|
||||
var jcarousel = $('.jcarousel');
|
||||
|
||||
jcarousel
|
||||
.on('jcarousel:reload jcarousel:create', function () {
|
||||
var width = jcarousel.innerWidth();
|
||||
jcarousel.jcarousel('items').css('width', width + 'px');
|
||||
})
|
||||
.jcarousel({
|
||||
wrap: 'circular'
|
||||
});
|
||||
|
||||
$('.jcarousel-control-prev')
|
||||
.on('jcarouselcontrol:active', function() {
|
||||
$(this).removeClass('inactive');
|
||||
})
|
||||
.on('jcarouselcontrol:inactive', function() {
|
||||
$(this).addClass('inactive');
|
||||
})
|
||||
.jcarouselControl({
|
||||
target: '-=1'
|
||||
});
|
||||
|
||||
$('.jcarousel-control-next')
|
||||
.on('jcarouselcontrol:active', function() {
|
||||
$(this).removeClass('inactive');
|
||||
})
|
||||
.on('jcarouselcontrol:inactive', function() {
|
||||
$(this).addClass('inactive');
|
||||
})
|
||||
.jcarouselControl({
|
||||
target: '+=1'
|
||||
});
|
||||
|
||||
$('.jcarousel-pagination')
|
||||
.on('jcarouselpagination:active', 'a', function() {
|
||||
$(this).addClass('active');
|
||||
})
|
||||
.on('jcarouselpagination:inactive', 'a', function() {
|
||||
$(this).removeClass('active');
|
||||
})
|
||||
.jcarouselPagination({
|
||||
'item': function(page, carouselItems) {
|
||||
return '<a href="javascript:void(0)" class="jcarousel-page"></a>';
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.getEnterpriseLogo = function() {
|
||||
if (!Config.ENTERPRISE_LOGO_URL) {
|
||||
return '/static/img/quay-logo.png';
|
||||
}
|
||||
|
||||
return Config.ENTERPRISE_LOGO_URL;
|
||||
};
|
||||
}
|
||||
})();
|
Reference in a new issue