diff options
author | Corey Hulen <corey@hulen.com> | 2016-08-22 16:39:05 -0800 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2016-08-22 20:39:05 -0400 |
commit | e1fdc63f28707a180578ff97b08d29d005f07010 (patch) | |
tree | a809eeeaf9c2d0cd330d282955582f36c9e59a77 | |
parent | 05f8d138f434141b2a23d29cabaebdbd0482d879 (diff) | |
download | chat-e1fdc63f28707a180578ff97b08d29d005f07010.tar.gz chat-e1fdc63f28707a180578ff97b08d29d005f07010.tar.bz2 chat-e1fdc63f28707a180578ff97b08d29d005f07010.zip |
PLT-3593 fixing issue of removing from team DM list (#3857)
-rw-r--r-- | webapp/actions/user_actions.jsx | 2 | ||||
-rw-r--r-- | webapp/actions/websocket_actions.jsx | 4 | ||||
-rw-r--r-- | webapp/components/sidebar.jsx | 2 | ||||
-rw-r--r-- | webapp/routes/route_team.jsx | 19 | ||||
-rw-r--r-- | webapp/stores/team_store.jsx | 13 | ||||
-rw-r--r-- | webapp/utils/async_client.jsx | 8 |
6 files changed, 37 insertions, 11 deletions
diff --git a/webapp/actions/user_actions.jsx b/webapp/actions/user_actions.jsx index 054bb017f..ede1ebb7a 100644 --- a/webapp/actions/user_actions.jsx +++ b/webapp/actions/user_actions.jsx @@ -30,8 +30,8 @@ export function switchFromLdapToEmail(email, password, ldapPassword, onSuccess, } export function getMoreDmList() { - AsyncClient.getProfilesForDirectMessageList(); AsyncClient.getTeamMembers(TeamStore.getCurrentId()); + AsyncClient.getProfilesForDirectMessageList(); } export function saveTheme(teamId, theme, onSuccess, onError) { diff --git a/webapp/actions/websocket_actions.jsx b/webapp/actions/websocket_actions.jsx index 9548a58dd..fb0fbf513 100644 --- a/webapp/actions/websocket_actions.jsx +++ b/webapp/actions/websocket_actions.jsx @@ -79,7 +79,10 @@ function handleReconnect() { if (Client.teamId) { AsyncClient.getChannels(); AsyncClient.getPosts(ChannelStore.getCurrentId()); + AsyncClient.getTeamMembers(TeamStore.getCurrentId()); + AsyncClient.getProfiles(); } + getStatuses(); ErrorStore.clearLastError(); ErrorStore.emitChange(); @@ -183,6 +186,7 @@ function handlePostDeleteEvent(msg) { } function handleNewUserEvent() { + AsyncClient.getTeamMembers(TeamStore.getCurrentId()); AsyncClient.getProfiles(); AsyncClient.getDirectProfiles(); AsyncClient.getChannelExtraInfo(); diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index 354d1f05c..27fec8822 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -133,7 +133,7 @@ export default class Sidebar extends React.Component { directChannel.teammate_id = teammateId; directChannel.status = UserStore.getStatus(teammateId) || 'offline'; - if (UserStore.hasTeamProfile(teammateId)) { + if (UserStore.hasTeamProfile(teammateId) && TeamStore.hasActiveMemberForTeam(teammateId)) { directChannels.push(directChannel); } else { directNonTeamChannels.push(directChannel); diff --git a/webapp/routes/route_team.jsx b/webapp/routes/route_team.jsx index 15217bfd2..71abd46fb 100644 --- a/webapp/routes/route_team.jsx +++ b/webapp/routes/route_team.jsx @@ -78,6 +78,7 @@ function preNeedsTeam(nextState, replace, callback) { var d1 = $.Deferred(); //eslint-disable-line new-cap var d2 = $.Deferred(); //eslint-disable-line new-cap + var d3 = $.Deferred(); //eslint-disable-line new-cap Client.getChannels( (data) => { @@ -110,7 +111,23 @@ function preNeedsTeam(nextState, replace, callback) { } ); - $.when(d1, d2).done(() => { + Client.getTeamMembers( + TeamStore.getCurrentId(), + (data) => { + AppDispatcher.handleServerAction({ + type: ActionTypes.RECEIVED_MEMBERS_FOR_TEAM, + team_members: data + }); + + d3.resolve(); + }, + (err) => { + AsyncClient.dispatchError(err, 'getTeamMembers'); + d3.resolve(); + } + ); + + $.when(d1, d2, d3).done(() => { callback(); }); } diff --git a/webapp/stores/team_store.jsx b/webapp/stores/team_store.jsx index e59f0ca43..70cf061f8 100644 --- a/webapp/stores/team_store.jsx +++ b/webapp/stores/team_store.jsx @@ -157,6 +157,19 @@ class TeamStoreClass extends EventEmitter { return this.members_for_team; } + hasActiveMemberForTeam(userId) { + for (var index in this.members_for_team) { + if (this.members_for_team.hasOwnProperty(index)) { + if (this.members_for_team[index].user_id === userId && + this.members_for_team[index].team_id === this.currentTeamId) { + return this.members_for_team[index].delete_at === 0; + } + } + } + + return false; + } + saveTeamListings(teams) { this.teamListings = teams; } diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx index 3941442b1..74064169f 100644 --- a/webapp/utils/async_client.jsx +++ b/webapp/utils/async_client.jsx @@ -584,8 +584,6 @@ export function getPostsPage(id, maxPosts) { checkLatest: true, post_list: data }); - - getProfiles(); }, (err) => { dispatchError(err, 'getPostsPage'); @@ -632,8 +630,6 @@ export function getPosts(id) { numRequested: 0, post_list: data }); - - getProfiles(); }, (err) => { dispatchError(err, 'getPosts'); @@ -668,8 +664,6 @@ export function getPostsBefore(postId, offset, numPost, isPost) { post_list: data, isPost }); - - getProfiles(); }, (err) => { dispatchError(err, 'getPostsBefore'); @@ -704,8 +698,6 @@ export function getPostsAfter(postId, offset, numPost, isPost) { post_list: data, isPost }); - - getProfiles(); }, (err) => { dispatchError(err, 'getPostsAfter'); |