diff options
Diffstat (limited to 'webapp/stores')
-rw-r--r-- | webapp/stores/browser_store.jsx | 12 | ||||
-rw-r--r-- | webapp/stores/error_store.jsx | 11 | ||||
-rw-r--r-- | webapp/stores/preference_store.jsx | 2 | ||||
-rw-r--r-- | webapp/stores/team_store.jsx | 47 | ||||
-rw-r--r-- | webapp/stores/user_store.jsx | 33 |
5 files changed, 91 insertions, 14 deletions
diff --git a/webapp/stores/browser_store.jsx b/webapp/stores/browser_store.jsx index d605aac80..2dae78f46 100644 --- a/webapp/stores/browser_store.jsx +++ b/webapp/stores/browser_store.jsx @@ -35,18 +35,6 @@ class BrowserStoreClass { this.isSignallingLogin = this.isSignallingLogin.bind(this); } - checkVersion() { - var currentVersion = this.getGlobalItem('storage_version'); - if (currentVersion !== global.window.mm_config.Version) { - this.clearAll(); - try { - this.setGlobalItem('storage_version', global.window.mm_config.Version); - } catch (e) { - // Do nothing - } - } - } - setItem(name, value) { this.setGlobalItem(getPrefix() + name, value); } diff --git a/webapp/stores/error_store.jsx b/webapp/stores/error_store.jsx index 715029185..3e043dd78 100644 --- a/webapp/stores/error_store.jsx +++ b/webapp/stores/error_store.jsx @@ -20,6 +20,12 @@ class ErrorStoreClass extends EventEmitter { this.removeChangeListener = this.removeChangeListener.bind(this); this.getLastError = this.getLastError.bind(this); this.storeLastError = this.storeLastError.bind(this); + this.getIgnoreEmailPreview = this.getIgnoreEmailPreview.bind(this); + this.ignore_email_preview = false; + } + + getIgnoreEmailPreview() { + return this.ignore_email_preview; } emitChange() { @@ -57,6 +63,11 @@ class ErrorStoreClass extends EventEmitter { } clearLastError() { + var lastError = this.getLastError(); + if (lastError && lastError.email_preview) { + this.ignore_email_preview = true; + } + BrowserStore.removeGlobalItem('last_error'); BrowserStore.removeGlobalItem('last_error_conn'); this.emitChange(); diff --git a/webapp/stores/preference_store.jsx b/webapp/stores/preference_store.jsx index fcfd1c426..1a461f39f 100644 --- a/webapp/stores/preference_store.jsx +++ b/webapp/stores/preference_store.jsx @@ -112,4 +112,4 @@ class PreferenceStoreClass extends EventEmitter { const PreferenceStore = new PreferenceStoreClass(); export default PreferenceStore; -window.PreferenceStore = PreferenceStore; +global.window.PreferenceStore = PreferenceStore; diff --git a/webapp/stores/team_store.jsx b/webapp/stores/team_store.jsx index e1fc9167d..356df7b07 100644 --- a/webapp/stores/team_store.jsx +++ b/webapp/stores/team_store.jsx @@ -33,7 +33,14 @@ class TeamStoreClass extends EventEmitter { this.getCurrentInviteLink = this.getCurrentInviteLink.bind(this); this.saveTeam = this.saveTeam.bind(this); + this.clear(); + } + + clear() { this.teams = {}; + this.team_members = []; + this.members_for_team = []; + this.teamListings = {}; this.currentTeamId = ''; } @@ -119,6 +126,34 @@ class TeamStoreClass extends EventEmitter { this.saveTeam(team); this.currentTeamId = team.id; } + + saveTeamMembers(members) { + this.team_members = members; + } + + appendTeamMember(member) { + this.team_members.push(member); + } + + getTeamMembers() { + return this.team_members; + } + + saveMembersForTeam(members) { + this.members_for_team = members; + } + + getMembersForTeam() { + return this.members_for_team; + } + + saveTeamListings(teams) { + this.teamListings = teams; + } + + getTeamListings() { + return this.teamListings; + } } var TeamStore = new TeamStoreClass(); @@ -135,6 +170,18 @@ TeamStore.dispatchToken = AppDispatcher.register((payload) => { TeamStore.saveTeams(action.teams); TeamStore.emitChange(); break; + case ActionTypes.RECEIVED_TEAM_MEMBERS: + TeamStore.saveTeamMembers(action.team_members); + TeamStore.emitChange(); + break; + case ActionTypes.RECEIVED_ALL_TEAM_LISTINGS: + TeamStore.saveTeamListings(action.teams); + TeamStore.emitChange(); + break; + case ActionTypes.RECEIVED_MEMBERS_FOR_TEAM: + TeamStore.saveMembersForTeam(action.team_members); + TeamStore.emitChange(); + break; default: } }); diff --git a/webapp/stores/user_store.jsx b/webapp/stores/user_store.jsx index 4213e6e8c..2c6bfade3 100644 --- a/webapp/stores/user_store.jsx +++ b/webapp/stores/user_store.jsx @@ -16,11 +16,17 @@ const CHANGE_EVENT_STATUSES = 'change_statuses'; class UserStoreClass extends EventEmitter { constructor() { super(); + this.clear(); + } + + clear() { this.profiles = {}; + this.direct_profiles = {}; this.statuses = {}; this.sessions = {}; this.audits = {}; this.currentUserId = ''; + this.noAccounts = false; } emitChange(userId) { @@ -116,7 +122,12 @@ class UserStoreClass extends EventEmitter { return this.getCurrentUser(); } - return this.getProfiles()[userId]; + const user = this.getProfiles()[userId]; + if (user) { + return user; + } + + return this.getDirectProfiles()[userId]; } getProfileByUsername(username) { @@ -137,6 +148,14 @@ class UserStoreClass extends EventEmitter { return profileUsernameMap; } + getDirectProfiles() { + return this.direct_profiles; + } + + saveDirectProfiles(profiles) { + this.direct_profiles = profiles; + } + getProfiles() { return this.profiles; } @@ -259,6 +278,14 @@ class UserStoreClass extends EventEmitter { getStatus(id) { return this.getStatuses()[id]; } + + getNoAccounts() { + return this.noAccounts; + } + + setNoAccounts(noAccounts) { + this.noAccounts = noAccounts; + } } var UserStore = new UserStoreClass(); @@ -272,6 +299,10 @@ UserStore.dispatchToken = AppDispatcher.register((payload) => { UserStore.saveProfiles(action.profiles); UserStore.emitChange(); break; + case ActionTypes.RECEIVED_DIRECT_PROFILES: + UserStore.saveDirectProfiles(action.profiles); + UserStore.emitChange(); + break; case ActionTypes.RECEIVED_ME: UserStore.setCurrentUser(action.me); UserStore.emitChange(action.me.id); |