78 lines
2.5 KiB
JavaScript
78 lines
2.5 KiB
JavaScript
(function() {
|
|
/**
|
|
* Build view page. Displays the view of a particular build for a repository.
|
|
*/
|
|
angular.module('quayPages').config(['pages', function(pages) {
|
|
pages.create('build-view', 'build-view.html', BuildViewCtrl, {
|
|
newLayout: true,
|
|
title: 'Build {{ build.display_name }}',
|
|
description: 'Logs and status for build {{ build.display_name }}'
|
|
});
|
|
}]);
|
|
|
|
function BuildViewCtrl($scope, ApiService, $routeParams, AngularPollChannel, CookieService,
|
|
$location, StateService) {
|
|
$scope.inReadOnlyMode = StateService.inReadOnlyMode();
|
|
$scope.namespace = $routeParams.namespace;
|
|
$scope.name = $routeParams.name;
|
|
$scope.build_uuid = $routeParams.buildid;
|
|
|
|
if (!CookieService.get('quay.showBuildLogTimestamps')) {
|
|
$scope.showLogTimestamps = true;
|
|
} else {
|
|
$scope.showLogTimestamps = CookieService.get('quay.showBuildLogTimestamps') == 'true';
|
|
}
|
|
|
|
var loadBuild = function() {
|
|
var params = {
|
|
'repository': $scope.namespace + '/' + $scope.name,
|
|
'build_uuid': $scope.build_uuid
|
|
};
|
|
|
|
$scope.buildResource = ApiService.getRepoBuildAsResource(params).get(function(build) {
|
|
$scope.build = build;
|
|
$scope.originalBuild = build;
|
|
});
|
|
};
|
|
|
|
var loadRepository = function() {
|
|
var params = {
|
|
'repository': $scope.namespace + '/' + $scope.name,
|
|
'includeTags': false
|
|
};
|
|
|
|
$scope.repoResource = ApiService.getRepoAsResource(params).get(function(repo) {
|
|
$scope.repo = repo;
|
|
}, ApiService.errorDisplay('Cannot load repository'));
|
|
};
|
|
|
|
// Page startup:
|
|
loadRepository();
|
|
loadBuild();
|
|
|
|
$scope.askCancelBuild = function(build) {
|
|
bootbox.confirm('Are you sure you want to cancel this build?', function(r) {
|
|
if (r) {
|
|
var params = {
|
|
'repository': $scope.namespace + '/' + $scope.name,
|
|
'build_uuid': build.id
|
|
};
|
|
|
|
ApiService.cancelRepoBuild(null, params).then(function () {
|
|
$location.path('/repository/' + $scope.namespace + '/' + $scope.name);
|
|
|
|
}, ApiService.errorDisplay('Cannot cancel build'));
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.toggleTimestamps = function() {
|
|
$scope.showLogTimestamps = !$scope.showLogTimestamps;
|
|
CookieService.putPermanent('quay.showBuildLogTimestamps', $scope.showLogTimestamps);
|
|
};
|
|
|
|
$scope.setUpdatedBuild = function(build) {
|
|
$scope.build = build;
|
|
};
|
|
}
|
|
})();
|