Merge pull request #163 from ralder/fix-and-refactor-browser-store
[webui] second bugfix for pr #150 and refactor BrowserStore
Этот коммит содержится в:
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user