Don't reopen Ember.Route

A better way is to provide Travis.Route, which will be used by default
when generating route objects.

There is also no need to define actions for all the routes as they are
needed only in ApplicationRoute (ie. when they're not handled by other
routes).
This commit is contained in:
Piotr Sarnacki 2014-02-12 08:55:55 +01:00
parent e5749b0629
commit ce74220f28

View File

@ -7,33 +7,7 @@ Ember.Router.reopen
url = url.replace(/#.*?$/, '') url = url.replace(/#.*?$/, '')
@_super(url) @_super(url)
# TODO: don't reopen Ember.Route to add events, there should be Travis.Route = Ember.Route.extend
# a better way (like "parent" resource for everything inside map)
Ember.Route.reopen
_actions:
renderDefaultTemplate: ->
@renderDefaultTemplate() if @renderDefaultTemplate
error: (error) ->
if error == 'needs-auth'
authController = @container.lookup('controller:auth') || @generateController('auth')
authController.set('redirected', true)
@transitionTo('auth')
else
return true
renderNoOwnedRepos: ->
@render('no_owned_repos', outlet: 'main')
renderFirstSync: ->
@renderFirstSync()
afterSignIn: (path) ->
@afterSignIn(path)
afterSignOut: ->
@afterSignOut()
afterSignIn: -> afterSignIn: ->
if transition = Travis.auth.get('afterSignInTransition') if transition = Travis.auth.get('afterSignInTransition')
Travis.auth.set('afterSignInTransition', null) Travis.auth.set('afterSignInTransition', null)
@ -72,6 +46,31 @@ Ember.Route.reopen
Travis.storeAfterSignInPath(path) Travis.storeAfterSignInPath(path)
@transitionTo('auth') @transitionTo('auth')
Travis.ApplicationRoute = Travis.Route.extend
actions:
renderDefaultTemplate: ->
@renderDefaultTemplate() if @renderDefaultTemplate
error: (error) ->
if error == 'needs-auth'
authController = @container.lookup('controller:auth') || @generateController('auth')
authController.set('redirected', true)
@transitionTo('auth')
else
return true
renderNoOwnedRepos: ->
@render('no_owned_repos', outlet: 'main')
renderFirstSync: ->
@renderFirstSync()
afterSignIn: (path) ->
@afterSignIn(path)
afterSignOut: ->
@afterSignOut()
Travis.Router.map -> Travis.Router.map ->
@resource 'index', path: '/', -> @resource 'index', path: '/', ->
@route 'current', path: '/' @route 'current', path: '/'
@ -108,7 +107,7 @@ Travis.SetupLastBuild = Ember.Mixin.create
Ember.run.next => Ember.run.next =>
@render('builds/not_found', outlet: 'pane', into: 'repo') @render('builds/not_found', outlet: 'pane', into: 'repo')
Travis.GettingStartedRoute = Ember.Route.extend Travis.GettingStartedRoute = Travis.Route.extend
setupController: -> setupController: ->
$('body').attr('id', 'home') $('body').attr('id', 'home')
@container.lookup('controller:repos').activate() @container.lookup('controller:repos').activate()
@ -120,8 +119,8 @@ Travis.GettingStartedRoute = Ember.Route.extend
@render 'repos', outlet: 'left' @render 'repos', outlet: 'left'
@_super.apply(this, arguments) @_super.apply(this, arguments)
Travis.FirstSyncRoute = Ember.Route.extend Travis.FirstSyncRoute = Travis.Route.extend
_actions: actions:
renderNoOwnedRepos: (->) renderNoOwnedRepos: (->)
# do nothing, we are showing first sync, so it's normal that there is # do nothing, we are showing first sync, so it's normal that there is
# no owned repos # no owned repos
@ -136,7 +135,7 @@ Travis.FirstSyncRoute = Ember.Route.extend
@render 'top', outlet: 'top' @render 'top', outlet: 'top'
@_super.apply(this, arguments) @_super.apply(this, arguments)
Travis.IndexCurrentRoute = Ember.Route.extend Travis.SetupLastBuild, Travis.IndexCurrentRoute = Travis.Route.extend Travis.SetupLastBuild,
renderTemplate: -> renderTemplate: ->
@render 'repo' @render 'repo'
@render 'build', outlet: 'pane', into: 'repo' @render 'build', outlet: 'pane', into: 'repo'
@ -154,7 +153,7 @@ Travis.IndexCurrentRoute = Ember.Route.extend Travis.SetupLastBuild,
currentRepoDidChange: -> currentRepoDidChange: ->
@controllerFor('repo').set('repo', @controllerFor('repos').get('firstObject')) @controllerFor('repo').set('repo', @controllerFor('repos').get('firstObject'))
Travis.AbstractBuildsRoute = Ember.Route.extend Travis.AbstractBuildsRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
@render 'builds', outlet: 'pane', into: 'repo' @render 'builds', outlet: 'pane', into: 'repo'
@ -179,7 +178,7 @@ Travis.BuildsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'builds')
Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'pull_requests') Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'pull_requests')
Travis.BranchesRoute = Travis.AbstractBuildsRoute.extend(contentType: 'branches') Travis.BranchesRoute = Travis.AbstractBuildsRoute.extend(contentType: 'branches')
Travis.BuildRoute = Ember.Route.extend Travis.BuildRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
@render 'build', outlet: 'pane', into: 'repo' @render 'build', outlet: 'pane', into: 'repo'
@ -200,7 +199,7 @@ Travis.BuildRoute = Ember.Route.extend
model: (params) -> model: (params) ->
Travis.Build.fetch(params.build_id) Travis.Build.fetch(params.build_id)
Travis.JobRoute = Ember.Route.extend Travis.JobRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
@render 'job', outlet: 'pane', into: 'repo' @render 'job', outlet: 'pane', into: 'repo'
@ -223,7 +222,7 @@ Travis.JobRoute = Ember.Route.extend
model: (params) -> model: (params) ->
Travis.Job.fetch(params.job_id) Travis.Job.fetch(params.job_id)
Travis.RepoIndexRoute = Ember.Route.extend Travis.SetupLastBuild, Travis.RepoIndexRoute = Travis.Route.extend Travis.SetupLastBuild,
setupController: (controller, model) -> setupController: (controller, model) ->
@_super.apply this, arguments @_super.apply this, arguments
@controllerFor('repo').activate('current') @controllerFor('repo').activate('current')
@ -231,7 +230,7 @@ Travis.RepoIndexRoute = Ember.Route.extend Travis.SetupLastBuild,
renderTemplate: -> renderTemplate: ->
@render 'build', outlet: 'pane', into: 'repo' @render 'build', outlet: 'pane', into: 'repo'
Travis.RepoRoute = Ember.Route.extend Travis.RepoRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
@render 'repo' @render 'repo'
@ -262,7 +261,7 @@ Travis.RepoRoute = Ember.Route.extend
# bubble to the top # bubble to the top
return true return true
Travis.IndexRoute = Ember.Route.extend Travis.IndexRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
$('body').attr('id', 'home') $('body').attr('id', 'home')
@ -274,7 +273,7 @@ Travis.IndexRoute = Ember.Route.extend
@container.lookup('controller:repos').activate() @container.lookup('controller:repos').activate()
@container.lookup('controller:application').connectLayout 'home' @container.lookup('controller:application').connectLayout 'home'
Travis.StatsRoute = Ember.Route.extend Travis.StatsRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
$('body').attr('id', 'stats') $('body').attr('id', 'stats')
@ -284,7 +283,7 @@ Travis.StatsRoute = Ember.Route.extend
setupController: -> setupController: ->
@container.lookup('controller:application').connectLayout('simple') @container.lookup('controller:application').connectLayout('simple')
Travis.NotFoundRoute = Ember.Route.extend Travis.NotFoundRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
$('body').attr('id', 'not-found') $('body').attr('id', 'not-found')
@ -294,7 +293,7 @@ Travis.NotFoundRoute = Ember.Route.extend
setupController: -> setupController: ->
@container.lookup('controller:application').connectLayout('simple') @container.lookup('controller:application').connectLayout('simple')
Travis.ProfileRoute = Ember.Route.extend Travis.ProfileRoute = Travis.Route.extend
needsAuth: true needsAuth: true
setupController: -> setupController: ->
@ -309,14 +308,14 @@ Travis.ProfileRoute = Ember.Route.extend
@render 'flash', outlet: 'flash' @render 'flash', outlet: 'flash'
@render 'profile' @render 'profile'
Travis.ProfileIndexRoute = Ember.Route.extend Travis.ProfileIndexRoute = Travis.Route.extend
setupController: -> setupController: ->
@container.lookup('controller:profile').activate 'hooks' @container.lookup('controller:profile').activate 'hooks'
renderTemplate: -> renderTemplate: ->
@render 'hooks', outlet: 'pane', into: 'profile', controller: 'profile' @render 'hooks', outlet: 'pane', into: 'profile', controller: 'profile'
Travis.AccountRoute = Ember.Route.extend Travis.AccountRoute = Travis.Route.extend
setupController: (controller, account) -> setupController: (controller, account) ->
profileController = @container.lookup('controller:profile') profileController = @container.lookup('controller:profile')
profileController.activate 'hooks' profileController.activate 'hooks'
@ -349,21 +348,21 @@ Travis.AccountRoute = Ember.Route.extend
else else
{} {}
Travis.AccountIndexRoute = Ember.Route.extend Travis.AccountIndexRoute = Travis.Route.extend
setupController: -> setupController: ->
@container.lookup('controller:profile').activate 'hooks' @container.lookup('controller:profile').activate 'hooks'
renderTemplate: -> renderTemplate: ->
@render 'hooks', outlet: 'pane', into: 'profile' @render 'hooks', outlet: 'pane', into: 'profile'
Travis.AccountProfileRoute = Ember.Route.extend Travis.AccountProfileRoute = Travis.Route.extend
setupController: -> setupController: ->
@container.lookup('controller:profile').activate 'user' @container.lookup('controller:profile').activate 'user'
renderTemplate: -> renderTemplate: ->
@render 'user', outlet: 'pane', into: 'profile' @render 'user', outlet: 'pane', into: 'profile'
Travis.AuthRoute = Ember.Route.extend Travis.AuthRoute = Travis.Route.extend
renderTemplate: -> renderTemplate: ->
$('body').attr('id', 'auth') $('body').attr('id', 'auth')