diff --git a/app/assets/javascripts/app/controllers/_application_controller_table.coffee b/app/assets/javascripts/app/controllers/_application_controller_table.coffee index 9b49adc54..a0d7bab51 100644 --- a/app/assets/javascripts/app/controllers/_application_controller_table.coffee +++ b/app/assets/javascripts/app/controllers/_application_controller_table.coffee @@ -500,10 +500,10 @@ class App.ControllerTable extends App.Controller data[type][key] = {} data[type][key] = value @log 'debug', @table_id, 'preferencesStore', data - App.LocalStorage.set(@preferencesStoreKey(), data) + App.LocalStorage.set(@preferencesStoreKey(), data, @Session.get('id')) preferencesGet: => - data = App.LocalStorage.get(@preferencesStoreKey()) + data = App.LocalStorage.get(@preferencesStoreKey(), @Session.get('id')) return {} if !data @log 'debug', @table_id, 'preferencesGet', data data diff --git a/app/assets/javascripts/app/controllers/ticket_overview.coffee b/app/assets/javascripts/app/controllers/ticket_overview.coffee index c28498ca1..9c2ee6fec 100644 --- a/app/assets/javascripts/app/controllers/ticket_overview.coffee +++ b/app/assets/javascripts/app/controllers/ticket_overview.coffee @@ -111,7 +111,7 @@ class Table extends App.Controller for key, value of params @[key] = value - @view_mode = localStorage.getItem( "mode:#{@view}" ) || 's' + @view_mode = App.LocalStorage.get("mode:#{@view}", @Session.get('id')) || 's' @log 'notice', 'view:', @view, @view_mode return if !@view @@ -370,7 +370,7 @@ class Table extends App.Controller viewmode: (e) => e.preventDefault() @view_mode = $(e.target).data('mode') - localStorage.setItem( "mode:#{@view}", @view_mode ) + App.LocalStorage.set("mode:#{@view}", @view_mode, @Session.get('id')) @fetch() #@render() diff --git a/app/assets/javascripts/app/lib/app_post/local_storage.coffee b/app/assets/javascripts/app/lib/app_post/local_storage.coffee index 588177aee..0fdfdea97 100644 --- a/app/assets/javascripts/app/lib/app_post/local_storage.coffee +++ b/app/assets/javascripts/app/lib/app_post/local_storage.coffee @@ -1,20 +1,20 @@ class App.LocalStorage _instance = undefined # Must be declared here to force the closure on the class - @set: (key, value) -> + @set: (key, value, user_id) -> if _instance == undefined _instance ?= new _storeSingleton - _instance.set(key, value) + _instance.set(key, value, user_id) - @get: (args) -> + @get: (key, user_id) -> if _instance == undefined _instance ?= new _storeSingleton - _instance.get(args) + _instance.get(key, user_id) - @delete: (args) -> + @delete: (key, user_id) -> if _instance == undefined _instance ?= new _storeSingleton - _instance.delete(args) + _instance.delete(key) @clear: -> if _instance == undefined @@ -31,22 +31,28 @@ class _storeSingleton constructor: -> # write to local storage - set: (key, value) -> + set: (key, value, user_id) -> try - localStorage.setItem(key, JSON.stringify( value )) + if user_id + key = "personal::#{user_id}::#{key}" + localStorage.setItem(key, JSON.stringify(value)) catch e if e is QUOTA_EXCEEDED_ERR # do something nice to notify your users - App.Log.error 'App.LocalStore', 'Local storage quote exceeded!' + App.Log.error 'App.LocalStorage', 'Local storage quote exceeded!' # get item - get: (key) -> + get: (key, user_id) -> + if user_id + key = "personal::#{user_id}::#{key}" value = localStorage.getItem(key) return if !value JSON.parse(value) # delete item - delete: (key) -> + delete: (key, user_id) -> + if user_id + key = "personal::#{user_id}::#{key}" localStorage.removeItem(key) # clear local storage @@ -55,6 +61,4 @@ class _storeSingleton # return list of all keys list: -> - for key of window.localStorage - list.push key - list + window.localStorage