mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Merge pull request #150 from mattermost/mm-895
MM-895 Reorganization of browser storage.
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
// Also change web/react/stores/browser_store.jsx BROWSER_STORE_VERSION
|
||||
ETAG_ROOT_VERSION = "11"
|
||||
)
|
||||
|
||||
|
||||
@@ -5,12 +5,16 @@
|
||||
to the server on page load. This is to prevent other React controls from spamming
|
||||
AsyncClient with requests. */
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
var AsyncClient = require('../utils/async_client.jsx');
|
||||
var SocketStore = require('../stores/socket_store.jsx');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
|
||||
module.exports = React.createClass({
|
||||
componentDidMount: function() {
|
||||
// Initalize stores
|
||||
BrowserStore.initalize();
|
||||
|
||||
/* Start initial aysnc loads */
|
||||
AsyncClient.getMe();
|
||||
AsyncClient.getPosts(true);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
var Client = require('../utils/client.jsx');
|
||||
var PostStore = require('../stores/post_store.jsx');
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var AsyncClient = require('../utils/async_client.jsx');
|
||||
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
|
||||
@@ -54,9 +55,9 @@ module.exports = React.createClass({
|
||||
var self = this;
|
||||
$(this.refs.modal.getDOMNode()).on('show.bs.modal', function(e) {
|
||||
var newState = {};
|
||||
if(sessionStorage.getItem('edit_state_transfer')) {
|
||||
newState = JSON.parse(sessionStorage.getItem('edit_state_transfer'));
|
||||
sessionStorage.removeItem('edit_state_transfer');
|
||||
if(BrowserStore.getItem('edit_state_transfer')) {
|
||||
newState = JSON.parse(BrowserStore.getItem('edit_state_transfer'));
|
||||
BrowserStore.removeItem('edit_state_transfer');
|
||||
} else {
|
||||
var button = e.relatedTarget;
|
||||
newState = { title: $(button).attr('data-title'), channel_id: $(button).attr('data-channelid'), post_id: $(button).attr('data-postid'), comments: $(button).attr('data-comments') };
|
||||
|
||||
@@ -13,7 +13,7 @@ module.exports = React.createClass({
|
||||
if (updatedPost.message.length === 0) {
|
||||
var tempState = this.state;
|
||||
delete tempState.editText;
|
||||
sessionStorage.setItem('edit_state_transfer', JSON.stringify(tempState));
|
||||
BrowserStore.setItem('edit_state_transfer', JSON.stringify(tempState));
|
||||
$("#edit_post").modal('hide');
|
||||
$("#delete_post").modal('show');
|
||||
return;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
|
||||
var FindTeamDomain = React.createClass({
|
||||
@@ -21,7 +22,7 @@ var FindTeamDomain = React.createClass({
|
||||
return;
|
||||
}
|
||||
|
||||
if (!utils.isLocalStorageSupported()) {
|
||||
if (!BrowserStore.isLocalStorageSupported()) {
|
||||
state.server_error = "This service requires local storage to be enabled. Please enable it or exit private browsing.";
|
||||
this.setState(state);
|
||||
return;
|
||||
@@ -114,7 +115,7 @@ module.exports = React.createClass({
|
||||
return;
|
||||
}
|
||||
|
||||
if (!utils.isLocalStorageSupported()) {
|
||||
if (!BrowserStore.isLocalStorageSupported()) {
|
||||
state.server_error = "This service requires local storage to be enabled. Please enable it or exit private browsing.";
|
||||
this.setState(state);
|
||||
return;
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var constants = require('../utils/constants.jsx')
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
var constants = require('../utils/constants.jsx');
|
||||
|
||||
WelcomePage = React.createClass({
|
||||
submitNext: function (e) {
|
||||
if (!utils.isLocalStorageSupported()) {
|
||||
if (!BrowserStore.isLocalStorageSupported()) {
|
||||
this.setState({ storage_error: "This service requires local storage to be enabled. Please enable it or exit private browsing."} );
|
||||
return;
|
||||
}
|
||||
@@ -32,7 +33,7 @@ WelcomePage = React.createClass({
|
||||
this.setState(state);
|
||||
return;
|
||||
}
|
||||
else if (!utils.isLocalStorageSupported()) {
|
||||
else if (!BrowserStore.isLocalStorageSupported()) {
|
||||
state.email_error = "This service requires local storage to be enabled. Please enable it or exit private browsing.";
|
||||
this.setState(state);
|
||||
return;
|
||||
@@ -595,7 +596,7 @@ PasswordPage = React.createClass({
|
||||
|
||||
module.exports = React.createClass({
|
||||
updateParent: function(state, skipSet) {
|
||||
localStorage.setItem(this.props.hash, JSON.stringify(state));
|
||||
BrowserStore.setGlobalItem(this.props.hash, JSON.stringify(state));
|
||||
|
||||
if (!skipSet) {
|
||||
this.setState(state);
|
||||
@@ -604,7 +605,7 @@ module.exports = React.createClass({
|
||||
getInitialState: function() {
|
||||
var props = null;
|
||||
try {
|
||||
props = JSON.parse(localStorage.getItem(this.props.hash));
|
||||
props = JSON.parse(BrowserStore.getGlobalItem(this.props.hash));
|
||||
}
|
||||
catch(parse_error) {
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
module.exports = React.createClass({
|
||||
handleSubmit: function(e) {
|
||||
@@ -53,7 +53,7 @@ module.exports = React.createClass({
|
||||
UserStore.setLastEmail(this.state.user.email);
|
||||
UserStore.setCurrentUser(data);
|
||||
if (this.props.hash > 0)
|
||||
localStorage.setItem(this.props.hash, JSON.stringify({wizard: "finished"}));
|
||||
BrowserStore.setGlobalItem(this.props.hash, JSON.stringify({wizard: "finished"}));
|
||||
window.location.href = '/channels/town-square';
|
||||
}.bind(this),
|
||||
function(err) {
|
||||
@@ -75,7 +75,7 @@ module.exports = React.createClass({
|
||||
getInitialState: function() {
|
||||
var props = null;
|
||||
try {
|
||||
props = JSON.parse(localStorage.getItem(this.props.hash));
|
||||
props = JSON.parse(BrowserStore.getGlobalItem(this.props.hash));
|
||||
}
|
||||
catch(parse_error) {
|
||||
}
|
||||
|
||||
77
web/react/stores/browser_store.jsx
Normal file
77
web/react/stores/browser_store.jsx
Normal file
@@ -0,0 +1,77 @@
|
||||
// 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';
|
||||
|
||||
module.exports.initalize = function() {
|
||||
var currentVersion = localStorage.getItem("local_storage_version");
|
||||
if (currentVersion !== BROWSER_STORE_VERSION) {
|
||||
localStorage.clear();
|
||||
sessionStorage.clear();
|
||||
localStorage.setItem("local_storage_version", BROWSER_STORE_VERSION);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.setItem = function(name, value) {
|
||||
var user_id = UserStore.getCurrentId();
|
||||
localStorage.setItem(user_id + "_" + name, value);
|
||||
};
|
||||
|
||||
module.exports.getItem = function(name) {
|
||||
var user_id = UserStore.getCurrentId();
|
||||
return localStorage.getItem(user_id + "_" + name);
|
||||
};
|
||||
|
||||
module.exports.removeItem = function(name) {
|
||||
var user_id = UserStore.getCurrentId();
|
||||
localStorage.removeItem(user_id + "_" + name);
|
||||
};
|
||||
|
||||
module.exports.setGlobalItem = function(name, value) {
|
||||
localStorage.setItem(name, value);
|
||||
};
|
||||
|
||||
module.exports.getGlobalItem = function(name) {
|
||||
return localStorage.getItem(name);
|
||||
};
|
||||
|
||||
module.exports.removeGlobalItem = function(name) {
|
||||
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 (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;
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,8 @@ var assign = require('object-assign');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
|
||||
var CHANGE_EVENT = 'change';
|
||||
var MORE_CHANGE_EVENT = 'change';
|
||||
@@ -87,18 +89,18 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
|
||||
},
|
||||
setCurrentId: function(id) {
|
||||
if (id == null)
|
||||
sessionStorage.removeItem("current_channel_id");
|
||||
BrowserStore.removeItem("current_channel_id");
|
||||
else
|
||||
sessionStorage.setItem("current_channel_id", id);
|
||||
BrowserStore.setItem("current_channel_id", id);
|
||||
},
|
||||
setLastVisitedName: function(name) {
|
||||
if (name == null)
|
||||
localStorage.removeItem("last_visited_name");
|
||||
BrowserStore.removeItem("last_visited_name");
|
||||
else
|
||||
localStorage.setItem("last_visited_name", name);
|
||||
BrowserStore.setItem("last_visited_name", name);
|
||||
},
|
||||
getLastVisitedName: function() {
|
||||
return localStorage.getItem("last_visited_name");
|
||||
return BrowserStore.getItem("last_visited_name");
|
||||
},
|
||||
resetCounts: function(id) {
|
||||
var cm = this._getChannelMembers();
|
||||
@@ -115,7 +117,7 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
|
||||
this._storeChannelMembers(cm);
|
||||
},
|
||||
getCurrentId: function() {
|
||||
return sessionStorage.getItem("current_channel_id");
|
||||
return BrowserStore.getItem("current_channel_id");
|
||||
},
|
||||
getCurrent: function() {
|
||||
var currentId = ChannelStore.getCurrentId();
|
||||
@@ -163,54 +165,70 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
|
||||
return extra;
|
||||
},
|
||||
_storeChannels: function(channels) {
|
||||
sessionStorage.setItem("channels", JSON.stringify(channels));
|
||||
BrowserStore.setItem("channels", JSON.stringify(channels));
|
||||
},
|
||||
_getChannels: function() {
|
||||
var channels = [];
|
||||
try {
|
||||
channels = JSON.parse(sessionStorage.channels);
|
||||
channels = JSON.parse(BrowserStore.getItem("channels"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
|
||||
if (channels == null) {
|
||||
channels = [];
|
||||
}
|
||||
|
||||
return channels;
|
||||
},
|
||||
_storeChannelMembers: function(channelMembers) {
|
||||
sessionStorage.setItem("channel_members", JSON.stringify(channelMembers));
|
||||
BrowserStore.setItem("channel_members", JSON.stringify(channelMembers));
|
||||
},
|
||||
_getChannelMembers: function() {
|
||||
var members = {};
|
||||
try {
|
||||
members = JSON.parse(sessionStorage.channel_members);
|
||||
members = JSON.parse(BrowserStore.getItem("channel_members"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
|
||||
if (members == null) {
|
||||
members = {};
|
||||
}
|
||||
|
||||
return members;
|
||||
},
|
||||
_storeMoreChannels: function(channels) {
|
||||
sessionStorage.setItem("more_channels", JSON.stringify(channels));
|
||||
BrowserStore.setItem("more_channels", JSON.stringify(channels));
|
||||
},
|
||||
_getMoreChannels: function() {
|
||||
var channels = [];
|
||||
try {
|
||||
channels = JSON.parse(sessionStorage.more_channels);
|
||||
channels = JSON.parse(BrowserStore.getItem("more_channels"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
}
|
||||
|
||||
if (channels == null) {
|
||||
channels = [];
|
||||
}
|
||||
|
||||
return channels;
|
||||
},
|
||||
_storeExtraInfos: function(extraInfos) {
|
||||
sessionStorage.setItem("extra_infos", JSON.stringify(extraInfos));
|
||||
BrowserStore.setItem("extra_infos", JSON.stringify(extraInfos));
|
||||
},
|
||||
_getExtraInfos: function() {
|
||||
var members = {};
|
||||
try {
|
||||
members = JSON.parse(sessionStorage.extra_infos);
|
||||
members = JSON.parse(BrowserStore.getItem("extra_infos"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
}
|
||||
|
||||
if (members == null) {
|
||||
members = {};
|
||||
}
|
||||
|
||||
return members;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ var assign = require('object-assign');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
var CHANGE_EVENT = 'change';
|
||||
|
||||
var ErrorStore = assign({}, EventEmitter.prototype, {
|
||||
@@ -24,12 +26,12 @@ var ErrorStore = assign({}, EventEmitter.prototype, {
|
||||
this.removeListener(CHANGE_EVENT, callback);
|
||||
},
|
||||
handledError: function() {
|
||||
sessionStorage.removeItem("last_error");
|
||||
BrowserStore.removeItem("last_error");
|
||||
},
|
||||
getLastError: function() {
|
||||
var error = null;
|
||||
try {
|
||||
error = JSON.parse(sessionStorage.last_error);
|
||||
error = JSON.parse(BrowserStore.last_error);
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
@@ -38,7 +40,7 @@ var ErrorStore = assign({}, EventEmitter.prototype, {
|
||||
},
|
||||
|
||||
_storeLastError: function(error) {
|
||||
sessionStorage.setItem("last_error", JSON.stringify(error));
|
||||
BrowserStore.setItem("last_error", JSON.stringify(error));
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ var assign = require('object-assign');
|
||||
|
||||
var ChannelStore = require('../stores/channel_store.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
@@ -105,12 +106,12 @@ var PostStore = assign({}, EventEmitter.prototype, {
|
||||
this.emitChange();
|
||||
},
|
||||
_storePosts: function(channelId, posts) {
|
||||
sessionStorage.setItem("posts_" + channelId, JSON.stringify(posts));
|
||||
BrowserStore.setItem("posts_" + channelId, JSON.stringify(posts));
|
||||
},
|
||||
getPosts: function(channelId) {
|
||||
var posts = null;
|
||||
try {
|
||||
posts = JSON.parse(sessionStorage.getItem("posts_" + channelId));
|
||||
posts = JSON.parse(BrowserStore.getItem("posts_" + channelId));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
@@ -118,14 +119,14 @@ var PostStore = assign({}, EventEmitter.prototype, {
|
||||
return posts;
|
||||
},
|
||||
storeSearchResults: function(results, is_mention_search) {
|
||||
sessionStorage.setItem("search_results", JSON.stringify(results));
|
||||
BrowserStore.setItem("search_results", JSON.stringify(results));
|
||||
is_mention_search = is_mention_search ? true : false; // force to bool
|
||||
sessionStorage.setItem("is_mention_search", JSON.stringify(is_mention_search));
|
||||
BrowserStore.setItem("is_mention_search", JSON.stringify(is_mention_search));
|
||||
},
|
||||
getSearchResults: function() {
|
||||
var results = null;
|
||||
try {
|
||||
results = JSON.parse(sessionStorage.getItem("search_results"));
|
||||
results = JSON.parse(BrowserStore.getItem("search_results"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
@@ -135,7 +136,7 @@ var PostStore = assign({}, EventEmitter.prototype, {
|
||||
getIsMentionSearch: function() {
|
||||
var result = false;
|
||||
try {
|
||||
result = JSON.parse(sessionStorage.getItem("is_mention_search"));
|
||||
result = JSON.parse(BrowserStore.getItem("is_mention_search"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
@@ -143,12 +144,12 @@ var PostStore = assign({}, EventEmitter.prototype, {
|
||||
return result;
|
||||
},
|
||||
storeSelectedPost: function(post_list) {
|
||||
sessionStorage.setItem("select_post", JSON.stringify(post_list));
|
||||
BrowserStore.setItem("select_post", JSON.stringify(post_list));
|
||||
},
|
||||
getSelectedPost: function() {
|
||||
var post_list = null;
|
||||
try {
|
||||
post_list = JSON.parse(sessionStorage.getItem("select_post"));
|
||||
post_list = JSON.parse(BrowserStore.getItem("select_post"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
@@ -156,37 +157,35 @@ var PostStore = assign({}, EventEmitter.prototype, {
|
||||
return post_list;
|
||||
},
|
||||
storeSearchTerm: function(term) {
|
||||
sessionStorage.setItem("search_term", term);
|
||||
BrowserStore.setItem("search_term", term);
|
||||
},
|
||||
getSearchTerm: function() {
|
||||
return sessionStorage.getItem("search_term");
|
||||
return BrowserStore.getItem("search_term");
|
||||
},
|
||||
storeCurrentDraft: function(draft) {
|
||||
var channel_id = ChannelStore.getCurrentId();
|
||||
var user_id = UserStore.getCurrentId();
|
||||
localStorage.setItem("draft_" + channel_id + "_" + user_id, JSON.stringify(draft));
|
||||
BrowserStore.setItem("draft_" + channel_id + "_" + user_id, JSON.stringify(draft));
|
||||
},
|
||||
getCurrentDraft: function() {
|
||||
var channel_id = ChannelStore.getCurrentId();
|
||||
var user_id = UserStore.getCurrentId();
|
||||
return JSON.parse(localStorage.getItem("draft_" + channel_id + "_" + user_id));
|
||||
return JSON.parse(BrowserStore.getItem("draft_" + channel_id + "_" + user_id));
|
||||
},
|
||||
storeDraft: function(channel_id, user_id, draft) {
|
||||
localStorage.setItem("draft_" + channel_id + "_" + user_id, JSON.stringify(draft));
|
||||
BrowserStore.setItem("draft_" + channel_id + "_" + user_id, JSON.stringify(draft));
|
||||
},
|
||||
getDraft: function(channel_id, user_id) {
|
||||
return JSON.parse(localStorage.getItem("draft_" + channel_id + "_" + user_id));
|
||||
return JSON.parse(BrowserStore.getItem("draft_" + channel_id + "_" + user_id));
|
||||
},
|
||||
clearDraftUploads: function() {
|
||||
for (key in localStorage) {
|
||||
if (key.substring(0,6) === "draft_") {
|
||||
var d = JSON.parse(localStorage.getItem(key));
|
||||
if (d) {
|
||||
d['uploadsInProgress'] = 0;
|
||||
localStorage.setItem(key, JSON.stringify(d));
|
||||
}
|
||||
}
|
||||
}
|
||||
BrowserStore.actionOnItemsWithPrefix("draft_", function (key, value) {
|
||||
var d = JSON.parse(value);
|
||||
if (d) {
|
||||
d['uploadsInProgress'] = 0;
|
||||
BrowserStore.setItem(key, JSON.stringify(d));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ var client = require('../utils/client.jsx');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
var CHANGE_EVENT = 'change';
|
||||
|
||||
var conn;
|
||||
|
||||
@@ -7,7 +7,7 @@ var assign = require('object-assign');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
var CHANGE_EVENT = 'change';
|
||||
|
||||
@@ -42,12 +42,12 @@ var TeamStore = assign({}, EventEmitter.prototype, {
|
||||
},
|
||||
setCurrentId: function(id) {
|
||||
if (id == null)
|
||||
sessionStorage.removeItem("current_team_id");
|
||||
BrowserStore.removeItem("current_team_id");
|
||||
else
|
||||
sessionStorage.setItem("current_team_id", id);
|
||||
BrowserStore.setItem("current_team_id", id);
|
||||
},
|
||||
getCurrentId: function() {
|
||||
return sessionStorage.getItem("current_team_id");
|
||||
return BrowserStore.getItem("current_team_id");
|
||||
},
|
||||
getCurrent: function() {
|
||||
var currentId = TeamStore.getCurrentId();
|
||||
@@ -63,17 +63,21 @@ var TeamStore = assign({}, EventEmitter.prototype, {
|
||||
this._storeTeams(teams);
|
||||
},
|
||||
_storeTeams: function(teams) {
|
||||
sessionStorage.setItem("user_teams", JSON.stringify(teams));
|
||||
BrowserStore.setItem("user_teams", JSON.stringify(teams));
|
||||
},
|
||||
_getTeams: function() {
|
||||
var teams = {};
|
||||
|
||||
try {
|
||||
teams = JSON.parse(sessionStorage.user_teams);
|
||||
teams = JSON.parse(BrowserStore.getItem("user_teams"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
|
||||
if (teams == null) {
|
||||
teams = {};
|
||||
}
|
||||
|
||||
return teams;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -8,6 +8,7 @@ var client = require('../utils/client.jsx');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
var CHANGE_EVENT = 'change';
|
||||
var CHANGE_EVENT_SESSIONS = 'change_sessions';
|
||||
@@ -64,12 +65,12 @@ var UserStore = assign({}, EventEmitter.prototype, {
|
||||
},
|
||||
setCurrentId: function(id) {
|
||||
if (id == null)
|
||||
sessionStorage.removeItem("current_user_id");
|
||||
BrowserStore.removeGlobalItem("current_user_id");
|
||||
else
|
||||
sessionStorage.setItem("current_user_id", id);
|
||||
BrowserStore.setGlobalItem("current_user_id", id);
|
||||
},
|
||||
getCurrentId: function(skipFetch) {
|
||||
var current_id = sessionStorage.current_user_id;
|
||||
var current_id = BrowserStore.getGlobalItem("current_user_id");
|
||||
|
||||
// this is a speical case to force fetch the
|
||||
// current user if it's missing
|
||||
@@ -96,16 +97,24 @@ var UserStore = assign({}, EventEmitter.prototype, {
|
||||
this.setCurrentId(user.id);
|
||||
},
|
||||
getLastDomain: function() {
|
||||
return localStorage.last_domain;
|
||||
var last_domain = BrowserStore.getItem("last_domain");
|
||||
if (last_domain == null) {
|
||||
last_domain = "";
|
||||
}
|
||||
return last_domain;
|
||||
},
|
||||
setLastDomain: function(domain) {
|
||||
localStorage.setItem("last_domain", domain);
|
||||
BrowserStore.setItem("last_domain", domain);
|
||||
},
|
||||
getLastEmail: function() {
|
||||
return localStorage.last_email;
|
||||
var last_email = BrowserStore.getItem("last_email");
|
||||
if (last_email == null) {
|
||||
last_email = "";
|
||||
}
|
||||
return last_email;
|
||||
},
|
||||
setLastEmail: function(email) {
|
||||
localStorage.setItem("last_email", email);
|
||||
BrowserStore.setItem("last_email", email);
|
||||
},
|
||||
removeCurrentUser: function() {
|
||||
this.setCurrentId(null);
|
||||
@@ -144,89 +153,89 @@ var UserStore = assign({}, EventEmitter.prototype, {
|
||||
this._storeProfiles(ps);
|
||||
},
|
||||
_storeProfiles: function(profiles) {
|
||||
sessionStorage.setItem("profiles", JSON.stringify(profiles));
|
||||
BrowserStore.setGlobalItem("profiles", JSON.stringify(profiles));
|
||||
var profileUsernameMap = {};
|
||||
for (var id in profiles) {
|
||||
profileUsernameMap[profiles[id].username] = profiles[id];
|
||||
}
|
||||
sessionStorage.setItem("profileUsernameMap", JSON.stringify(profileUsernameMap));
|
||||
BrowserStore.setGlobalItem("profileUsernameMap", JSON.stringify(profileUsernameMap));
|
||||
},
|
||||
_getProfiles: function() {
|
||||
var profiles = {};
|
||||
try {
|
||||
profiles = JSON.parse(sessionStorage.getItem("profiles"));
|
||||
|
||||
if (profiles == null) {
|
||||
profiles = {};
|
||||
}
|
||||
profiles = JSON.parse(BrowserStore.getGlobalItem("profiles"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
|
||||
if (profiles == null) {
|
||||
profiles = {};
|
||||
}
|
||||
|
||||
return profiles;
|
||||
},
|
||||
_getProfilesUsernameMap: function() {
|
||||
var profileUsernameMap = {};
|
||||
try {
|
||||
profileUsernameMap = JSON.parse(sessionStorage.getItem("profileUsernameMap"));
|
||||
|
||||
if (profileUsernameMap == null) {
|
||||
profileUsernameMap = {};
|
||||
}
|
||||
profileUsernameMap = JSON.parse(BrowserStore.getGlobalItem("profileUsernameMap"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
|
||||
if (profileUsernameMap == null) {
|
||||
profileUsernameMap = {};
|
||||
}
|
||||
|
||||
return profileUsernameMap;
|
||||
},
|
||||
setSessions: function(sessions) {
|
||||
sessionStorage.setItem("sessions", JSON.stringify(sessions));
|
||||
BrowserStore.setItem("sessions", JSON.stringify(sessions));
|
||||
},
|
||||
getSessions: function() {
|
||||
var sessions = [];
|
||||
try {
|
||||
sessions = JSON.parse(sessionStorage.getItem("sessions"));
|
||||
|
||||
if (sessions == null) {
|
||||
sessions = [];
|
||||
}
|
||||
sessions = JSON.parse(BrowserStore.getItem("sessions"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
}
|
||||
if (sessions == null) {
|
||||
sessions = [];
|
||||
}
|
||||
|
||||
return sessions;
|
||||
},
|
||||
setAudits: function(audits) {
|
||||
sessionStorage.setItem("audits", JSON.stringify(audits));
|
||||
BrowserStore.setItem("audits", JSON.stringify(audits));
|
||||
},
|
||||
getAudits: function() {
|
||||
var audits = [];
|
||||
try {
|
||||
audits = JSON.parse(sessionStorage.getItem("audits"));
|
||||
|
||||
if (audits == null) {
|
||||
audits = [];
|
||||
}
|
||||
audits = JSON.parse(BrowserStore.getItem("audits"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
}
|
||||
|
||||
if (audits == null) {
|
||||
audits = [];
|
||||
}
|
||||
|
||||
return audits;
|
||||
},
|
||||
setTeams: function(teams) {
|
||||
sessionStorage.setItem("teams", JSON.stringify(teams));
|
||||
BrowserStore.setItem("teams", JSON.stringify(teams));
|
||||
},
|
||||
getTeams: function() {
|
||||
var teams = [];
|
||||
try {
|
||||
teams = JSON.parse(sessionStorage.getItem("teams"));
|
||||
teams = JSON.parse(BrowserStore.getItem("teams"));
|
||||
|
||||
if (teams == null) {
|
||||
teams = [];
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
}
|
||||
|
||||
if (teams == null) {
|
||||
teams = [];
|
||||
}
|
||||
|
||||
return teams;
|
||||
},
|
||||
@@ -249,17 +258,21 @@ var UserStore = assign({}, EventEmitter.prototype, {
|
||||
}
|
||||
},
|
||||
getLastVersion: function() {
|
||||
return sessionStorage.last_version;
|
||||
var last_version = BrowserStore.getItem("last_version");
|
||||
if (last_version == null) {
|
||||
last_version = "";
|
||||
}
|
||||
return last_version;
|
||||
},
|
||||
setLastVersion: function(version) {
|
||||
sessionStorage.setItem("last_version", version);
|
||||
BrowserStore.setItem("last_version", version);
|
||||
},
|
||||
setStatuses: function(statuses) {
|
||||
this._setStatuses(statuses);
|
||||
this.emitStatusesChange();
|
||||
},
|
||||
_setStatuses: function(statuses) {
|
||||
sessionStorage.setItem("statuses", JSON.stringify(statuses));
|
||||
BrowserStore.setItem("statuses", JSON.stringify(statuses));
|
||||
},
|
||||
setStatus: function(user_id, status) {
|
||||
var statuses = this.getStatuses();
|
||||
@@ -270,15 +283,15 @@ var UserStore = assign({}, EventEmitter.prototype, {
|
||||
getStatuses: function() {
|
||||
var statuses = {};
|
||||
try {
|
||||
statuses = JSON.parse(sessionStorage.getItem("statuses"));
|
||||
|
||||
if (statuses == null) {
|
||||
statuses = {};
|
||||
}
|
||||
statuses = JSON.parse(BrowserStore.getItem("statuses"));
|
||||
}
|
||||
catch (err) {
|
||||
}
|
||||
|
||||
if (statuses == null) {
|
||||
statuses = {};
|
||||
}
|
||||
|
||||
return statuses;
|
||||
},
|
||||
getStatus: function(id) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
module.exports.track = function(category, action, label, prop, val) {
|
||||
global.window.snowplow('trackStructEvent', category, action, label, prop, val);
|
||||
@@ -204,7 +205,7 @@ module.exports.resetPassword = function(data, success, error) {
|
||||
|
||||
module.exports.logout = function() {
|
||||
module.exports.track('api', 'api_users_logout');
|
||||
sessionStorage.clear();
|
||||
BrowserStore.clear();
|
||||
window.location.href = "/logout";
|
||||
};
|
||||
|
||||
|
||||
@@ -97,20 +97,6 @@ module.exports.getCookie = function(name) {
|
||||
if (parts.length == 2) return parts.pop().split(";").shift();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.notifyMe = function(title, body, channel) {
|
||||
if ("Notification" in window && Notification.permission !== 'denied') {
|
||||
|
||||
Reference in New Issue
Block a user