Merge pull request #163 from ralder/fix-and-refactor-browser-store

[webui] second bugfix for pr #150 and refactor BrowserStore
Этот коммит содержится в:
Christopher Speller
2015-07-13 12:07:50 -04:00
родитель 6cc8788193 6a559febc2
Коммит 6447af758c
11 изменённых файлов: 153 добавлений и 313 удалений

Просмотреть файл

@@ -56,13 +56,13 @@ module.exports = React.createClass({
$(this.refs.modal.getDOMNode()).on('show.bs.modal', function(e) { $(this.refs.modal.getDOMNode()).on('show.bs.modal', function(e) {
var newState = {}; var newState = {};
if(BrowserStore.getItem('edit_state_transfer')) { if(BrowserStore.getItem('edit_state_transfer')) {
newState = JSON.parse(BrowserStore.getItem('edit_state_transfer')); newState = BrowserStore.getItem('edit_state_transfer');
BrowserStore.removeItem('edit_state_transfer'); BrowserStore.removeItem('edit_state_transfer');
} else { } else {
var button = e.relatedTarget; 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') }; newState = { title: $(button).attr('data-title'), channel_id: $(button).attr('data-channelid'), post_id: $(button).attr('data-postid'), comments: $(button).attr('data-comments') };
} }
self.setState(newState) self.setState(newState);
}); });
PostStore.addSelectedPostChangeListener(this._onChange); PostStore.addSelectedPostChangeListener(this._onChange);
}, },

Просмотреть файл

@@ -4,6 +4,7 @@
var Client = require('../utils/client.jsx'); var Client = require('../utils/client.jsx');
var AsyncClient = require('../utils/async_client.jsx'); var AsyncClient = require('../utils/async_client.jsx');
var Textbox = require('./textbox.jsx'); var Textbox = require('./textbox.jsx');
var BrowserStore = require('../stores/browser_store.jsx');
module.exports = React.createClass({ module.exports = React.createClass({
handleEdit: function(e) { handleEdit: function(e) {
@@ -13,14 +14,14 @@ module.exports = React.createClass({
if (updatedPost.message.length === 0) { if (updatedPost.message.length === 0) {
var tempState = this.state; var tempState = this.state;
delete tempState.editText; delete tempState.editText;
BrowserStore.setItem('edit_state_transfer', JSON.stringify(tempState)); BrowserStore.setItem('edit_state_transfer', tempState);
$("#edit_post").modal('hide'); $("#edit_post").modal('hide');
$("#delete_post").modal('show'); $("#delete_post").modal('show');
return; return;
} }
updatedPost.id = this.state.post_id updatedPost.id = this.state.post_id;
updatedPost.channel_id = this.state.channel_id updatedPost.channel_id = this.state.channel_id;
Client.updatePost(updatedPost, Client.updatePost(updatedPost,
function(data) { function(data) {

Просмотреть файл

@@ -596,19 +596,14 @@ PasswordPage = React.createClass({
module.exports = React.createClass({ module.exports = React.createClass({
updateParent: function(state, skipSet) { updateParent: function(state, skipSet) {
BrowserStore.setGlobalItem(this.props.hash, JSON.stringify(state)); BrowserStore.setGlobalItem(this.props.hash, state);
if (!skipSet) { if (!skipSet) {
this.setState(state); this.setState(state);
} }
}, },
getInitialState: function() { getInitialState: function() {
var props = null; var props = BrowserStore.getGlobalItem(this.props.hash);
try {
props = JSON.parse(BrowserStore.getGlobalItem(this.props.hash));
}
catch(parse_error) {
}
if (!props) { if (!props) {
props = {}; props = {};
@@ -628,7 +623,7 @@ module.exports = React.createClass({
props.data = this.props.data; props.data = this.props.data;
} }
return props ; return props;
}, },
render: function() { render: function() {
if (this.state.wizard == "welcome") { if (this.state.wizard == "welcome") {

Просмотреть файл

@@ -17,7 +17,7 @@ module.exports = React.createClass({
return; return;
} }
var username_error = utils.isValidUsername(this.state.user.username) var username_error = utils.isValidUsername(this.state.user.username);
if (username_error === "Cannot use a reserved word as a username.") { if (username_error === "Cannot use a reserved word as a username.") {
this.setState({name_error: "This username is reserved, please choose a new one.", email_error: "", password_error: "", server_error: ""}); this.setState({name_error: "This username is reserved, please choose a new one.", email_error: "", password_error: "", server_error: ""});
return; return;
@@ -53,7 +53,7 @@ module.exports = React.createClass({
UserStore.setLastEmail(this.state.user.email); UserStore.setLastEmail(this.state.user.email);
UserStore.setCurrentUser(data); UserStore.setCurrentUser(data);
if (this.props.hash > 0) if (this.props.hash > 0)
BrowserStore.setGlobalItem(this.props.hash, JSON.stringify({wizard: "finished"})); BrowserStore.setGlobalItem(this.props.hash, {wizard: "finished"});
window.location.href = '/channels/town-square'; window.location.href = '/channels/town-square';
}.bind(this), }.bind(this),
function(err) { function(err) {
@@ -73,12 +73,7 @@ module.exports = React.createClass({
); );
}, },
getInitialState: function() { getInitialState: function() {
var props = null; var props = BrowserStore.getGlobalItem(this.props.hash);
try {
props = JSON.parse(BrowserStore.getGlobalItem(this.props.hash));
}
catch(parse_error) {
}
if (!props) { if (!props) {
props = {}; props = {};
@@ -91,7 +86,7 @@ module.exports = React.createClass({
props.original_email = this.props.email; props.original_email = this.props.email;
} }
return props ; return props;
}, },
render: function() { render: function() {

Просмотреть файл

@@ -1,85 +1,104 @@
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
// See License.txt for license information. // See License.txt for license information.
var UserStore = require('../stores/user_store.jsx');
// Also change model/utils.go ETAG_ROOT_VERSION var UserStore;
var BROWSER_STORE_VERSION = '.1'; function getPrefix() {
if (!UserStore) UserStore = require('./user_store.jsx');
var _initialized = false; return UserStore.getCurrentId() + '_';
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) { // Also change model/utils.go ETAG_ROOT_VERSION
if (!_initialized) _initialize(); var BROWSER_STORE_VERSION = '.3';
var user_id = UserStore.getCurrentId();
localStorage.setItem(user_id + "_" + name, value);
};
module.exports.getItem = function(name) { module.exports = {
if (!_initialized) _initialize(); _initialized: false,
var user_id = UserStore.getCurrentId();
return localStorage.getItem(user_id + "_" + name);
};
module.exports.removeItem = function(name) { _initialize: function() {
if (!_initialized) _initialize(); var currentVersion = localStorage.getItem("local_storage_version");
var user_id = UserStore.getCurrentId(); if (currentVersion !== BROWSER_STORE_VERSION) {
localStorage.removeItem(user_id + "_" + name); this.clear();
}; localStorage.setItem("local_storage_version", BROWSER_STORE_VERSION);
}
this._initialized = true;
},
module.exports.setGlobalItem = function(name, value) { getItem: function(name, defaultValue) {
if (!_initialized) _initialize(); return this.getGlobalItem(getPrefix() + name, defaultValue);
localStorage.setItem(name, value); },
};
module.exports.getGlobalItem = function(name) { setItem: function(name, value) {
if (!_initialized) _initialize(); this.setGlobalItem(getPrefix() + name, value);
return localStorage.getItem(name); },
};
module.exports.removeGlobalItem = function(name) { removeItem: function(name) {
if (!_initialized) _initialize(); if (!this._initialized) this._initialize();
localStorage.removeItem(name);
};
module.exports.clear = function() { localStorage.removeItem(getPrefix() + name);
localStorage.clear(); },
sessionStorage.clear();
};
// Preforms the given action on each item that has the given prefix setGlobalItem: function(name, value) {
// Signiture for action is action(key, value) if (!this._initialized) this._initialize();
module.exports.actionOnItemsWithPrefix = function (prefix, action) {
var user_id = UserStore.getCurrentId(); localStorage.setItem(name, JSON.stringify(value));
var id_len = user_id.length; },
var prefix_len = prefix.length;
for (var key in localStorage) { getGlobalItem: function(name, defaultValue) {
if (key.substring(id_len, id_len + prefix_len) === prefix) { if (!this._initialized) this._initialize();
var userkey = key.substring(id_len);
action(userkey, BrowserStore.getItem(key)); var result = null;
try {
result = JSON.parse(localStorage.getItem(name));
} catch (err) {}
if (result === null && typeof defaultValue !== 'undefined') {
result = defaultValue;
}
return result;
},
removeGlobalItem: function(name) {
if (!this._initialized) this._initialize();
localStorage.removeItem(name);
},
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)
*/
actionOnItemsWithPrefix: function (prefix, action) {
if (!this._initialized) this._initialize();
var globalPrefix = getPrefix();
var globalPrefixiLen = globalPrefix.length;
for (var key in localStorage) {
if (key.lastIndexOf(globalPrefix + prefix, 0) === 0) {
var userkey = key.substring(globalPrefixiLen);
action(userkey, this.getGlobalItem(key));
}
}
},
isLocalStorageSupported: function() {
try {
sessionStorage.setItem("testSession", '1');
sessionStorage.removeItem("testSession");
localStorage.setItem("testLocal", '1');
if (localStorage.getItem("testLocal") != '1') {
return false;
}
localStorage.removeItem("testLocal", '1');
return true;
} catch (e) {
return false;
} }
} }
}; };
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;
}
};

Просмотреть файл

@@ -16,6 +16,7 @@ var MORE_CHANGE_EVENT = 'change';
var EXTRA_INFO_EVENT = 'extra_info'; var EXTRA_INFO_EVENT = 'extra_info';
var ChannelStore = assign({}, EventEmitter.prototype, { var ChannelStore = assign({}, EventEmitter.prototype, {
_current_id: null,
emitChange: function() { emitChange: function() {
this.emit(CHANGE_EVENT); this.emit(CHANGE_EVENT);
}, },
@@ -88,10 +89,7 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
return this._getMoreChannels(); return this._getMoreChannels();
}, },
setCurrentId: function(id) { setCurrentId: function(id) {
if (id == null) this._current_id = id;
BrowserStore.removeItem("current_channel_id");
else
BrowserStore.setItem("current_channel_id", id);
}, },
setLastVisitedName: function(name) { setLastVisitedName: function(name) {
if (name == null) if (name == null)
@@ -117,10 +115,10 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
this._storeChannelMembers(cm); this._storeChannelMembers(cm);
}, },
getCurrentId: function() { getCurrentId: function() {
return BrowserStore.getItem("current_channel_id"); return this._current_id;
}, },
getCurrent: function() { getCurrent: function() {
var currentId = ChannelStore.getCurrentId(); var currentId = this.getCurrentId();
if (currentId != null) if (currentId != null)
return this.get(currentId); return this.get(currentId);
@@ -165,49 +163,22 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
return extra; return extra;
}, },
_storeChannels: function(channels) { _storeChannels: function(channels) {
BrowserStore.setItem("channels", JSON.stringify(channels)); BrowserStore.setItem("channels", channels);
}, },
_getChannels: function() { _getChannels: function() {
var channels = []; return BrowserStore.getItem("channels", []);
try {
channels = JSON.parse(BrowserStore.getItem("channels"));
}
catch (err) {
}
if (channels == null) {
channels = [];
}
return channels;
}, },
_storeChannelMembers: function(channelMembers) { _storeChannelMembers: function(channelMembers) {
BrowserStore.setItem("channel_members", JSON.stringify(channelMembers)); BrowserStore.setItem("channel_members", channelMembers);
}, },
_getChannelMembers: function() { _getChannelMembers: function() {
var members = {}; return BrowserStore.getItem("channel_members", {});
try {
members = JSON.parse(BrowserStore.getItem("channel_members"));
}
catch (err) {
}
if (members == null) {
members = {};
}
return members;
}, },
_storeMoreChannels: function(channels) { _storeMoreChannels: function(channels) {
BrowserStore.setItem("more_channels", JSON.stringify(channels)); BrowserStore.setItem("more_channels", channels);
}, },
_getMoreChannels: function() { _getMoreChannels: function() {
var channels = null; var channels = BrowserStore.getItem("more_channels");
try {
channels = JSON.parse(BrowserStore.getItem("more_channels"));
}
catch (err) {
}
if (channels == null) { if (channels == null) {
channels = {}; channels = {};
@@ -217,21 +188,10 @@ var ChannelStore = assign({}, EventEmitter.prototype, {
return channels; return channels;
}, },
_storeExtraInfos: function(extraInfos) { _storeExtraInfos: function(extraInfos) {
BrowserStore.setItem("extra_infos", JSON.stringify(extraInfos)); BrowserStore.setItem("extra_infos", extraInfos);
}, },
_getExtraInfos: function() { _getExtraInfos: function() {
var members = {}; return BrowserStore.getItem("extra_infos", {});
try {
members = JSON.parse(BrowserStore.getItem("extra_infos"));
}
catch (err) {
}
if (members == null) {
members = {};
}
return members;
} }
}); });

Просмотреть файл

@@ -29,18 +29,11 @@ var ErrorStore = assign({}, EventEmitter.prototype, {
BrowserStore.removeItem("last_error"); BrowserStore.removeItem("last_error");
}, },
getLastError: function() { getLastError: function() {
var error = null; return BrowserStore.getItem('last_error');
try {
error = JSON.parse(BrowserStore.getItem("last_error"));
}
catch (err) {
}
return error;
}, },
_storeLastError: function(error) { _storeLastError: function(error) {
BrowserStore.setItem("last_error", JSON.stringify(error)); BrowserStore.setItem("last_error", error);
}, },
}); });

Просмотреть файл

@@ -106,55 +106,27 @@ var PostStore = assign({}, EventEmitter.prototype, {
this.emitChange(); this.emitChange();
}, },
_storePosts: function(channelId, posts) { _storePosts: function(channelId, posts) {
BrowserStore.setItem("posts_" + channelId, JSON.stringify(posts)); BrowserStore.setItem("posts_" + channelId, posts);
}, },
getPosts: function(channelId) { getPosts: function(channelId) {
var posts = null; return BrowserStore.getItem("posts_" + channelId);
try {
posts = JSON.parse(BrowserStore.getItem("posts_" + channelId));
}
catch (err) {
}
return posts;
}, },
storeSearchResults: function(results, is_mention_search) { storeSearchResults: function(results, is_mention_search) {
BrowserStore.setItem("search_results", JSON.stringify(results)); BrowserStore.setItem("search_results", results);
is_mention_search = is_mention_search ? true : false; // force to bool is_mention_search = is_mention_search ? true : false; // force to bool
BrowserStore.setItem("is_mention_search", JSON.stringify(is_mention_search)); BrowserStore.setItem("is_mention_search", is_mention_search);
}, },
getSearchResults: function() { getSearchResults: function() {
var results = null; return BrowserStore.getItem("search_results");
try {
results = JSON.parse(BrowserStore.getItem("search_results"));
}
catch (err) {
}
return results;
}, },
getIsMentionSearch: function() { getIsMentionSearch: function() {
var result = false; return BrowserStore.getItem("is_mention_search");
try {
result = JSON.parse(BrowserStore.getItem("is_mention_search"));
}
catch (err) {
}
return result;
}, },
storeSelectedPost: function(post_list) { storeSelectedPost: function(post_list) {
BrowserStore.setItem("select_post", JSON.stringify(post_list)); BrowserStore.setItem("select_post", post_list);
}, },
getSelectedPost: function() { getSelectedPost: function() {
var post_list = null; return BrowserStore.getItem("select_post");
try {
post_list = JSON.parse(BrowserStore.getItem("select_post"));
}
catch (err) {
}
return post_list;
}, },
storeSearchTerm: function(term) { storeSearchTerm: function(term) {
BrowserStore.setItem("search_term", term); BrowserStore.setItem("search_term", term);
@@ -165,25 +137,24 @@ var PostStore = assign({}, EventEmitter.prototype, {
storeCurrentDraft: function(draft) { storeCurrentDraft: function(draft) {
var channel_id = ChannelStore.getCurrentId(); var channel_id = ChannelStore.getCurrentId();
var user_id = UserStore.getCurrentId(); var user_id = UserStore.getCurrentId();
BrowserStore.setItem("draft_" + channel_id + "_" + user_id, JSON.stringify(draft)); BrowserStore.setItem("draft_" + channel_id + "_" + user_id, draft);
}, },
getCurrentDraft: function() { getCurrentDraft: function() {
var channel_id = ChannelStore.getCurrentId(); var channel_id = ChannelStore.getCurrentId();
var user_id = UserStore.getCurrentId(); var user_id = UserStore.getCurrentId();
return JSON.parse(BrowserStore.getItem("draft_" + channel_id + "_" + user_id)); return BrowserStore.getItem("draft_" + channel_id + "_" + user_id);
}, },
storeDraft: function(channel_id, user_id, draft) { storeDraft: function(channel_id, user_id, draft) {
BrowserStore.setItem("draft_" + channel_id + "_" + user_id, JSON.stringify(draft)); BrowserStore.setItem("draft_" + channel_id + "_" + user_id, draft);
}, },
getDraft: function(channel_id, user_id) { getDraft: function(channel_id, user_id) {
return JSON.parse(BrowserStore.getItem("draft_" + channel_id + "_" + user_id)); return BrowserStore.getItem("draft_" + channel_id + "_" + user_id);
}, },
clearDraftUploads: function() { clearDraftUploads: function() {
BrowserStore.actionOnItemsWithPrefix("draft_", function (key, value) { BrowserStore.actionOnItemsWithPrefix("draft_", function (key, value) {
var d = JSON.parse(value); if (value) {
if (d) { value.uploadsInProgress = 0;
d['uploadsInProgress'] = 0; BrowserStore.setItem(key, value);
BrowserStore.setItem(key, JSON.stringify(d));
} }
}); });
} }

Просмотреть файл

@@ -10,8 +10,6 @@ var client = require('../utils/client.jsx');
var Constants = require('../utils/constants.jsx'); var Constants = require('../utils/constants.jsx');
var ActionTypes = Constants.ActionTypes; var ActionTypes = Constants.ActionTypes;
var BrowserStore = require('../stores/browser_store.jsx');
var CHANGE_EVENT = 'change'; var CHANGE_EVENT = 'change';
var conn; var conn;

Просмотреть файл

@@ -63,22 +63,10 @@ var TeamStore = assign({}, EventEmitter.prototype, {
this._storeTeams(teams); this._storeTeams(teams);
}, },
_storeTeams: function(teams) { _storeTeams: function(teams) {
BrowserStore.setItem("user_teams", JSON.stringify(teams)); BrowserStore.setItem("user_teams", teams);
}, },
_getTeams: function() { _getTeams: function() {
var teams = {}; return BrowserStore.getItem("user_teams", {});
try {
teams = JSON.parse(BrowserStore.getItem("user_teams"));
}
catch (err) {
}
if (teams == null) {
teams = {};
}
return teams;
} }
}); });

Просмотреть файл

@@ -8,7 +8,7 @@ var client = require('../utils/client.jsx');
var Constants = require('../utils/constants.jsx'); var Constants = require('../utils/constants.jsx');
var ActionTypes = Constants.ActionTypes; var ActionTypes = Constants.ActionTypes;
var BrowserStore = require('../stores/browser_store.jsx'); var BrowserStore = require('./browser_store.jsx');
var CHANGE_EVENT = 'change'; var CHANGE_EVENT = 'change';
var CHANGE_EVENT_SESSIONS = 'change_sessions'; var CHANGE_EVENT_SESSIONS = 'change_sessions';
@@ -18,6 +18,8 @@ var CHANGE_EVENT_STATUSES = 'change_statuses';
var UserStore = assign({}, EventEmitter.prototype, { var UserStore = assign({}, EventEmitter.prototype, {
_current_id: null,
emitChange: function(userId) { emitChange: function(userId) {
this.emit(CHANGE_EVENT, userId); this.emit(CHANGE_EVENT, userId);
}, },
@@ -64,13 +66,10 @@ var UserStore = assign({}, EventEmitter.prototype, {
this.removeListener(CHANGE_EVENT_STATUSES, callback); this.removeListener(CHANGE_EVENT_STATUSES, callback);
}, },
setCurrentId: function(id) { setCurrentId: function(id) {
if (id == null) this._current_id = id;
BrowserStore.removeGlobalItem("current_user_id");
else
BrowserStore.setGlobalItem("current_user_id", id);
}, },
getCurrentId: function(skipFetch) { getCurrentId: function(skipFetch) {
var current_id = BrowserStore.getGlobalItem("current_user_id"); var current_id = this._current_id;
// this is a speical case to force fetch the // this is a speical case to force fetch the
// current user if it's missing // current user if it's missing
@@ -97,21 +96,13 @@ var UserStore = assign({}, EventEmitter.prototype, {
this.setCurrentId(user.id); this.setCurrentId(user.id);
}, },
getLastDomain: function() { getLastDomain: function() {
var last_domain = BrowserStore.getItem("last_domain"); return BrowserStore.getItem("last_domain", '');
if (last_domain == null) {
last_domain = "";
}
return last_domain;
}, },
setLastDomain: function(domain) { setLastDomain: function(domain) {
BrowserStore.setItem("last_domain", domain); BrowserStore.setItem("last_domain", domain);
}, },
getLastEmail: function() { getLastEmail: function() {
var last_email = BrowserStore.getItem("last_email"); return BrowserStore.getItem("last_email", '');
if (last_email == null) {
last_email = "";
}
return last_email;
}, },
setLastEmail: function(email) { setLastEmail: function(email) {
BrowserStore.setItem("last_email", email); BrowserStore.setItem("last_email", email);
@@ -153,91 +144,36 @@ var UserStore = assign({}, EventEmitter.prototype, {
this._storeProfiles(ps); this._storeProfiles(ps);
}, },
_storeProfiles: function(profiles) { _storeProfiles: function(profiles) {
BrowserStore.setGlobalItem("profiles", JSON.stringify(profiles)); BrowserStore.setGlobalItem("profiles", profiles);
var profileUsernameMap = {}; var profileUsernameMap = {};
for (var id in profiles) { for (var id in profiles) {
profileUsernameMap[profiles[id].username] = profiles[id]; profileUsernameMap[profiles[id].username] = profiles[id];
} }
BrowserStore.setGlobalItem("profileUsernameMap", JSON.stringify(profileUsernameMap)); BrowserStore.setGlobalItem("profileUsernameMap", profileUsernameMap);
}, },
_getProfiles: function() { _getProfiles: function() {
var profiles = {}; return BrowserStore.getGlobalItem("profiles", {});
try {
profiles = JSON.parse(BrowserStore.getGlobalItem("profiles"));
}
catch (err) {
}
if (profiles == null) {
profiles = {};
}
return profiles;
}, },
_getProfilesUsernameMap: function() { _getProfilesUsernameMap: function() {
var profileUsernameMap = {}; return BrowserStore.getGlobalItem("profileUsernameMap", {});
try {
profileUsernameMap = JSON.parse(BrowserStore.getGlobalItem("profileUsernameMap"));
}
catch (err) {
}
if (profileUsernameMap == null) {
profileUsernameMap = {};
}
return profileUsernameMap;
}, },
setSessions: function(sessions) { setSessions: function(sessions) {
BrowserStore.setItem("sessions", JSON.stringify(sessions)); BrowserStore.setItem("sessions", sessions);
}, },
getSessions: function() { getSessions: function() {
var sessions = []; return BrowserStore.getItem("sessions", []);
try {
sessions = JSON.parse(BrowserStore.getItem("sessions"));
}
catch (err) {
}
if (sessions == null) {
sessions = [];
}
return sessions;
}, },
setAudits: function(audits) { setAudits: function(audits) {
BrowserStore.setItem("audits", JSON.stringify(audits)); BrowserStore.setItem("audits", audits);
}, },
getAudits: function() { getAudits: function() {
var audits = []; return BrowserStore.getItem("audits", []);
try {
audits = JSON.parse(BrowserStore.getItem("audits"));
}
catch (err) {
}
if (audits == null) {
audits = [];
}
return audits;
}, },
setTeams: function(teams) { setTeams: function(teams) {
BrowserStore.setItem("teams", JSON.stringify(teams)); BrowserStore.setItem("teams", teams);
}, },
getTeams: function() { getTeams: function() {
var teams = []; return BrowserStore.getItem("teams", []);
try {
teams = JSON.parse(BrowserStore.getItem("teams"));
}
catch (err) {
}
if (teams == null) {
teams = [];
}
return teams;
}, },
getCurrentMentionKeys: function() { getCurrentMentionKeys: function() {
var user = this.getCurrentUser(); var user = this.getCurrentUser();
@@ -258,11 +194,7 @@ var UserStore = assign({}, EventEmitter.prototype, {
} }
}, },
getLastVersion: function() { getLastVersion: function() {
var last_version = BrowserStore.getItem("last_version"); return BrowserStore.getItem("last_version", '');
if (last_version == null) {
last_version = "";
}
return last_version;
}, },
setLastVersion: function(version) { setLastVersion: function(version) {
BrowserStore.setItem("last_version", version); BrowserStore.setItem("last_version", version);
@@ -272,7 +204,7 @@ var UserStore = assign({}, EventEmitter.prototype, {
this.emitStatusesChange(); this.emitStatusesChange();
}, },
_setStatuses: function(statuses) { _setStatuses: function(statuses) {
BrowserStore.setItem("statuses", JSON.stringify(statuses)); BrowserStore.setItem("statuses", statuses);
}, },
setStatus: function(user_id, status) { setStatus: function(user_id, status) {
var statuses = this.getStatuses(); var statuses = this.getStatuses();
@@ -281,18 +213,7 @@ var UserStore = assign({}, EventEmitter.prototype, {
this.emitStatusesChange(); this.emitStatusesChange();
}, },
getStatuses: function() { getStatuses: function() {
var statuses = {}; return BrowserStore.getItem("statuses", {});
try {
statuses = JSON.parse(BrowserStore.getItem("statuses"));
}
catch (err) {
}
if (statuses == null) {
statuses = {};
}
return statuses;
}, },
getStatus: function(id) { getStatus: function(id) {
return this.getStatuses()[id]; return this.getStatuses()[id];
@@ -341,4 +262,3 @@ UserStore.setMaxListeners(0);
global.window.UserStore = UserStore; global.window.UserStore = UserStore;
module.exports = UserStore; module.exports = UserStore;