summaryrefslogtreecommitdiffstats
path: root/webapp/actions
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/actions')
-rw-r--r--webapp/actions/team_actions.jsx25
-rw-r--r--webapp/actions/user_actions.jsx22
-rw-r--r--webapp/actions/websocket_actions.jsx25
3 files changed, 72 insertions, 0 deletions
diff --git a/webapp/actions/team_actions.jsx b/webapp/actions/team_actions.jsx
index 4cb57961b..b091692f8 100644
--- a/webapp/actions/team_actions.jsx
+++ b/webapp/actions/team_actions.jsx
@@ -114,6 +114,31 @@ export function addUserToTeamFromInvite(data, hash, inviteId, success, error) {
);
}
+export function addUsersToTeam(teamId, userIds, success, error) {
+ Client.addUsersToTeam(
+ teamId,
+ userIds,
+ (teamMembers) => {
+ teamMembers.forEach((member) => {
+ TeamStore.removeMemberNotInTeam(teamId, member.user_id);
+ UserStore.removeProfileNotInTeam(teamId, member.user_id);
+ });
+ UserStore.emitNotInTeamChange();
+
+ if (success) {
+ success(teamMembers);
+ }
+ },
+ (err) => {
+ AsyncClient.dispatchError(err, 'addUsersToTeam');
+
+ if (error) {
+ error(err);
+ }
+ }
+ );
+}
+
export function getInviteInfo(inviteId, success, error) {
Client.getInviteInfo(
inviteId,
diff --git a/webapp/actions/user_actions.jsx b/webapp/actions/user_actions.jsx
index b9d4ec376..1ab85922d 100644
--- a/webapp/actions/user_actions.jsx
+++ b/webapp/actions/user_actions.jsx
@@ -492,6 +492,28 @@ export function searchUsers(term, teamId = TeamStore.getCurrentId(), options = {
);
}
+export function searchUsersNotInTeam(term, teamId = TeamStore.getCurrentId(), options = {}, success, error) {
+ Client.searchUsersNotInTeam(
+ term,
+ teamId,
+ options,
+ (data) => {
+ loadStatusesForProfilesList(data);
+
+ if (success) {
+ success(data);
+ }
+ },
+ (err) => {
+ AsyncClient.dispatchError(err, 'searchUsersNotInTeam');
+
+ if (error) {
+ error(err);
+ }
+ }
+ );
+}
+
export function autocompleteUsersInChannel(username, channelId, success, error) {
Client.autocompleteUsersInChannel(
username,
diff --git a/webapp/actions/websocket_actions.jsx b/webapp/actions/websocket_actions.jsx
index ab798df28..e9ebea472 100644
--- a/webapp/actions/websocket_actions.jsx
+++ b/webapp/actions/websocket_actions.jsx
@@ -153,6 +153,10 @@ function handleEvent(msg) {
handleUpdateTeamEvent(msg);
break;
+ case SocketEvents.ADDED_TO_TEAM:
+ handleTeamAddedEvent(msg);
+ break;
+
case SocketEvents.USER_ADDED:
handleUserAddedEvent(msg);
break;
@@ -241,6 +245,27 @@ function handlePostDeleteEvent(msg) {
GlobalActions.emitPostDeletedEvent(post);
}
+function handleTeamAddedEvent(msg) {
+ Client.getTeam(msg.data.team_id, (team) => {
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_TEAM,
+ team
+ });
+
+ Client.getMyTeamMembers((data) => {
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_MY_TEAM_MEMBERS,
+ team_members: data
+ });
+ AsyncClient.getMyTeamsUnread();
+ }, (err) => {
+ AsyncClient.dispatchError(err, 'getMyTeamMembers');
+ });
+ }, (err) => {
+ AsyncClient.dispatchError(err, 'getTeam');
+ });
+}
+
function handleLeaveTeamEvent(msg) {
if (UserStore.getCurrentId() === msg.data.user_id) {
TeamStore.removeMyTeamMember(msg.data.team_id);