diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 1dfe80e5..899411fd 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -225,10 +225,7 @@ Travis.BuildRoute = Ember.Route.extend Travis.JobRoute = Ember.Route.extend renderTemplate: -> - # TODO: this run.next should not be needed here, I couldn't reproduce it on a clean - # app, so it's most likely because of some weird thing that we do. - Ember.run.next this, -> - @render 'job', outlet: 'pane', into: 'repo' + @render 'job', outlet: 'pane', into: 'repo' serialize: (model, params) -> id = if model.get then model.get('id') else model diff --git a/assets/scripts/app/views/repo/show.coffee b/assets/scripts/app/views/repo/show.coffee index d49b9330..f5dd9435 100644 --- a/assets/scripts/app/views/repo/show.coffee +++ b/assets/scripts/app/views/repo/show.coffee @@ -15,15 +15,18 @@ Travis.reopen # in repos/show.hbs is empty when view is rerendered without routing # taking place. Try to render the default outlet in such case # TODO: look into fixing it in more general way - pane = Ember.get('_outlets.pane') - if @get('controller.repo.isLoaded') && @state == 'inDOM' && - @get('controller.repo.lastBuild') && - @get('controller.tab') == 'current' && (!pane || pane.state == 'destroyed') - view = @get('controller.container').lookup('view:build') - view.set('controller', @get('controller.container').lookup('controller:build')) - Ember.run.next => - @set('_outlets', {}) if !@get('_outlets') && !@isDestroyed - @connectOutlet('pane', view) unless @isDestroyed + Ember.run.schedule('afterRender', this, -> + pane = Ember.get('_outlets.pane') + console.log('tab', @get('controller.tab')) + if @get('controller.repo.isLoaded') && @state == 'inDOM' && + @get('controller.repo.lastBuild') && + @get('controller.tab') == 'current' && (!pane || pane.state == 'destroyed') + view = @get('controller.container').lookup('view:build') + view.set('controller', @get('controller.container').lookup('controller:build')) + Ember.run.next => + @set('_outlets', {}) if !@get('_outlets') && !@isDestroyed + @connectOutlet('pane', view) unless @isDestroyed + ) ).observes('controller.repo.isLoaded') ReposEmptyView: Travis.View.extend