diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:04:13 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:11:58 -0700 |
commit | d8bd57901e33a7057e26e782e295099ffcc0da89 (patch) | |
tree | e12dfc8cad42b1576756d19d7fbfd82646a009bf /webapp/stores/team_store.jsx | |
parent | 7bc8e9a08dfde56387f946fdf5086252aa4d0491 (diff) | |
download | chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.gz chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.bz2 chat-d8bd57901e33a7057e26e782e295099ffcc0da89.zip |
Removing webapp
Diffstat (limited to 'webapp/stores/team_store.jsx')
-rw-r--r-- | webapp/stores/team_store.jsx | 470 |
1 files changed, 0 insertions, 470 deletions
diff --git a/webapp/stores/team_store.jsx b/webapp/stores/team_store.jsx deleted file mode 100644 index 1c38ba5e7..000000000 --- a/webapp/stores/team_store.jsx +++ /dev/null @@ -1,470 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; -import EventEmitter from 'events'; -import UserStore from 'stores/user_store.jsx'; -import ChannelStore from 'stores/channel_store.jsx'; - -import Constants from 'utils/constants.jsx'; -const NotificationPrefs = Constants.NotificationPrefs; - -import {getSiteURL} from 'utils/url.jsx'; -import {isSystemMessage, isFromWebhook} from 'utils/post_utils.jsx'; -const ActionTypes = Constants.ActionTypes; - -const CHANGE_EVENT = 'change'; -const STATS_EVENT = 'stats'; -const UNREAD_EVENT = 'unread'; - -import store from 'stores/redux_store.jsx'; -import * as Selectors from 'mattermost-redux/selectors/entities/teams'; -import {TeamTypes} from 'mattermost-redux/action_types'; - -var Utils; - -class TeamStoreClass extends EventEmitter { - constructor() { - super(); - - this.entities = store.getState().entities.teams; - - store.subscribe(() => { - const newEntities = store.getState().entities.teams; - let doEmit = false; - - if (newEntities.currentTeamId !== this.entities.currentTeamId) { - doEmit = true; - } - if (newEntities.teams !== this.entities.teams) { - doEmit = true; - } - if (newEntities.myMembers !== this.entities.myMembers) { - doEmit = true; - this.emitUnreadChange(); - } - if (newEntities.membersInTeam !== this.entities.membersInTeam) { - doEmit = true; - } - if (newEntities.stats !== this.entities.stats) { - this.emitStatsChange(); - } - - if (doEmit) { - this.emitChange(); - } - - this.entities = newEntities; - }); - } - - emitChange() { - this.emit(CHANGE_EVENT); - } - - addChangeListener(callback) { - this.on(CHANGE_EVENT, callback); - } - - removeChangeListener(callback) { - this.removeListener(CHANGE_EVENT, callback); - } - - emitStatsChange() { - this.emit(STATS_EVENT); - } - - addStatsChangeListener(callback) { - this.on(STATS_EVENT, callback); - } - - removeStatsChangeListener(callback) { - this.removeListener(STATS_EVENT, callback); - } - - emitUnreadChange() { - this.emit(UNREAD_EVENT); - } - - addUnreadChangeListener(callback) { - this.on(UNREAD_EVENT, callback); - } - - removeUnreadChangeListener(callback) { - this.removeListener(UNREAD_EVENT, callback); - } - - get(id) { - var c = this.getAll(); - return c[id]; - } - - getByName(name) { - const t = this.getAll(); - - for (const id in t) { - if (t.hasOwnProperty(id)) { - if (t[id].name === name) { - return t[id]; - } - } - } - - return null; - } - - getAll() { - const list = Selectors.getMyTeams(store.getState()); - const teams = {}; - list.forEach((t) => { - teams[t.id] = t; - }); - return teams; - } - - getCurrentId() { - return Selectors.getCurrentTeamId(store.getState()); - } - - setCurrentId(id) { - store.dispatch({ - type: TeamTypes.SELECT_TEAM, - data: id - }); - } - - getCurrent() { - const team = Selectors.getCurrentTeam(store.getState()); - - if (team) { - return team; - } - - return null; - } - - getCurrentTeamUrl() { - return this.getTeamUrl(this.getCurrentId()); - } - - getCurrentTeamRelativeUrl() { - if (this.getCurrent()) { - return '/' + this.getCurrent().name; - } - return ''; - } - - getCurrentInviteLink() { - const current = this.getCurrent(); - - if (current) { - return getSiteURL() + '/signup_user_complete/?id=' + current.invite_id; - } - - return ''; - } - - getTeamUrl(id) { - const team = this.get(id); - - if (!team) { - return ''; - } - - return getSiteURL() + '/' + team.name; - } - - getCurrentStats() { - return this.getStats(this.getCurrentId()); - } - - getStats(teamId) { - let stats; - - if (teamId) { - stats = Selectors.getTeamStats(store.getState())[teamId]; - } - - if (stats) { - // create a defensive copy - stats = Object.assign({}, stats); - } else { - stats = {member_count: 0}; - } - - return stats; - } - - saveTeam(team) { - const teams = {}; - teams[team.id] = team; - this.saveTeams(teams); - } - - saveTeams(teams) { - store.dispatch({ - type: TeamTypes.RECEIVED_TEAMS, - data: teams - }); - } - - updateTeam(team) { - const t = JSON.parse(team); - const teams = Object.assign({}, this.getAll(), this.getTeamListings()); - if (teams && teams[t.id]) { - this.saveTeam(t); - } - } - - saveMyTeam(team) { - this.saveTeam(team); - this.setCurrentId(team.id); - } - - saveStats(teamId, stats) { - store.dispatch({ - type: TeamTypes.RECEIVED_TEAM_STATS, - data: stats - }); - } - - saveMyTeamMembers(members) { - store.dispatch({ - type: TeamTypes.RECEIVED_MY_TEAM_MEMBERS, - data: members - }); - } - - appendMyTeamMember(member) { - const members = this.getMyTeamMembers(); - members.push(member); - this.saveMyTeamMembers(members); - } - - saveMyTeamMembersUnread(members) { - const myMembers = this.getMyTeamMembers(); - for (let i = 0; i < myMembers.length; i++) { - const team = myMembers[i]; - const member = members.filter((m) => m.team_id === team.team_id)[0]; - - if (member) { - myMembers[i] = Object.assign({}, - team, - { - msg_count: member.msg_count, - mention_count: member.mention_count - }); - } - } - - this.saveMyTeamMembers(myMembers); - } - - removeMyTeamMember(teamId) { - const myMembers = this.getMyTeamMembers(); - for (let i = 0; i < myMembers.length; i++) { - if (myMembers[i].team_id === teamId) { - myMembers.splice(i, 1); - } - } - - this.saveMyTeamMembers(myMembers); - } - - getMyTeamMembers() { - return Object.values(Selectors.getTeamMemberships(store.getState())); - } - - saveMembersInTeam(teamId = this.getCurrentId(), members) { - store.dispatch({ - type: TeamTypes.RECEIVED_MEMBERS_IN_TEAM, - data: Object.values(members) - }); - } - - removeMemberInTeam(teamId = this.getCurrentId(), userId) { - store.dispatch({ - type: TeamTypes.REMOVE_MEMBER_FROM_TEAM, - data: {team_id: teamId, user_id: userId} - }); - } - - getMembersInTeam(teamId = this.getCurrentId()) { - return Selectors.getMembersInTeams(store.getState())[teamId] || {}; - } - - getMemberInTeam(teamId = this.getCurrentId(), userId) { - return Selectors.getTeamMember(store.getState(), teamId, userId); - } - - hasActiveMemberInTeam(teamId = this.getCurrentId(), userId) { - if (this.getMemberInTeam(teamId, userId)) { - return true; - } - - return false; - } - - getTeamListings() { - return Selectors.getJoinableTeams(store.getState()); - } - - isTeamAdminForAnyTeam() { - if (!Utils) { - Utils = require('utils/utils.jsx'); //eslint-disable-line global-require - } - - for (const teamMember of this.getMyTeamMembers()) { - if (Utils.isAdmin(teamMember.roles)) { - return true; - } - } - - return false; - } - - isTeamAdminForCurrentTeam() { - return this.isTeamAdmin(UserStore.getCurrentId(), this.getCurrentId()); - } - - isTeamAdmin(userId, teamId) { - if (!Utils) { - Utils = require('utils/utils.jsx'); //eslint-disable-line global-require - } - - var teamMembers = this.getMyTeamMembers(); - const teamMember = teamMembers.find((m) => m.user_id === userId && m.team_id === teamId); - - if (teamMember) { - return Utils.isAdmin(teamMember.roles); - } - - return false; - } - - updateMyRoles(member) { - const teamMembers = this.getMyTeamMembers(); - const teamMember = teamMembers.find((m) => m.user_id === member.user_id && m.team_id === member.team_id); - - if (teamMember) { - const newMember = Object.assign({}, teamMember, { - roles: member.roles - }); - - store.dispatch({ - type: TeamTypes.RECEIVED_MY_TEAM_MEMBER, - data: newMember - }); - } - } - - subtractUnread(teamId, msgs, mentions) { - let member = this.getMyTeamMembers().filter((m) => m.team_id === teamId)[0]; - if (member) { - const msgCount = member.msg_count - msgs; - const mentionCount = member.mention_count - mentions; - - member = Object.assign({}, member); - member.msg_count = (msgCount > 0) ? msgCount : 0; - member.mention_count = (mentionCount > 0) ? mentionCount : 0; - - store.dispatch({ - type: TeamTypes.RECEIVED_MY_TEAM_MEMBER, - data: member - }); - } - } - - incrementMessages(id, channelId) { - const channelMember = ChannelStore.getMyMember(channelId); - if (channelMember && channelMember.notify_props && channelMember.notify_props.mark_unread === NotificationPrefs.MENTION) { - return; - } - - const member = Object.assign({}, this.getMyTeamMembers().filter((m) => m.team_id === id)[0]); - member.msg_count++; - - store.dispatch({ - type: TeamTypes.RECEIVED_MY_TEAM_MEMBER, - data: member - }); - } - - incrementMentionsIfNeeded(id, msgProps) { - let mentions = []; - if (msgProps && msgProps.mentions) { - mentions = JSON.parse(msgProps.mentions); - } - - if (mentions.indexOf(UserStore.getCurrentId()) !== -1) { - const member = Object.assign({}, this.getMyTeamMembers().filter((m) => m.team_id === id)[0]); - member.mention_count++; - - store.dispatch({ - type: TeamTypes.RECEIVED_MY_TEAM_MEMBER, - data: member - }); - } - } -} - -var TeamStore = new TeamStoreClass(); - -TeamStore.dispatchToken = AppDispatcher.register((payload) => { - var action = payload.action; - - switch (action.type) { - case ActionTypes.RECEIVED_MY_TEAM: - TeamStore.saveMyTeam(action.team); - break; - case ActionTypes.RECEIVED_TEAM: - TeamStore.saveTeam(action.team); - break; - case ActionTypes.CREATED_TEAM: - TeamStore.saveTeam(action.team); - TeamStore.appendMyTeamMember(action.member); - break; - case ActionTypes.UPDATE_TEAM: - TeamStore.saveTeam(action.team); - break; - case ActionTypes.RECEIVED_ALL_TEAMS: - TeamStore.saveTeams(action.teams); - break; - case ActionTypes.RECEIVED_MY_TEAM_MEMBERS: - TeamStore.saveMyTeamMembers(action.team_members); - break; - case ActionTypes.RECEIVED_MY_TEAMS_UNREAD: - TeamStore.saveMyTeamMembersUnread(action.team_members); - break; - case ActionTypes.RECEIVED_ALL_TEAM_LISTINGS: - TeamStore.saveTeamListings(action.teams); - break; - case ActionTypes.RECEIVED_MEMBERS_IN_TEAM: - TeamStore.saveMembersInTeam(action.team_id, action.team_members); - break; - case ActionTypes.RECEIVED_TEAM_STATS: - TeamStore.saveStats(action.team_id, action.stats); - break; - case ActionTypes.RECEIVED_POST: - if (Constants.IGNORE_POST_TYPES.indexOf(action.post.type) !== -1) { - return; - } - - if (action.post.user_id === UserStore.getCurrentId() && !isSystemMessage(action.post) && !isFromWebhook(action.post)) { - return; - } - - var id = action.websocketMessageProps ? action.websocketMessageProps.team_id : null; - if (id && TeamStore.getCurrentId() !== id) { - TeamStore.incrementMessages(id, action.post.channel_id); - TeamStore.incrementMentionsIfNeeded(id, action.websocketMessageProps); - } - break; - default: - } -}); - -TeamStore.setMaxListeners(15); - -window.TeamStore = TeamStore; -export default TeamStore; |