Get rid of hacks from routes

This commit is contained in:
Piotr Sarnacki 2013-07-31 13:32:23 +02:00
parent 670f38542a
commit 373c7f706f

View File

@ -1,38 +1,6 @@
require 'travis/location'
require 'travis/line_number_parser'
Travis.DontSetupModelForControllerMixin = Ember.Mixin.create
# I've override setup to *not* set controller's model
# this can be remove when this patch will be merged https://github.com/emberjs/ember.js/pull/2044
# this will allow us to override setting up model for a controller
setup: (context) ->
isTop = undefined
unless @_redirected
isTop = true
@_redirected = []
@_checkingRedirect = true
depth = ++@_redirectDepth
if context is `undefined`
@redirect()
else
@redirect context
@_redirectDepth--
@_checkingRedirect = false
redirected = @_redirected
@_redirected = null if isTop
return false if redirected[depth]
controller = @controllerFor(@routeName, context)
@setupController controller, context
@renderTemplate controller, context
Ember.Router.reopen
location: (if testMode? then Ember.NoneLocation.create() else Travis.Location.create())
@ -159,11 +127,7 @@ Travis.GettingStartedRoute = Ember.Route.extend
@render 'repos', outlet: 'left'
@_super.apply(this, arguments)
Travis.IndexCurrentRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin, Travis.SetupLastBuild,
renderDefaultTemplate: ->
@render 'repo'
@render 'build', outlet: 'pane', into: 'repo'
Travis.IndexCurrentRoute = Ember.Route.extend Travis.SetupLastBuild,
renderTemplate: ->
@render 'repo'
@render 'build', outlet: 'pane', into: 'repo'
@ -171,6 +135,7 @@ Travis.IndexCurrentRoute = Ember.Route.extend Travis.DontSetupModelForController
setupController: ->
@_super.apply this, arguments
@currentRepoDidChange()
@container.lookup('controller:repo').activate('index')
@controllerFor('repos').addObserver('firstObject', this, 'currentRepoDidChange')
@ -180,7 +145,7 @@ Travis.IndexCurrentRoute = Ember.Route.extend Travis.DontSetupModelForController
currentRepoDidChange: ->
@controllerFor('repo').set('repo', @controllerFor('repos').get('firstObject'))
Travis.AbstractBuildsRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
Travis.AbstractBuildsRoute = Ember.Route.extend
renderTemplate: ->
@render 'builds', outlet: 'pane', into: 'repo'
@ -205,7 +170,7 @@ Travis.BuildsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'builds')
Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'pull_requests')
Travis.BranchesRoute = Travis.AbstractBuildsRoute.extend(contentType: 'branches')
Travis.BuildRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
Travis.BuildRoute = Ember.Route.extend
renderTemplate: ->
@render 'build', outlet: 'pane', into: 'repo'
@ -223,7 +188,7 @@ Travis.BuildRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
@controllerFor('build').set('build', model)
repo.set('build', model)
Travis.JobRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
Travis.JobRoute = Ember.Route.extend
renderTemplate: ->
@render 'job', outlet: 'pane', into: 'repo'
@ -241,7 +206,7 @@ Travis.JobRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
@controllerFor('build').set('build', model.get('build'))
repo.set('build', model.get('build'))
Travis.RepoIndexRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin, Travis.SetupLastBuild,
Travis.RepoIndexRoute = Ember.Route.extend Travis.SetupLastBuild,
setupController: (controller, model) ->
@_super.apply this, arguments
@container.lookup('controller:repo').activate('current')
@ -249,7 +214,7 @@ Travis.RepoIndexRoute = Ember.Route.extend Travis.DontSetupModelForControllerMix
renderTemplate: ->
@render 'build', outlet: 'pane', into: 'repo'
Travis.RepoRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
Travis.RepoRoute = Ember.Route.extend
renderTemplate: ->
@render 'repo'
@ -264,7 +229,7 @@ Travis.RepoRoute = Ember.Route.extend Travis.DontSetupModelForControllerMixin,
[owner, name] = slug.split('/')
{ owner: owner, name: name }
deserialize: (params) ->
model: (params) ->
slug = "#{params.owner}/#{params.name}"
content = Ember.Object.create slug: slug, isLoaded: false, isLoading: true
proxy = Ember.ObjectProxy.create(content: content)
@ -354,7 +319,7 @@ Travis.AccountRoute = Ember.Route.extend
params = { login: account.get('login') }
profileController.setParams(params)
deserialize: (params) ->
model: (params) ->
controller = @container.lookup('controller:accounts')
account = controller.findByLogin(params.login)