summaryrefslogtreecommitdiffstats
path: root/webapp/utils/async_client.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/utils/async_client.jsx')
-rw-r--r--webapp/utils/async_client.jsx74
1 files changed, 73 insertions, 1 deletions
diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx
index 9bcb4e07f..2d8e76fc2 100644
--- a/webapp/utils/async_client.jsx
+++ b/webapp/utils/async_client.jsx
@@ -166,12 +166,21 @@ export function updateLastViewedAt(id, active) {
channelId,
isActive,
() => {
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_PREFERENCE,
+ preference: {
+ category: 'last',
+ name: TeamStore.getCurrentId(),
+ value: channelId
+ }
+ });
+
callTracker[`updateLastViewed${channelId}`] = 0;
ErrorStore.clearLastError();
},
(err) => {
callTracker[`updateLastViewed${channelId}`] = 0;
- var count = ErrorStore.getConnectionErrorCount();
+ const count = ErrorStore.getConnectionErrorCount();
ErrorStore.setConnectionErrorCount(count + 1);
dispatchError(err, 'updateLastViewedAt');
}
@@ -203,6 +212,14 @@ export function setLastViewedAt(lastViewedAt, id) {
channelId,
lastViewedAt,
() => {
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_PREFERENCE,
+ preference: {
+ category: 'last',
+ name: TeamStore.getCurrentId(),
+ value: channelId
+ }
+ });
callTracker[`setLastViewedAt${channelId}${lastViewedAt}`] = 0;
ErrorStore.clearLastError();
},
@@ -847,6 +864,61 @@ export function getTeamMember(teamId, userId) {
);
}
+export function getMyTeamMembers() {
+ const callName = 'getMyTeamMembers';
+ if (isCallInProgress(callName)) {
+ return;
+ }
+
+ callTracker[callName] = utils.getTimestamp();
+ Client.getMyTeamMembers(
+ (data) => {
+ callTracker[callName] = 0;
+
+ const members = {};
+ for (const member of data) {
+ members[member.team_id] = member;
+ }
+
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_MY_TEAM_MEMBERS_UNREAD,
+ team_members: members
+ });
+ },
+ (err) => {
+ callTracker[callName] = 0;
+ dispatchError(err, 'getMyTeamMembers');
+ }
+ );
+}
+
+export function getMyTeamsUnread(teamId) {
+ const members = TeamStore.getMyTeamMembers();
+ if (members.length > 1) {
+ const callName = 'getMyTeamsUnread';
+ if (isCallInProgress(callName)) {
+ return;
+ }
+
+ callTracker[callName] = utils.getTimestamp();
+ Client.getMyTeamsUnread(
+ teamId,
+ (data) => {
+ callTracker[callName] = 0;
+
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_MY_TEAMS_UNREAD,
+ team_members: data
+ });
+ },
+ (err) => {
+ callTracker[callName] = 0;
+ dispatchError(err, 'getMyTeamsUnread');
+ }
+ );
+ }
+}
+
export function getTeamStats(teamId) {
const callName = `getTeamStats${teamId}`;
if (isCallInProgress(callName)) {