initial import for Open Source 🎉
This commit is contained in:
parent
1898c361f3
commit
9c0dd3b722
2048 changed files with 218743 additions and 0 deletions
97
static/js/pages/new-repo.js
Normal file
97
static/js/pages/new-repo.js
Normal file
|
@ -0,0 +1,97 @@
|
|||
(function() {
|
||||
/**
|
||||
* Page to create a new repository.
|
||||
*/
|
||||
angular.module('quayPages').config(['pages', function(pages) {
|
||||
pages.create('new-repo', 'new-repo.html', NewRepoCtrl, {
|
||||
'newLayout': true,
|
||||
'title': 'New Repository',
|
||||
'description': 'Create a new Docker repository'
|
||||
})
|
||||
}]);
|
||||
|
||||
function NewRepoCtrl($scope, $location, $http, $timeout, $routeParams, UserService, ApiService, PlanService, TriggerService, Features) {
|
||||
UserService.updateUserIn($scope);
|
||||
|
||||
$scope.Features = Features;
|
||||
$scope.TriggerService = TriggerService;
|
||||
|
||||
$scope.repo = {
|
||||
'is_public': 0,
|
||||
'description': '',
|
||||
'initialize': '',
|
||||
'name': $routeParams['name'],
|
||||
'repo_kind': 'image'
|
||||
};
|
||||
|
||||
$scope.changeNamespace = function(namespace) {
|
||||
$scope.repo.namespace = namespace;
|
||||
};
|
||||
|
||||
$scope.$watch('repo.name', function() {
|
||||
$scope.createError = null;
|
||||
});
|
||||
|
||||
$scope.startBuild = function() {
|
||||
$scope.buildStarting = true;
|
||||
$scope.startBuildCallback(function(status, messageOrBuild) {
|
||||
if (status) {
|
||||
$location.url('/repository/' + $scope.created.namespace + '/' + $scope.created.name +
|
||||
'?tab=builds');
|
||||
} else {
|
||||
bootbox.alert(messageOrBuild || 'Could not start build');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.readyForBuild = function(startBuild) {
|
||||
$scope.startBuildCallback = startBuild;
|
||||
};
|
||||
|
||||
$scope.updateDescription = function(content) {
|
||||
$scope.repo.description = content;
|
||||
};
|
||||
|
||||
$scope.createNewRepo = function() {
|
||||
$scope.creating = true;
|
||||
var repo = $scope.repo;
|
||||
var data = {
|
||||
'namespace': repo.namespace,
|
||||
'repository': repo.name,
|
||||
'visibility': repo.is_public == '1' ? 'public' : 'private',
|
||||
'description': repo.description,
|
||||
'repo_kind': repo.repo_kind
|
||||
};
|
||||
|
||||
ApiService.createRepo(data).then(function(created) {
|
||||
$scope.creating = false;
|
||||
$scope.created = created;
|
||||
|
||||
if (repo.repo_kind == 'application') {
|
||||
$location.path('/application/' + created.namespace + '/' + created.name);
|
||||
return;
|
||||
}
|
||||
|
||||
// Start the build if applicable.
|
||||
if ($scope.repo.initialize == 'dockerfile' || $scope.repo.initialize == 'zipfile') {
|
||||
$scope.createdForBuild = created;
|
||||
$scope.startBuild();
|
||||
return;
|
||||
}
|
||||
|
||||
// Conduct the SCM redirect if applicable.
|
||||
var redirectUrl = TriggerService.getRedirectUrl($scope.repo.initialize, repo.namespace, repo.name);
|
||||
if (redirectUrl) {
|
||||
window.location = redirectUrl;
|
||||
return;
|
||||
}
|
||||
|
||||
// Otherwise, redirect to the repo page.
|
||||
$location.path('/repository/' + created.namespace + '/' + created.name);
|
||||
}, function(result) {
|
||||
$scope.creating = false;
|
||||
$scope.createError = ApiService.getErrorMessage(result);
|
||||
});
|
||||
};
|
||||
}
|
||||
})();
|
Reference in a new issue