(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 ''; } }); }; $scope.getEnterpriseLogo = function() { if (!Config.ENTERPRISE_LOGO_URL) { return '/static/img/quay-logo.png'; } return Config.ENTERPRISE_LOGO_URL; }; } })();