From e43d43933a346cce08ff4f072d149c976ec4b181 Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Tue, 16 Oct 2012 22:50:41 +0200 Subject: [PATCH] Updates storage. --- src/_h5ai/client/js/inc/core/store.js | 38 ++++++++++++++-------- src/_h5ai/client/js/inc/ext/l10n.js | 2 +- src/_h5ai/client/js/inc/ext/preview-img.js | 2 +- src/_h5ai/client/js/inc/ext/sort.js | 2 +- src/_h5ai/client/js/inc/view/viewmode.js | 2 +- src/_h5ai/client/js/lib/modernizr-2.6.2.js | 18 ++++++++-- 6 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/_h5ai/client/js/inc/core/store.js b/src/_h5ai/client/js/inc/core/store.js index c7c2a7c3..1278470e 100644 --- a/src/_h5ai/client/js/inc/core/store.js +++ b/src/_h5ai/client/js/inc/core/store.js @@ -1,25 +1,37 @@ -modulejs.define('core/store', ['_'], function (_) { +modulejs.define('core/store', ['_', 'modernizr'], function (_, modernizr) { - var store = window.localStorage, + var store = modernizr.localstorage ? window.localStorage : null, + + key = '_h5ai', + + load = function () { + + if (store) { + try { + return JSON.parse(store[key]); + } catch (e) {} + } + return {}; + }, + + save = function (obj) { + + if (store) { + store[key] = JSON.stringify(obj); + } + }, put = function (key, value) { - if (store && _.isString(key)) { - store[key] = JSON.stringify({data: value}); - } + var obj = load(); + obj[key] = value; + return save(obj); }, get = function (key) { - if (store && _.isString(key)) { - var json = store[key], - obj = {}; - - try { obj = JSON.parse(json); } catch (e) {} - - return obj.data; - } + return load()[key]; }; return { diff --git a/src/_h5ai/client/js/inc/ext/l10n.js b/src/_h5ai/client/js/inc/ext/l10n.js index 66a8a3de..8095f872 100644 --- a/src/_h5ai/client/js/inc/ext/l10n.js +++ b/src/_h5ai/client/js/inc/ext/l10n.js @@ -34,7 +34,7 @@ modulejs.define('ext/l10n', ['_', '$', 'core/settings', 'core/langs', 'core/form '', langOptionTemplate = '
  • ', - storekey = 'h5ai.language', + storekey = 'l10n.lang', loaded = { en: _.extend({}, defaultTranslations) diff --git a/src/_h5ai/client/js/inc/ext/preview-img.js b/src/_h5ai/client/js/inc/ext/preview-img.js index ba015f3c..78ea5fd9 100644 --- a/src/_h5ai/client/js/inc/ext/preview-img.js +++ b/src/_h5ai/client/js/inc/ext/preview-img.js @@ -28,7 +28,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', '' + '', - storekey = 'h5ai.preview-img.isFullscreen', + storekey = 'preview-img.isFullscreen', currentEntries = [], currentIdx = 0, diff --git a/src/_h5ai/client/js/inc/ext/sort.js b/src/_h5ai/client/js/inc/ext/sort.js index 389498e5..89031b21 100644 --- a/src/_h5ai/client/js/inc/ext/sort.js +++ b/src/_h5ai/client/js/inc/ext/sort.js @@ -6,7 +6,7 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e order: 'na' }, allsettings.sort), - storekey = 'h5ai.sortorder', + storekey = 'sort.order', type = function (entry) { diff --git a/src/_h5ai/client/js/inc/view/viewmode.js b/src/_h5ai/client/js/inc/view/viewmode.js index 1943f342..b8360c04 100644 --- a/src/_h5ai/client/js/inc/view/viewmode.js +++ b/src/_h5ai/client/js/inc/view/viewmode.js @@ -7,7 +7,7 @@ modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'c modes: modes }, allsettings.view), - storekey = 'h5ai.viewmode', + storekey = 'viewmode', template = '
  • ' + '' + diff --git a/src/_h5ai/client/js/lib/modernizr-2.6.2.js b/src/_h5ai/client/js/lib/modernizr-2.6.2.js index e4382d16..17158e12 100644 --- a/src/_h5ai/client/js/lib/modernizr-2.6.2.js +++ b/src/_h5ai/client/js/lib/modernizr-2.6.2.js @@ -1,5 +1,5 @@ /* Modernizr 2.6.2 (Custom Build) | MIT & BSD - * Build: http://modernizr.com/download/#-opacity-rgba-canvas-history-audio-video-shiv-cssclasses-prefixes + * Build: http://modernizr.com/download/#-opacity-rgba-canvas-history-audio-video-localstorage-shiv-cssclasses-prefixes */ ; @@ -182,7 +182,21 @@ window.Modernizr = (function( window, document, undefined ) { } catch(e) { } return bool; - }; for ( var feature in tests ) { + }; + + + tests['localstorage'] = function() { + try { + localStorage.setItem(mod, mod); + localStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + + for ( var feature in tests ) { if ( hasOwnProp(tests, feature) ) { featureName = feature.toLowerCase(); Modernizr[featureName] = tests[feature]();