Router changes for new ember.js

This commit is contained in:
Piotr Sarnacki 2013-05-13 16:39:03 +02:00
parent f374feae32
commit 99c3ad770c
2 changed files with 25 additions and 8 deletions

View File

@ -66,7 +66,8 @@
@set('state', 'signed-in')
Travis.setLocale(data.user.locale || Travis.default_locale)
Travis.trigger('user:signed_in', data.user)
Travis.__container__.lookup('router:main').send('afterSignIn', @readAfterSignInPath())
if path = @readAfterSignInPath()
Travis.__container__.lookup('router:main').send('afterSignIn', path)
storeData: (data, storage) ->
storage.setItem('travis.token', data.token)

View File

@ -6,24 +6,39 @@ Travis.DontSetupModelForControllerMixin = Ember.Mixin.create
# 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) ->
@redirected = false
isTop = undefined
unless @_redirected
isTop = true
@_redirected = []
@_checkingRedirect = true
depth = ++@_redirectDepth
@redirect(context)
if context is `undefined`
@redirect()
else
@redirect context
@_redirectDepth--
@_checkingRedirect = false
if @redirected
return false
redirected = @_redirected
@_redirected = null if isTop
return false if redirected[depth]
controller = @controllerFor(@routeName, context)
@setupController(controller, context)
@renderTemplate(controller, context);
@setupController controller, context
@renderTemplate controller, context
Ember.Router.reopen
location: (if testMode? then Ember.NoneLocation.create() else Travis.Location.create())
handleURL: (url) ->
Travis.autoSignIn() unless Travis.__container__.lookup('controller:currentUser').get('content')
url = url.replace(/#.*?$/, '')
try
@_super(url)
@ -49,11 +64,12 @@ Ember.Route.reopen
@controllerFor('currentUser').get('content')
redirect: ->
Travis.autoSignIn() unless @signedIn()
if @get('needsAuth')
@authorize(@router.location.getURL())
else
@_super.apply this, arguments
Travis.autoSignIn() unless @signedIn()
authorize: (path) ->
if !@signedIn()