summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2016-08-22 16:39:05 -0800
committerJoram Wilander <jwawilander@gmail.com>2016-08-22 20:39:05 -0400
commite1fdc63f28707a180578ff97b08d29d005f07010 (patch)
treea809eeeaf9c2d0cd330d282955582f36c9e59a77 /webapp
parent05f8d138f434141b2a23d29cabaebdbd0482d879 (diff)
downloadchat-e1fdc63f28707a180578ff97b08d29d005f07010.tar.gz
chat-e1fdc63f28707a180578ff97b08d29d005f07010.tar.bz2
chat-e1fdc63f28707a180578ff97b08d29d005f07010.zip
PLT-3593 fixing issue of removing from team DM list (#3857)
Diffstat (limited to 'webapp')
-rw-r--r--webapp/actions/user_actions.jsx2
-rw-r--r--webapp/actions/websocket_actions.jsx4
-rw-r--r--webapp/components/sidebar.jsx2
-rw-r--r--webapp/routes/route_team.jsx19
-rw-r--r--webapp/stores/team_store.jsx13
-rw-r--r--webapp/utils/async_client.jsx8
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');