Navigation Menu

Skip to content

Commit

Permalink
enhance the build page
Browse files Browse the repository at this point in the history
- does not create 404 to find if next build is available
- do not query the build twice

Signed-off-by: Pierre Tardy <tardyp@gmail.com>
  • Loading branch information
tardyp committed Oct 30, 2015
1 parent d61b3bf commit 289d5b7
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 22 deletions.
52 changes: 32 additions & 20 deletions www/base/src/app/builders/builds/build.controller.coffee
@@ -1,7 +1,8 @@
class Build extends Controller
constructor: ($rootScope, $scope, $location, $stateParams, $state,
dataService, dataUtilsService, recentStorage, publicFieldsFilter,
glBreadcrumbService, glTopbarContextualActionsService) ->
glBreadcrumbService, glTopbarContextualActionsService, resultsService) ->
_.mixin($scope, resultsService)

builderid = _.parseInt($stateParams.builder)
buildnumber = _.parseInt($stateParams.build)
Expand Down Expand Up @@ -71,10 +72,23 @@ class Build extends Controller
data = dataService.open($scope)
data.getBuilders(builderid).then (builders) ->
$scope.builder = builder = builders[0]
builder.getBuilds(buildnumber).then (builds) ->
$scope.build = build = builds[0]
if not build.number? and buildnumber > 1
$state.go('build', builder:builderid, build:buildnumber - 1)
builder.getBuilds(number__lt: buildnumber + 2, limit: 3, order: '-number').then (builds) ->
$scope.prevbuild = null
$scope.nextbuild = null
build = null
for b in builds
if b.number == buildnumber - 1
$scope.prevbuild = b
if b.number == buildnumber
$scope.build = build = b
if b.number == buildnumber + 1
$scope.nextbuild = b
$scope.last_build = false

if not build
$state.go('build', builder: builderid, build: builds[0].number)
return

breadcrumb = [
caption: "Builders"
sref: "builders"
Expand All @@ -97,18 +111,19 @@ class Build extends Controller
link: "#/builders/#{$scope.builder.builderid}/builds/#{$scope.build.number}"
caption: "#{$scope.builder.name} / #{$scope.build.number}"

data.getBuilds(build.buildid).then (builds) ->
build = builds[0]
$scope.properties = build.getProperties().getArray()
$scope.changes = build.getChanges().getArray()
$scope.$watch 'changes', (changes) ->
if changes?
responsibles = {}
for change in changes
change.author_email = dataUtilsService.emailInString(change.author)
responsibles[change.author] = change.author_email
$scope.responsibles = responsibles
, true
# HACK: we should definitively fix this in the data_module
# http://trac.buildbot.net/ticket/3380
build._endpoint = "builds"
$scope.properties = build.getProperties().getArray()
$scope.changes = build.getChanges().getArray()
$scope.$watch 'changes', (changes) ->
if changes?
responsibles = {}
for change in changes
change.author_email = dataUtilsService.emailInString(change.author)
responsibles[change.author] = change.author_email
$scope.responsibles = responsibles
, true

data.getBuildslaves(build.buildslaveid).then (buildslaves) ->
$scope.buildslave = publicFieldsFilter(buildslaves[0])
Expand All @@ -117,6 +132,3 @@ class Build extends Controller
$scope.buildrequest = buildrequest = buildrequests[0]
data.getBuildsets(buildrequest.buildsetid).then (buildsets) ->
$scope.buildset = buildsets[0]

builder.getBuilds(buildnumber + 1).then (builds) ->
$scope.nextbuild = builds[0]
7 changes: 5 additions & 2 deletions www/base/src/app/builders/builds/build.tpl.jade
Expand Up @@ -3,11 +3,14 @@
nav
ul.pager
li.previous(ng-class="{'disabled': build.number == 1}")
a(ng-if="build.number > 1 ", ui-sref="build({build:build.number - 1})") &larr; Previous
a(ng-if="build.number > 1 ", ui-sref="build({build:prevbuild.number})")
span.badge-status(ng-class="results2class(prevbuild, 'pulse')") &larr;
| &nbsp;Previous
span(ng-if="build.number == 1") &larr; Previous
li(ng-if="build.complete" title="{{ build.complete_at | dateformat:'LLL' }}") Finished {{ build.complete_at | timeago }}
li.next(ng-class="{'disabled': last_build}")
a(ng-if="!last_build", ui-sref="build({build:build.number + 1})") Next &rarr;
a(ng-if="!last_build", ui-sref="build({build:nextbuild.number})") Next&nbsp;
span.badge-status(ng-class="results2class(nextbuild, 'pulse')") &rarr;
span(ng-if="last_build") Next &rarr;
.row
.col-sm-5
Expand Down

0 comments on commit 289d5b7

Please sign in to comment.