diff options
author | =Corey Hulen <corey@hulen.com> | 2015-10-27 11:52:13 -0700 |
---|---|---|
committer | =Corey Hulen <corey@hulen.com> | 2015-10-27 11:52:13 -0700 |
commit | a133f82421d2c67ef32b0aae69a6646a14f97dfc (patch) | |
tree | 35fe7dcf6b208437111c5d3a843eabf2f4703101 /web/react/utils/utils.jsx | |
parent | e22b9f53034280cd3b730c03520469dca4046484 (diff) | |
parent | e0f69060fa462390779dd7b4cf6b67a12c3974ba (diff) | |
download | chat-a133f82421d2c67ef32b0aae69a6646a14f97dfc.tar.gz chat-a133f82421d2c67ef32b0aae69a6646a14f97dfc.tar.bz2 chat-a133f82421d2c67ef32b0aae69a6646a14f97dfc.zip |
Merge branch 'master' into PLT-340
Diffstat (limited to 'web/react/utils/utils.jsx')
-rw-r--r-- | web/react/utils/utils.jsx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 7a876d518..fadab27a7 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -8,6 +8,7 @@ var PreferenceStore = require('../stores/preference_store.jsx'); var TeamStore = require('../stores/team_store.jsx'); var Constants = require('../utils/constants.jsx'); var ActionTypes = Constants.ActionTypes; +var Client = require('./client.jsx'); var AsyncClient = require('./async_client.jsx'); var client = require('./client.jsx'); var Autolinker = require('autolinker'); @@ -1009,3 +1010,44 @@ export function windowWidth() { export function windowHeight() { return $(window).height(); } + +export function openDirectChannelToUser(user, successCb, errorCb) { + const channelName = this.getDirectChannelName(UserStore.getCurrentId(), user.id); + let channel = ChannelStore.getByName(channelName); + + const preference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW, user.id, 'true'); + AsyncClient.savePreferences([preference]); + + if (channel) { + if ($.isFunction(successCb)) { + successCb(channel, true); + } + } else { + channel = { + name: channelName, + last_post_at: 0, + total_msg_count: 0, + type: 'D', + display_name: user.username, + teammate_id: user.id, + status: UserStore.getStatus(user.id) + }; + + Client.createDirectChannel( + channel, + user.id, + (data) => { + AsyncClient.getChannel(data.id); + if ($.isFunction(successCb)) { + successCb(data, false); + } + }, + () => { + window.location.href = TeamStore.getCurrentTeamUrl() + '/channels/' + channelName; + if ($.isFunction(errorCb)) { + errorCb(); + } + } + ); + } +} |