86 строки
2.4 KiB
JavaScript
86 строки
2.4 KiB
JavaScript
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
var UserStore = require('../stores/user_store.jsx');
|
|
|
|
// Also change model/utils.go ETAG_ROOT_VERSION
|
|
var BROWSER_STORE_VERSION = '.1';
|
|
|
|
var _initialized = false;
|
|
|
|
function _initialize() {
|
|
var currentVersion = localStorage.getItem("local_storage_version");
|
|
if (currentVersion !== BROWSER_STORE_VERSION) {
|
|
localStorage.clear();
|
|
sessionStorage.clear();
|
|
localStorage.setItem("local_storage_version", BROWSER_STORE_VERSION);
|
|
}
|
|
_initialized = true;
|
|
}
|
|
|
|
module.exports.setItem = function(name, value) {
|
|
if (!_initialized) _initialize();
|
|
var user_id = UserStore.getCurrentId();
|
|
localStorage.setItem(user_id + "_" + name, value);
|
|
};
|
|
|
|
module.exports.getItem = function(name) {
|
|
if (!_initialized) _initialize();
|
|
var user_id = UserStore.getCurrentId();
|
|
return localStorage.getItem(user_id + "_" + name);
|
|
};
|
|
|
|
module.exports.removeItem = function(name) {
|
|
if (!_initialized) _initialize();
|
|
var user_id = UserStore.getCurrentId();
|
|
localStorage.removeItem(user_id + "_" + name);
|
|
};
|
|
|
|
module.exports.setGlobalItem = function(name, value) {
|
|
if (!_initialized) _initialize();
|
|
localStorage.setItem(name, value);
|
|
};
|
|
|
|
module.exports.getGlobalItem = function(name) {
|
|
if (!_initialized) _initialize();
|
|
return localStorage.getItem(name);
|
|
};
|
|
|
|
module.exports.removeGlobalItem = function(name) {
|
|
if (!_initialized) _initialize();
|
|
localStorage.removeItem(name);
|
|
};
|
|
|
|
module.exports.clear = function() {
|
|
localStorage.clear();
|
|
sessionStorage.clear();
|
|
};
|
|
|
|
// Preforms the given action on each item that has the given prefix
|
|
// Signiture for action is action(key, value)
|
|
module.exports.actionOnItemsWithPrefix = function (prefix, action) {
|
|
var user_id = UserStore.getCurrentId();
|
|
var id_len = user_id.length;
|
|
var prefix_len = prefix.length;
|
|
for (var key in localStorage) {
|
|
if (key.substring(id_len, id_len + prefix_len) === prefix) {
|
|
var userkey = key.substring(id_len);
|
|
action(userkey, BrowserStore.getItem(key));
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports.isLocalStorageSupported = function() {
|
|
try {
|
|
sessionStorage.setItem("testSession", '1');
|
|
sessionStorage.removeItem("testSession");
|
|
|
|
localStorage.setItem("testLocal", '1');
|
|
localStorage.removeItem("testLocal", '1');
|
|
|
|
return true;
|
|
}
|
|
catch (e) {
|
|
return false;
|
|
}
|
|
};
|