(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) { $scope.namespace = $routeParams.namespace; $scope.name = $routeParams.name; $scope.build_uuid = $routeParams.buildid; $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 }; $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() { document.location = '/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; }; $scope.isBuilding = function(build) { if (!build) { return true; } return build.phase != 'complete' && build.phase != 'error'; }; } })();