From de14a03de15c988ff885950a2679ab3c14a44a66 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 23 May 2014 17:04:15 +0200 Subject: [PATCH] Simplify logic for displaying 'no builds for repository' error We use promise when fetching a repository which means that any nested routes already have all the repository data loaded. Thanks to that there is no need to setup observers, we can check what to render right away in RepoIndexRoute --- assets/scripts/app/routes.coffee | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 87030421..0d1da918 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -82,18 +82,6 @@ Travis.Router.map -> @route 'notFound', path: "/*path" -Travis.SetupLastBuild = Ember.Mixin.create - setupController: -> - @repoDidLoad() - @controllerFor('repo').addObserver('repo.isLoaded', this, 'repoDidLoad') - - repoDidLoad: -> - # TODO: it would be nicer to do it with promises - repo = @controllerFor('repo').get('repo') - if repo && repo.get('isLoaded') && !repo.get('lastBuildId') - Ember.run.next => - @render('builds/not_found', into: 'repo', outlet: 'pane') - Travis.RequestsRoute = Travis.Route.extend renderTemplate: -> @render 'requests', into: 'repo', outlet: 'pane' @@ -142,7 +130,7 @@ Travis.InsufficientOauthPermissionsRoute = Travis.SimpleLayoutRoute.extend existingUser = document.location.hash.match(/#existing[_-]user/) controller.set('existingUser', existingUser) -Travis.IndexCurrentRoute = Travis.Route.extend Travis.SetupLastBuild, +Travis.IndexCurrentRoute = Travis.Route.extend renderTemplate: -> @render 'repo' @render 'build', into: 'repo', outlet: 'pane' @@ -236,13 +224,16 @@ Travis.JobRoute = Travis.Route.extend model: (params) -> Travis.Job.fetch(params.job_id) -Travis.RepoIndexRoute = Travis.Route.extend Travis.SetupLastBuild, +Travis.RepoIndexRoute = Travis.Route.extend setupController: (controller, model) -> @_super.apply this, arguments @controllerFor('repo').activate('current') renderTemplate: -> - @render 'build', into: 'repo', outlet: 'pane' + if @modelFor('repo').get('lastBuildId') + @render 'build', into: 'repo', outlet: 'pane' + else + @render('builds/not_found', into: 'repo', outlet: 'pane') Travis.RepoRoute = Travis.Route.extend renderTemplate: ->