diff options
author | Christopher Speller <crspeller@gmail.com> | 2016-03-14 08:50:46 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-03-16 18:02:55 -0400 |
commit | 12896bd23eeba79884245c1c29fdc568cf21a7fa (patch) | |
tree | 4e7f83d3e2564b9b89d669e9f7905ff11768b11a /web/react/stores/browser_store.jsx | |
parent | 29fe6a3d13c9c7aa490fffebbe5d1b5fdf1e3090 (diff) | |
download | chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.gz chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.bz2 chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.zip |
Converting to Webpack. Stage 1.
Diffstat (limited to 'web/react/stores/browser_store.jsx')
-rw-r--r-- | web/react/stores/browser_store.jsx | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/web/react/stores/browser_store.jsx b/web/react/stores/browser_store.jsx deleted file mode 100644 index 3b35916b3..000000000 --- a/web/react/stores/browser_store.jsx +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import {generateId} from '../utils/utils.jsx'; - -function getPrefix() { - if (global.window.mm_current_user_id) { - return global.window.mm_current_user_id + '_'; - } - - return 'unknown_'; -} - -class BrowserStoreClass { - constructor() { - this.getItem = this.getItem.bind(this); - this.setItem = this.setItem.bind(this); - this.removeItem = this.removeItem.bind(this); - this.setGlobalItem = this.setGlobalItem.bind(this); - this.getGlobalItem = this.getGlobalItem.bind(this); - this.removeGlobalItem = this.removeGlobalItem.bind(this); - this.actionOnItemsWithPrefix = this.actionOnItemsWithPrefix.bind(this); - this.actionOnGlobalItemsWithPrefix = this.actionOnGlobalItemsWithPrefix.bind(this); - this.isLocalStorageSupported = this.isLocalStorageSupported.bind(this); - this.getLastServerVersion = this.getLastServerVersion.bind(this); - this.setLastServerVersion = this.setLastServerVersion.bind(this); - this.clear = this.clear.bind(this); - this.clearAll = this.clearAll.bind(this); - this.checkedLocalStorageSupported = ''; - this.signalLogout = this.signalLogout.bind(this); - this.isSignallingLogout = this.isSignallingLogout.bind(this); - this.signalLogin = this.signalLogin.bind(this); - this.isSignallingLogin = this.isSignallingLogin.bind(this); - } - - checkVersion() { - var currentVersion = sessionStorage.getItem('storage_version'); - if (currentVersion !== global.window.mm_config.Version) { - sessionStorage.clear(); - try { - sessionStorage.setItem('storage_version', global.window.mm_config.Version); - } catch (e) { - // Do nothing - } - } - } - - getItem(name, defaultValue) { - var result = null; - try { - result = JSON.parse(sessionStorage.getItem(getPrefix() + name)); - } catch (err) { - result = null; - } - - if (result === null && typeof defaultValue !== 'undefined') { - result = defaultValue; - } - - return result; - } - - setItem(name, value) { - sessionStorage.setItem(getPrefix() + name, JSON.stringify(value)); - } - - removeItem(name) { - sessionStorage.removeItem(getPrefix() + name); - } - - setGlobalItem(name, value) { - try { - if (this.isLocalStorageSupported()) { - localStorage.setItem(getPrefix() + name, JSON.stringify(value)); - } else { - sessionStorage.setItem(getPrefix() + name, JSON.stringify(value)); - } - } catch (err) { - console.log('An error occurred while setting local storage, clearing all props'); //eslint-disable-line no-console - localStorage.clear(); - sessionStorage.clear(); - window.location.reload(true); - } - } - - getGlobalItem(name, defaultValue) { - var result = null; - try { - if (this.isLocalStorageSupported()) { - result = JSON.parse(localStorage.getItem(getPrefix() + name)); - } else { - result = JSON.parse(sessionStorage.getItem(getPrefix() + name)); - } - } catch (err) { - result = null; - } - - if (result === null && typeof defaultValue !== 'undefined') { - result = defaultValue; - } - - return result; - } - - removeGlobalItem(name) { - if (this.isLocalStorageSupported()) { - localStorage.removeItem(getPrefix() + name); - } else { - sessionStorage.removeItem(getPrefix() + name); - } - } - - getLastServerVersion() { - return sessionStorage.getItem('last_server_version'); - } - - setLastServerVersion(version) { - sessionStorage.setItem('last_server_version', version); - } - - signalLogout() { - if (this.isLocalStorageSupported()) { - // PLT-1285 store an identifier in session storage so we can catch if the logout came from this tab on IE11 - const logoutId = generateId(); - - sessionStorage.setItem('__logout__', logoutId); - localStorage.setItem('__logout__', logoutId); - localStorage.removeItem('__logout__'); - } - } - - isSignallingLogout(logoutId) { - return logoutId === sessionStorage.getItem('__logout__'); - } - - signalLogin() { - if (this.isLocalStorageSupported()) { - // PLT-1285 store an identifier in session storage so we can catch if the logout came from this tab on IE11 - const loginId = generateId(); - - sessionStorage.setItem('__login__', loginId); - localStorage.setItem('__login__', loginId); - localStorage.removeItem('__login__'); - } - } - - isSignallingLogin(loginId) { - return loginId === sessionStorage.getItem('__login__'); - } - - /** - * Preforms the given action on each item that has the given prefix - * Signature for action is action(key, value) - */ - actionOnGlobalItemsWithPrefix(prefix, action) { - var globalPrefix = getPrefix(); - var globalPrefixiLen = globalPrefix.length; - - var storage = sessionStorage; - if (this.isLocalStorageSupported()) { - storage = localStorage; - } - - for (var key in storage) { - if (key.lastIndexOf(globalPrefix + prefix, 0) === 0) { - var userkey = key.substring(globalPrefixiLen); - action(userkey, this.getGlobalItem(key)); - } - } - } - - actionOnItemsWithPrefix(prefix, action) { - var globalPrefix = getPrefix(); - var globalPrefixiLen = globalPrefix.length; - for (var key in sessionStorage) { - if (key.lastIndexOf(globalPrefix + prefix, 0) === 0) { - var userkey = key.substring(globalPrefixiLen); - action(userkey, this.getGlobalItem(key)); - } - } - } - - clear() { - // don't clear the logout id so IE11 can tell which tab sent a logout request - const logoutId = sessionStorage.getItem('__logout__'); - - sessionStorage.clear(); - - if (logoutId) { - sessionStorage.setItem('__logout__', logoutId); - } - } - - clearAll() { - sessionStorage.clear(); - localStorage.clear(); - } - - isLocalStorageSupported() { - if (this.checkedLocalStorageSupported !== '') { - return this.checkedLocalStorageSupported; - } - - try { - sessionStorage.setItem('__testSession__', '1'); - sessionStorage.removeItem('__testSession__'); - - localStorage.setItem('__testLocal__', '1'); - if (localStorage.getItem('__testLocal__') !== '1') { - this.checkedLocalStorageSupported = false; - } - localStorage.removeItem('__testLocal__', '1'); - - this.checkedLocalStorageSupported = true; - } catch (e) { - this.checkedLocalStorageSupported = false; - } - - return this.checkedLocalStorageSupported; - } -} - -var BrowserStore = new BrowserStoreClass(); -export default BrowserStore; -window.BrowserStore = BrowserStore; |