Big initialization rework in order to be able to facilitate preloaded backend settings

This commit is contained in:
2018-11-20 12:13:10 -03:00
parent 88d5f55e90
commit fe6653442c
5 changed files with 38 additions and 17 deletions
+22 -4
View File
@@ -3,9 +3,25 @@ import config from 'ember-get-config'
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin'
export default Ember.Mixin.create ApplicationRouteMixin,
current_user_loaded: (user) ->
current_user_loaded: (user) -> @get('initial_resources_resolve')(user)
beforeModel: (transition) ->
@_loadCurrentUser arguments... unless transition?.targetName is 'login'
@set 'router.globals.initial_resources_fulfilled', false
time_now = new Date()
console.log "Application beforeModel"
initial_resources_loaded = new Ember.RSVP.Promise((resolve, reject) =>
@set 'initial_resources_resolve', resolve
@set 'initial_resources_reject', reject
).then((resources) =>
console.log "Initial resources loaded (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
@set 'router.globals.initial_resources_fulfilled', true
).catch((reason) =>
console.log "No initial resource loading (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
@set('router.globals.flash_message', reason) if reason
).finally -> Ember.$('#initial-loader').remove()
@set 'initial_resources_loaded_promise', initial_resources_loaded
@_loadCurrentUser arguments...
initial_resources_loaded
sessionAuthenticated: ->
@_super arguments...
@@ -13,13 +29,15 @@ export default Ember.Mixin.create ApplicationRouteMixin,
_loadCurrentUser: (transition) ->
#if userId = @get('session.data.authenticated.user_id')
return if transition?.targetName is 'login'
if transition?.targetName is 'login' # don't load current user on login page
@get('initial_resources_reject')('Please login')
return
@get('store').queryRecord('user', me: true).then (user) =>
@set 'router.globals.current_user', user
@current_user_loaded user # overloadable
, =>
@set 'router.globals.current_user', null
#@transitionTo('login').then (loginRoute) -> loginRoute.set('router.globals.flash.notice', 'Please login')
#@get('initial_resources_reject')('Unauthenticated user')
@transitionTo('login')
actions: