X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/7a654f8d43fdb43d78b63d90528bed6e86b608cc..3789b528d8dd8aad4558e38e22d775bcab1cbd36:/docs/source/LocalStorageProvider.html?ds=sidebyside diff --git a/docs/source/LocalStorageProvider.html b/docs/source/LocalStorageProvider.html new file mode 100644 index 00000000..6a42acb3 --- /dev/null +++ b/docs/source/LocalStorageProvider.html @@ -0,0 +1,85 @@ + + +
+ +Ext.define('Ext.state.LocalStorageProvider', { + /* Begin Definitions */ + + extend: 'Ext.state.Provider', + + alias: 'state.localstorage', + + /* End Definitions */ + + constructor: function(){ + var me = this; + me.callParent(arguments); + me.store = me.getStorageObject(); + me.state = me.readLocalStorage(); + }, + + readLocalStorage: function(){ + var store = this.store, + i = 0, + len = store.length, + prefix = this.prefix, + prefixLen = prefix.length, + data = {}, + key; + + for (; i < len; ++i) { + key = store.key(i); + if (key.substring(0, prefixLen) == prefix) { + data[key.substr(prefixLen)] = this.decodeValue(store.getItem(key)); + } + } + return data; + }, + + set : function(name, value){ + var me = this; + + me.clear(name); + if (typeof value == "undefined" || value === null) { + return; + } + me.store.setItem(me.prefix + name, me.encodeValue(value)); + me.callParent(arguments); + }, + + // private + clear : function(name){ + this.store.removeItem(this.prefix + name); + this.callParent(arguments); + }, + + getStorageObject: function(){ + try { + var supports = 'localStorage' in window && window['localStorage'] !== null; + if (supports) { + return window.localStorage; + } + } catch (e) { + return false; + } + //<debug> + Ext.Error.raise('LocalStorage is not supported by the current browser'); + //</debug> + } +}); ++ +