State.js 658 B

123456789101112131415161718192021222324252627282930
  1. Ext.define('saas.util.State', {
  2. singleton: true,
  3. requires: [
  4. 'Ext.util.LocalStorage'
  5. ],
  6. store: new Ext.util.LocalStorage({
  7. id: 'app-state',
  8. session: true
  9. }),
  10. get: function(key, defaultValue) {
  11. var value = this.store.getItem(key);
  12. return value === undefined? defaultValue : Ext.decode(value);
  13. },
  14. set: function(key, value) {
  15. if (value == null) { // !== undefined && !== null
  16. this.store.removeItem(key);
  17. } else {
  18. this.store.setItem(key, Ext.encode(value));
  19. }
  20. },
  21. clear: function(key) {
  22. this.set(key, null);
  23. }
  24. });