Files
mozo-backend/app/assets/javascripts/user/app/modifications/controller_modifications.js.coffee
T

74 lines
3.5 KiB
CoffeeScript

ControllerExtensions = Ember.Mixin.create
needs: ['application']
ajaxError: (callback)->
handler = (emberError)=>
console.log "Error: status #{emberError.status}"
if emberError.status == 401
App.__container__.lookup('route:application').unauthorized()
else
callback.call(@, emberError)
handler
showModal: (options={})->
$(document).foundation('reflow') # needed (stupid!!!)
@confirm_cancel = options.cancel
@set 'controllers.application.modal.title', options.title if options.title
@set 'controllers.application.modal.content', options.content if options.content
Ember.ArrayController.reopen ControllerExtensions
Ember.Controller.reopen ControllerExtensions
Ember.ObjectController.reopen ControllerExtensions
Ember.Controller.reopen
secured: (callback)->
unless Qstorage.getItem('auth_token') && typeof(Qstorage.getItem('auth_token')) == 'string' && Qstorage.getItem('auth_token').length > 0
return App.obtain_token()
@authentication_string = 'auth_token='+Qstorage.getItem('auth_token')
@authentication_object = {auth_token: Qstorage.getItem('auth_token')}
callback.call(@) if callback
redirect_to: (route, args...)->
route = 'index' if route == 'user_root'
route_object= App.Router.router.recognizer.names[route]
throw "Route #{route} cannot exist" unless route_object
dynamic_segments = route_object.segments.reduce (sum, segment) ->
if segment.name then sum + 1 else sum
, 0
route_args = [route]
if dynamic_segments # needed because javascript for loop always fires, even when end is less than start :'(
for isegment in [1..dynamic_segments]
route_args.push args.shift()
options = args.pop() || {}
#route_args.push args if a
@transitionToRoute.apply(@,route_args).then =>
if options.message
tkey = if options.message.indexOf('.') > -1 then options.message else "messages.#{options.message}"
@set 'controllers.application.notice', t(tkey)
#confirm: (options = {})->
##@showModal options
##$(document).foundation('reflow') # needed (stupid!!!)
#r = @container.lookup('route:application')
#r.send('confirm', options)
##window.confirm_cancel = options.cancel
##window.confirm_ok = options.ok
##$('#confirm-modal .confirm-title').html options.title if options.title
##$('#confirm-modal .confirm-content').html options.content if options.content
##@set 'controllers.application.confirm.content', options.content if options.content
##$('#confirm-modal').foundation('reveal', 'open') # this kills the ember actions
##$('#confirm-modal').css('visibility', 'visible').show()
#$('#confirm-modal').foundation('reveal', 'open') #this kills the ember actions
#$('#confirm-modal').css('visibility', 'visible').show()
Ember.ArrayController.reopen
secured: (callback)->
unless Qstorage.getItem('auth_token') && typeof(Qstorage.getItem('auth_token')) == 'string' && Qstorage.getItem('auth_token').length > 0
return App.obtain_token()
@authentication_string = 'auth_token='+Qstorage.getItem('auth_token')
@authentication_object = {auth_token: Qstorage.getItem('auth_token')}
callback.call(@) if callback
redirect_to: (route, options={})->
route = 'index' if route == 'user_root'
@transitionToRoute(route).then =>
if options.message
tkey = if options.message.indexOf('.') > -1 then options.message else "messages.#{options.message}"
@set 'controllers.application.notice', t(tkey)