634190d1f9
Fixes #230
126 lines
3.4 KiB
JavaScript
126 lines
3.4 KiB
JavaScript
(function() {
|
|
/**
|
|
* Landing page.
|
|
* DEPRECATED: Remove the code for viewing when logged in.
|
|
*/
|
|
angular.module('quayPages').config(['pages', function(pages) {
|
|
pages.create('landing', 'landing.html', LandingCtrl, {
|
|
'pageClass': 'landing-page'
|
|
});
|
|
}]);
|
|
|
|
function LandingCtrl($scope, $location, UserService, ApiService, Features, Config) {
|
|
$scope.namespace = null;
|
|
$scope.currentScreenshot = 'repo-view';
|
|
$scope.userRegistered = false;
|
|
|
|
$scope.$watch('namespace', function(namespace) {
|
|
loadMyRepos(namespace);
|
|
});
|
|
|
|
UserService.updateUserIn($scope, function(user) {
|
|
if (!user.anonymous) {
|
|
$location.path('/repository');
|
|
return;
|
|
}
|
|
|
|
loadMyRepos($scope.namespace);
|
|
});
|
|
|
|
$scope.handleUserRegistered = function() {
|
|
$scope.userRegistered = true;
|
|
};
|
|
|
|
$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;
|
|
};
|
|
}
|
|
})();
|