Fix rendering job when moving from index route
The hack which is needed for wrong outlet behaviour renders a template when outlet is not rendered automatically, but it was done immediately. Because of that when changing routes from index to job route, sometimes the hack was kicking in and rendering build instead of job template. This commit fixes it to check if rendering is needed in "afterRender" phase on runloop.
This commit is contained in:
parent
cebe5b1e1c
commit
1a0e378732
|
@ -225,10 +225,7 @@ Travis.BuildRoute = Ember.Route.extend
|
||||||
|
|
||||||
Travis.JobRoute = Ember.Route.extend
|
Travis.JobRoute = Ember.Route.extend
|
||||||
renderTemplate: ->
|
renderTemplate: ->
|
||||||
# TODO: this run.next should not be needed here, I couldn't reproduce it on a clean
|
@render 'job', outlet: 'pane', into: 'repo'
|
||||||
# app, so it's most likely because of some weird thing that we do.
|
|
||||||
Ember.run.next this, ->
|
|
||||||
@render 'job', outlet: 'pane', into: 'repo'
|
|
||||||
|
|
||||||
serialize: (model, params) ->
|
serialize: (model, params) ->
|
||||||
id = if model.get then model.get('id') else model
|
id = if model.get then model.get('id') else model
|
||||||
|
|
|
@ -15,15 +15,18 @@ Travis.reopen
|
||||||
# in repos/show.hbs is empty when view is rerendered without routing
|
# in repos/show.hbs is empty when view is rerendered without routing
|
||||||
# taking place. Try to render the default outlet in such case
|
# taking place. Try to render the default outlet in such case
|
||||||
# TODO: look into fixing it in more general way
|
# TODO: look into fixing it in more general way
|
||||||
pane = Ember.get('_outlets.pane')
|
Ember.run.schedule('afterRender', this, ->
|
||||||
if @get('controller.repo.isLoaded') && @state == 'inDOM' &&
|
pane = Ember.get('_outlets.pane')
|
||||||
@get('controller.repo.lastBuild') &&
|
console.log('tab', @get('controller.tab'))
|
||||||
@get('controller.tab') == 'current' && (!pane || pane.state == 'destroyed')
|
if @get('controller.repo.isLoaded') && @state == 'inDOM' &&
|
||||||
view = @get('controller.container').lookup('view:build')
|
@get('controller.repo.lastBuild') &&
|
||||||
view.set('controller', @get('controller.container').lookup('controller:build'))
|
@get('controller.tab') == 'current' && (!pane || pane.state == 'destroyed')
|
||||||
Ember.run.next =>
|
view = @get('controller.container').lookup('view:build')
|
||||||
@set('_outlets', {}) if !@get('_outlets') && !@isDestroyed
|
view.set('controller', @get('controller.container').lookup('controller:build'))
|
||||||
@connectOutlet('pane', view) unless @isDestroyed
|
Ember.run.next =>
|
||||||
|
@set('_outlets', {}) if !@get('_outlets') && !@isDestroyed
|
||||||
|
@connectOutlet('pane', view) unless @isDestroyed
|
||||||
|
)
|
||||||
).observes('controller.repo.isLoaded')
|
).observes('controller.repo.isLoaded')
|
||||||
|
|
||||||
ReposEmptyView: Travis.View.extend
|
ReposEmptyView: Travis.View.extend
|
||||||
|
|
Loading…
Reference in New Issue
Block a user