travis-web/app/routes/job.coffee
Piotr Sarnacki 34e53c1034 Fix job route's use of job.build relationship
build is an async relationship now, so job.get('build') returns a
promise.
2015-12-08 10:18:04 +01:00

46 lines
1.3 KiB
CoffeeScript

`import TravisRoute from 'travis/routes/basic'`
Route = TravisRoute.extend
titleToken: (model) ->
"Job ##{model.get('number')}"
serialize: (model, params) ->
id = if model.get then model.get('id') else model
{ job_id: id }
setupController: (controller, model) ->
if model && !model.get
model = @store.recordForId('job', model)
@store.find('job', model)
repo = @controllerFor('repo')
@controllerFor('job').set('job', model)
repo.activate('job')
buildController = @controllerFor('build')
model.get('repo')
if buildPromise = model.get('build')
buildPromise.then (build) =>
build = @store.recordForId('build', build.get('id'))
buildController.set('build', build)
# this is a hack to not set favicon changes from build
# controller while we're viewing job, this should go away
# after refactoring of controllers
buildController.set('sendFaviconStateChanges', false)
model: (params) ->
@store.find('job', params.job_id)
deactivate: ->
buildController = @controllerFor('build')
buildController.set('sendFaviconStateChanges', true)
@controllerFor('build').set('build', null)
@controllerFor('job').set('job', null)
@_super.apply(this, arguments)
`export default Route`