diff --git a/app/assets/javascripts/app/controllers/_application_controller.js.coffee b/app/assets/javascripts/app/controllers/_application_controller.js.coffee index 66492936f..7ea12d608 100644 --- a/app/assets/javascripts/app/controllers/_application_controller.js.coffee +++ b/app/assets/javascripts/app/controllers/_application_controller.js.coffee @@ -24,8 +24,9 @@ class App.Controller extends Spine.Controller @delay( a, 0 ) isRole: (name) -> - return false if !window.Session.roles - for role in window.Session.roles + roles = App.Session.get( 'roles' ) + return false if !roles + for role in roles return true if role.name is name return false @@ -124,10 +125,10 @@ class App.Controller extends Spine.Controller ) authenticate: -> - console.log 'authenticate', window.Session + console.log 'authenticate', App.Session.all() # return rtue if session exists - return true if window.Session['id'] + return true if App.Session.get( 'id' ) # remember requested url @Config.set( 'requested_url', window.location.hash ) diff --git a/app/assets/javascripts/app/controllers/_default_navbar.js.coffee b/app/assets/javascripts/app/controllers/_default_navbar.js.coffee index 1bd8efc74..819548c43 100644 --- a/app/assets/javascripts/app/controllers/_default_navbar.js.coffee +++ b/app/assets/javascripts/app/controllers/_default_navbar.js.coffee @@ -3,7 +3,7 @@ App.Config.set( 'User', { parent: '', callback: -> item = {} - item['name'] = window.Session['login'] + item['name'] = App.Session.get( 'login' ) return item target: '#current_user', role: [ 'Agent', 'Customer' ] diff --git a/app/assets/javascripts/app/controllers/agent_ticket_zoom.js.coffee b/app/assets/javascripts/app/controllers/agent_ticket_zoom.js.coffee index db4063078..ca1958f04 100644 --- a/app/assets/javascripts/app/controllers/agent_ticket_zoom.js.coffee +++ b/app/assets/javascripts/app/controllers/agent_ticket_zoom.js.coffee @@ -380,7 +380,7 @@ class Index extends App.Controller # create article if params['body'] article = new App.TicketArticle - params.from = window.Session['firstname'] + ' ' + window.Session['lastname'] + params.from = App.Session.get( 'firstname' ) + ' ' + App.Session.get( 'lastname' ) params.ticket_id = @ticket.id if !params['internal'] params['internal'] = false diff --git a/app/assets/javascripts/app/controllers/chat_widget.js.coffee b/app/assets/javascripts/app/controllers/chat_widget.js.coffee index bd399ee03..bc5495ac3 100644 --- a/app/assets/javascripts/app/controllers/chat_widget.js.coffee +++ b/app/assets/javascripts/app/controllers/chat_widget.js.coffee @@ -20,7 +20,7 @@ class App.ChatWidget extends App.Controller else @start() - if !_.isEmpty( Session ) + if !_.isEmpty( App.Session.all() ) @start() start: => @@ -76,20 +76,20 @@ class App.ChatWidget extends App.Controller action: 'broadcast' event: 'chat:window_toggle' recipient: - user_id: [ Session['id'] ] + user_id: [ App.Session.get('id') ] data: - show: true + show: true ) else @hide() App.Event.trigger( 'ws:send' - action: 'broadcast' - event: 'chat:window_toggle' + action: 'broadcast' + event: 'chat:window_toggle' recipient: - user_id: [ Session['id'] ] + user_id: [ App.Session.get('id') ] data: - show: false + show: false ) @newMessage = false @@ -105,11 +105,11 @@ class App.ChatWidget extends App.Controller 'ws:send' action: 'broadcast' recipient: - user_id: [ Session['id'] ] + user_id: [ App.Session.get('id') ] event: 'chat:message_new' spool: true data: - show: true + show: true ) 2000 @@ -149,7 +149,7 @@ class App.ChatWidget extends App.Controller render: -> for message in @messageLog - if message.nick is Session['login'] + if message.nick is App.Session.get('login') message.nick = 'me' # insert data @@ -180,8 +180,8 @@ class App.ChatWidget extends App.Controller if message msg = message: message - user_id: Session['id'] - nick: Session['login'] + user_id: App.Session.get( 'id' ) + nick: App.Session.get( 'login' ) @messageLog.push msg $(e.target).find('[name=chat_message]').val('') diff --git a/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee b/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee index 8139c5bd3..6ba876f97 100644 --- a/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee +++ b/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee @@ -123,7 +123,7 @@ class Index extends App.Controller @log 'paramssss', params # set customer id - params.customer_id = Session['id'] + params.customer_id = App.Session.get('id') # set prio priority = App.Collection.findByAttribute( 'TicketPriority', 'name', '2 normal' ) @@ -149,13 +149,13 @@ class Index extends App.Controller # create article params['article'] = { - from: "#{Session['firstname']} #{Session['lastname']}", + from: "#{ App.Session.get('firstname') } #{ App.Session.get('lastname') }", to: (group && group.name) || '', subject: params.subject, body: params.body, ticket_article_type_id: type.id, ticket_article_sender_id: sender.id, - created_by_id: Session['id'], + created_by_id: App.Session.get('id'), } # console.log('params', params) diff --git a/app/assets/javascripts/app/controllers/login.js.coffee b/app/assets/javascripts/app/controllers/login.js.coffee index cd43ed4be..7085e7f3e 100644 --- a/app/assets/javascripts/app/controllers/login.js.coffee +++ b/app/assets/javascripts/app/controllers/login.js.coffee @@ -79,7 +79,7 @@ class Index extends App.Controller # store user data for key, value of data.session - window.Session[key] = value + App.Session.set( key, value ) # refresh default collections for key, value of data.default_collections diff --git a/app/assets/javascripts/app/controllers/logout.js.coffee b/app/assets/javascripts/app/controllers/logout.js.coffee index 5a7d00cf6..688696bd7 100644 --- a/app/assets/javascripts/app/controllers/logout.js.coffee +++ b/app/assets/javascripts/app/controllers/logout.js.coffee @@ -12,9 +12,7 @@ class Index extends Spine.Controller App.Auth.logout() # remoce local session - @log 'Session', window.Session - window.Session = {} - @log 'Session', window.Session + App.Session.init() App.Event.trigger 'ajax:auth' # redirect to login diff --git a/app/assets/javascripts/app/controllers/navigation.js.coffee b/app/assets/javascripts/app/controllers/navigation.js.coffee index f679ce127..cedc362d0 100644 --- a/app/assets/javascripts/app/controllers/navigation.js.coffee +++ b/app/assets/javascripts/app/controllers/navigation.js.coffee @@ -27,12 +27,12 @@ class App.Navigation extends App.Controller # rebuild ticket overview data App.Event.bind 'navupdate_ticket_overview', (data) => @ticket_overview_build(data) - @render( window.Session ) + @render( App.Session.all() ) # rebuild recent viewd data App.Event.bind 'update_recent_viewed', (data) => @recent_viewed_build(data) - @render( window.Session ) + @render( App.Session.all() ) render: (user) -> nav_left = @getItems( navbar: @Config.get( 'NavBar' ) ) @@ -66,6 +66,8 @@ class App.Navigation extends App.Controller level1 = [] dropdown = {} + roles = App.Session.get( 'roles' ) + for item in navbar if typeof item.callback is 'function' data = item.callback() || {} @@ -73,10 +75,10 @@ class App.Navigation extends App.Controller item[key] = value if !item.parent match = 0 - if !window.Session['roles'] - match = _.include(item.role, 'Anybody') - if window.Session['roles'] - window.Session['roles'].forEach( (role) => + if !roles + match = _.include( item.role, 'Anybody' ) + if roles + roles.forEach( (role) => if !match match = _.include(item.role, role.name) ) @@ -92,10 +94,10 @@ class App.Navigation extends App.Controller for itemSub in navbar if itemSub.parent is item.parent match = 0 - if !window.Session['roles'] - match = _.include(itemSub.role, 'Anybody') - if window.Session['roles'] - window.Session['roles'].forEach( (role) => + if !roles + match = _.include( itemSub.role, 'Anybody' ) + if roles + roles.forEach( (role) => if !match match = _.include(itemSub.role, role.name) ) diff --git a/app/assets/javascripts/app/index.js.coffee b/app/assets/javascripts/app/index.js.coffee index d0e72308c..fa940c4bd 100644 --- a/app/assets/javascripts/app/index.js.coffee +++ b/app/assets/javascripts/app/index.js.coffee @@ -1,21 +1,4 @@ -#= require ./lib/core/jquery-1.8.1.min.js -#= require ./lib/core/jquery-ui-1.8.23.custom.min.js -#= require ./lib/core/underscore-1.3.3.js -#not_used= require_tree ./lib/spine -#= require ./lib/spine/spine.js -#= require ./lib/spine/ajax.js -#= require ./lib/spine/route.js - -#not_used= require_tree ./lib/bootstrap -#= require ./lib/bootstrap/bootstrap-dropdown.js -#= require ./lib/bootstrap/bootstrap-tooltip.js -#= require ./lib/bootstrap/bootstrap-popover.js -#= require ./lib/bootstrap/bootstrap-modal.js -#= require ./lib/bootstrap/bootstrap-tab.js -#= require ./lib/bootstrap/bootstrap-transition.js - -#= require_tree ./lib/base #= require_self #= require_tree ./lib/app_init #= require_tree ./models diff --git a/app/assets/javascripts/app/lib/app_init/config.js.coffee b/app/assets/javascripts/app/lib/app_init/config.js.coffee index 682b53e8b..04eb5aada 100644 --- a/app/assets/javascripts/app/lib/app_init/config.js.coffee +++ b/app/assets/javascripts/app/lib/app_init/config.js.coffee @@ -4,7 +4,7 @@ class App.Config @init: -> _instance ?= new _Singleton - @get: ( key, group ) -> + @get: ( key ) -> if _instance == undefined _instance ?= new _Singleton _instance.get( key ) diff --git a/app/assets/javascripts/app/lib/app_init/session.js.coffee b/app/assets/javascripts/app/lib/app_init/session.js.coffee new file mode 100644 index 000000000..3122dd60b --- /dev/null +++ b/app/assets/javascripts/app/lib/app_init/session.js.coffee @@ -0,0 +1,37 @@ +class App.Session + _instance = undefined + + @init: -> + _instance ?= new _Singleton + _instance.clear() + + @get: ( key ) -> + if _instance == undefined + _instance ?= new _Singleton + _instance.get( key ) + + @set: ( key, value ) -> + if _instance == undefined + _instance ?= new _Singleton + _instance.set( key, value ) + + @all: -> + if _instance == undefined + _instance ?= new _Singleton + _instance.all() + +class _Singleton + constructor: -> + @clear() + + clear: -> + @data = {} + + get: ( key ) -> + return @data[key] + + set: ( key, value ) -> + @data[key] = value + + all: -> + @data diff --git a/app/assets/javascripts/app/lib/app_post/auth.js.coffee b/app/assets/javascripts/app/lib/app_post/auth.js.coffee index caa2a2450..b47656a4e 100644 --- a/app/assets/javascripts/app/lib/app_post/auth.js.coffee +++ b/app/assets/javascripts/app/lib/app_post/auth.js.coffee @@ -39,7 +39,7 @@ class App.Auth App.Config.set( key, value ) # empty session - window.Session = {} + App.Session.init() # update websocked auth info App.WebSocket.auth() @@ -59,7 +59,7 @@ class App.Auth # store user data for key, value of data.session - window.Session[key] = value + App.Session.set( key, value ) # update websocked auth info App.WebSocket.auth() @@ -75,7 +75,7 @@ class App.Auth console.log 'loginCheck:error'#, error, statusText, xhr.statusCode # empty session - window.Session = {} + App.Session.init() # clear store App.Store.clear('all') diff --git a/app/assets/javascripts/app/lib/app_post/websocket.js.coffee b/app/assets/javascripts/app/lib/app_post/websocket.js.coffee index d2dd32d14..12102b3c7 100644 --- a/app/assets/javascripts/app/lib/app_post/websocket.js.coffee +++ b/app/assets/javascripts/app/lib/app_post/websocket.js.coffee @@ -62,10 +62,9 @@ class _Singleton extends App.Controller return if !@supported # logon websocket - data = { - action: 'login', - session: window.Session - } + data = + action: 'login' + session: App.Session.all() @send(data) spool: => diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index bfc8c2d08..809a15c0d 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -5,6 +5,23 @@ // the compiled file. // -//= require init.js -//= require app -//not_used#= require_tree . +//= require ./app/lib/core/jquery-1.8.1.min.js +//= require ./app/lib/core/jquery-ui-1.8.23.custom.min.js +//= require ./app/lib/core/underscore-1.3.3.js + +//not_used= require_tree ./app/lib/spine +//= require ./app/lib/spine/spine.js +//= require ./app/lib/spine/ajax.js +//= require ./app/lib/spine/route.js + +//not_used= require_tree ./app/lib/bootstrap +//= require ./app/lib/bootstrap/bootstrap-dropdown.js +//= require ./app/lib/bootstrap/bootstrap-tooltip.js +//= require ./app/lib/bootstrap/bootstrap-popover.js +//= require ./app/lib/bootstrap/bootstrap-modal.js +//= require ./app/lib/bootstrap/bootstrap-tab.js +//= require ./app/lib/bootstrap/bootstrap-transition.js + +//= require_tree ./app/lib/base + +//= require ./app/index.js.coffee diff --git a/app/assets/javascripts/init.js b/app/assets/javascripts/init.js deleted file mode 100644 index d78fc9912..000000000 --- a/app/assets/javascripts/init.js +++ /dev/null @@ -1 +0,0 @@ -var Session = {}; \ No newline at end of file