summaryrefslogtreecommitdiffstats
path: root/webapp/routes/route_team.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/routes/route_team.jsx')
-rw-r--r--webapp/routes/route_team.jsx347
1 files changed, 0 insertions, 347 deletions
diff --git a/webapp/routes/route_team.jsx b/webapp/routes/route_team.jsx
deleted file mode 100644
index 59cf6d673..000000000
--- a/webapp/routes/route_team.jsx
+++ /dev/null
@@ -1,347 +0,0 @@
-// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import $ from 'jquery';
-import * as RouteUtils from 'routes/route_utils.jsx';
-import {browserHistory} from 'react-router/es6';
-
-import TeamStore from 'stores/team_store.jsx';
-import UserStore from 'stores/user_store.jsx';
-import * as GlobalActions from 'actions/global_actions.jsx';
-import {loadStatusesForChannelAndSidebar} from 'actions/status_actions.jsx';
-import {openDirectChannelToUser} from 'actions/channel_actions.jsx';
-import {reconnect} from 'actions/websocket_actions.jsx';
-import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
-import Constants from 'utils/constants.jsx';
-const ActionTypes = Constants.ActionTypes;
-import ChannelStore from 'stores/channel_store.jsx';
-import BrowserStore from 'stores/browser_store.jsx';
-import * as Utils from 'utils/utils.jsx';
-
-import emojiRoute from 'routes/route_emoji.jsx';
-import integrationsRoute from 'routes/route_integrations.jsx';
-
-import {loadNewDMIfNeeded, loadNewGMIfNeeded, loadProfilesForSidebar} from 'actions/user_actions.jsx';
-
-// Redux actions
-import store from 'stores/redux_store.jsx';
-const dispatch = store.dispatch;
-const getState = store.getState;
-
-import {fetchMyChannelsAndMembers, joinChannel} from 'mattermost-redux/actions/channels';
-import {getMyTeamUnreads} from 'mattermost-redux/actions/teams';
-import {getUser, getUserByUsername, getUserByEmail} from 'mattermost-redux/actions/users';
-
-function onChannelEnter(nextState, replace, callback) {
- doChannelChange(nextState, replace, callback);
-}
-
-function doChannelChange(state, replace, callback) {
- let channel;
- if (state.location.query.fakechannel) {
- channel = JSON.parse(state.location.query.fakechannel);
- } else {
- channel = ChannelStore.getByName(state.params.channel);
-
- if (channel && channel.type === Constants.DM_CHANNEL) {
- loadNewDMIfNeeded(channel.id);
- } else if (channel && channel.type === Constants.GM_CHANNEL) {
- loadNewGMIfNeeded(channel.id);
- }
-
- if (!channel) {
- joinChannel(UserStore.getCurrentId(), TeamStore.getCurrentId(), null, state.params.channel)(dispatch, getState).then(
- (result) => {
- if (result.data) {
- GlobalActions.emitChannelClickEvent(result.data.channel);
- } else if (result.error) {
- if (state.params.team) {
- replace('/' + state.params.team + '/channels/town-square');
- } else {
- replace('/');
- }
- }
- callback();
- }
- );
- return;
- }
- }
- GlobalActions.emitChannelClickEvent(channel);
- callback();
-}
-
-let wakeUpInterval;
-let lastTime = (new Date()).getTime();
-const WAKEUP_CHECK_INTERVAL = 30000; // 30 seconds
-const WAKEUP_THRESHOLD = 60000; // 60 seconds
-
-function preNeedsTeam(nextState, replace, callback) {
- if (RouteUtils.checkIfMFARequired(nextState)) {
- browserHistory.push('/mfa/setup');
- return;
- }
-
- clearInterval(wakeUpInterval);
-
- wakeUpInterval = setInterval(() => {
- const currentTime = (new Date()).getTime();
- if (currentTime > (lastTime + WAKEUP_THRESHOLD)) { // ignore small delays
- console.log('computer woke up - fetching latest'); //eslint-disable-line no-console
- reconnect(false);
- }
- lastTime = currentTime;
- }, WAKEUP_CHECK_INTERVAL);
-
- // First check to make sure you're in the current team
- // for the current url.
- const teamName = nextState.params.team;
- const team = TeamStore.getByName(teamName);
-
- if (!team) {
- browserHistory.push('/?redirect_to=' + encodeURIComponent(nextState.location.pathname));
- return;
- }
-
- // If current team is set, then this is not first load
- // The first load action pulls team unreads
- if (TeamStore.getCurrentId()) {
- getMyTeamUnreads()(dispatch, getState);
- }
-
- TeamStore.saveMyTeam(team);
- BrowserStore.setGlobalItem('team', team.id);
- TeamStore.emitChange();
- GlobalActions.emitCloseRightHandSide();
-
- const d1 = $.Deferred(); //eslint-disable-line new-cap
-
- fetchMyChannelsAndMembers(team.id)(dispatch, getState).then(
- () => {
- loadStatusesForChannelAndSidebar();
- loadProfilesForSidebar();
-
- d1.resolve();
- }
- );
-
- $.when(d1).done(() => {
- callback();
- });
-}
-
-function selectLastChannel(nextState, replace, callback) {
- const team = TeamStore.getByName(nextState.params.team);
- const channelId = BrowserStore.getGlobalItem(team.id);
- const channel = ChannelStore.getChannelById(channelId);
-
- let channelName = 'town-square';
- if (channel) {
- channelName = channel.name;
- }
-
- replace(`/${team.name}/channels/${channelName}`);
- callback();
-}
-
-function onPermalinkEnter(nextState, replace, callback) {
- const postId = nextState.params.postid;
- GlobalActions.emitPostFocusEvent(
- postId,
- () => callback()
- );
-}
-
-/**
-* identifier may either be:
-* - A DM user_id length 26 chars
-* - A DM channel_id (id1_id2) length 54 chars
-* - A GM generated_id length 40 chars
-* - A username that starts with an @ sign
-* - An email containing an @ sign
-**/
-function onChannelByIdentifierEnter(state, replace, callback) {
- const {identifier} = state.params;
- if (identifier.indexOf('@') === -1) {
- // DM user_id or id1_id2 identifier
- if (identifier.length === 26 || identifier.length === 54) {
- const userId = (identifier.length === 26) ? identifier : Utils.getUserIdFromChannelId(identifier);
- const teammate = UserStore.getProfile(userId);
- if (teammate) {
- replace(`/${state.params.team}/messages/@${teammate.username}`);
- callback();
- } else {
- getUser(userId)(dispatch, getState).then(
- (profile) => {
- if (profile) {
- replace(`/${state.params.team}/messages/@${profile.username}`);
- callback();
- } else if (profile == null) {
- handleError(state, replace, callback);
- }
- }
- );
- }
-
- // GM generated_id identifier
- } else if (identifier.length === 40) {
- const channel = ChannelStore.getByName(identifier);
- if (channel) {
- loadNewGMIfNeeded(channel.id);
- GlobalActions.emitChannelClickEvent(channel);
- callback();
- } else {
- joinChannel(UserStore.getCurrentId(), TeamStore.getCurrentId(), null, identifier)(dispatch, getState).then(
- (result) => {
- if (result.data) {
- GlobalActions.emitChannelClickEvent(result.data.channel);
- callback();
- } else if (result.error) {
- handleError(state, replace, callback);
- }
- }
- );
- }
- } else {
- handleError(state, replace, callback);
- }
- } else {
- function success(profile) {
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_PROFILE,
- profile
- });
- directChannelToUser(profile, state, replace, callback);
- }
-
- function error() {
- handleError(state, replace, callback);
- }
-
- if (identifier.indexOf('@') === 0) { // @username identifier
- const username = identifier.slice(1, identifier.length);
- const teammate = UserStore.getProfileByUsername(username);
- if (teammate) {
- directChannelToUser(teammate, state, replace, callback);
- } else {
- getUserByUsername(username)(dispatch, getState).then(
- (data) => {
- if (data && success) {
- success(data);
- } else if (data == null && error) {
- const serverError = getState().requests.users.getUserByUsername.error;
- error({id: serverError.server_error_id, ...serverError});
- }
- }
- );
- }
- } else if (identifier.indexOf('@') > 0) { // email identifier
- const email = identifier;
- const teammate = UserStore.getProfileByEmail(email);
- if (teammate) {
- directChannelToUser(teammate, state, replace, callback);
- } else {
- getUserByEmail(email)(dispatch, getState).then(
- (data) => {
- if (data && success) {
- success(data);
- } else if (data == null && error) {
- const serverError = getState().requests.users.getUser.error;
- error({id: serverError.server_error_id, ...serverError});
- }
- }
- );
- }
- }
- }
-}
-
-function directChannelToUser(profile, state, replace, callback) {
- openDirectChannelToUser(
- profile.id,
- (channel) => {
- GlobalActions.emitChannelClickEvent(channel);
- callback();
- },
- () => {
- handleError(state, replace, callback);
- }
- );
-}
-
-function handleError(state, replace, callback) {
- if (state.params.team) {
- replace(`/${state.params.team}/channels/${Constants.DEFAULT_CHANNEL}`);
- } else {
- replace('/');
- }
- callback();
-}
-
-export default {
- path: ':team',
- onEnter: preNeedsTeam,
- indexRoute: {onEnter: selectLastChannel},
- childRoutes: [
- integrationsRoute,
- emojiRoute,
- {
- getComponents: (location, callback) => {
- System.import('components/needs_team').then(RouteUtils.importComponentSuccess(callback));
- },
- childRoutes: [
- {
- path: 'channels/:channel',
- onEnter: onChannelEnter,
- getComponents: (location, callback) => {
- Promise.all([
- System.import('components/team_sidebar'),
- System.import('components/sidebar.jsx'),
- System.import('components/channel_view.jsx')
- ]).then(
- (comarr) => callback(null, {team_sidebar: comarr[0].default, sidebar: comarr[1].default, center: comarr[2].default})
- );
- }
- },
- {
- path: 'pl/:postid',
- onEnter: onPermalinkEnter,
- getComponents: (location, callback) => {
- Promise.all([
- System.import('components/team_sidebar'),
- System.import('components/sidebar.jsx'),
- System.import('components/permalink_view.jsx')
- ]).then(
- (comarr) => callback(null, {team_sidebar: comarr[0].default, sidebar: comarr[1].default, center: comarr[2].default})
- );
- }
- },
- {
- path: 'messages/:identifier',
- onEnter: onChannelByIdentifierEnter,
- getComponents: (location, callback) => {
- Promise.all([
- System.import('components/team_sidebar'),
- System.import('components/sidebar.jsx'),
- System.import('components/channel_view.jsx')
- ]).then(
- (comarr) => callback(null, {team_sidebar: comarr[0].default, sidebar: comarr[1].default, center: comarr[2].default})
- );
- }
- },
- {
- path: 'tutorial',
- getComponents: (location, callback) => {
- Promise.all([
- System.import('components/team_sidebar'),
- System.import('components/sidebar.jsx'),
- System.import('components/tutorial/tutorial_view.jsx')
- ]).then(
- (comarr) => callback(null, {team_sidebar: comarr[0].default, sidebar: comarr[1].default, center: comarr[2].default})
- );
- }
- }
- ]
- }
- ]
-};