diff options
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/components/login/login.jsx | 3 | ||||
-rw-r--r-- | webapp/root.jsx | 4 | ||||
-rw-r--r-- | webapp/stores/browser_store.jsx | 5 | ||||
-rw-r--r-- | webapp/utils/async_client.jsx | 30 |
4 files changed, 28 insertions, 14 deletions
diff --git a/webapp/components/login/login.jsx b/webapp/components/login/login.jsx index 8ae3fdd4d..8dbcf33ac 100644 --- a/webapp/components/login/login.jsx +++ b/webapp/components/login/login.jsx @@ -9,6 +9,7 @@ import * as GlobalActions from 'action_creators/global_actions.jsx'; import UserStore from 'stores/user_store.jsx'; import Client from 'utils/web_client.jsx'; +import * as AsyncClient from 'utils/async_client.jsx'; import * as TextFormatting from 'utils/text_formatting.jsx'; import * as Utils from 'utils/utils.jsx'; @@ -44,6 +45,8 @@ export default class Login extends React.Component { if (UserStore.getCurrentUser()) { browserHistory.push('/select_team'); } + + AsyncClient.checkVersion(); } preSubmit(e) { diff --git a/webapp/root.jsx b/webapp/root.jsx index 2b54c2174..f53109cdd 100644 --- a/webapp/root.jsx +++ b/webapp/root.jsx @@ -24,6 +24,7 @@ import * as AsyncClient from 'utils/async_client.jsx'; import ChannelStore from 'stores/channel_store.jsx'; import ErrorStore from 'stores/error_store.jsx'; import TeamStore from 'stores/team_store.jsx'; +import BrowserStore from 'stores/browser_store.jsx'; import * as Utils from 'utils/utils.jsx'; import Client from 'utils/web_client.jsx'; @@ -101,9 +102,10 @@ function preRenderSetup(callwhendone) { } ); - // Make sure the websockets close + // Make sure the websockets close and reset version $(window).on('beforeunload', () => { + BrowserStore.setLastServerVersion(''); Websockets.close(); } ); diff --git a/webapp/stores/browser_store.jsx b/webapp/stores/browser_store.jsx index 2dae78f46..11fe50928 100644 --- a/webapp/stores/browser_store.jsx +++ b/webapp/stores/browser_store.jsx @@ -158,6 +158,7 @@ class BrowserStoreClass { clear() { // don't clear the logout id so IE11 can tell which tab sent a logout request const logoutId = sessionStorage.getItem('__logout__'); + const serverVersion = this.getLastServerVersion(); sessionStorage.clear(); localStorage.clear(); @@ -165,6 +166,10 @@ class BrowserStoreClass { if (logoutId) { sessionStorage.setItem('__logout__', logoutId); } + + if (serverVersion) { + this.setLastServerVersion(serverVersion); + } } clearAll() { diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx index 6535c024d..7ddf299f6 100644 --- a/webapp/utils/async_client.jsx +++ b/webapp/utils/async_client.jsx @@ -47,7 +47,21 @@ function isCallInProgress(callName) { return true; } -export function getChannels(checkVersion) { +export function checkVersion() { + var serverVersion = Client.getServerVersion(); + + if (serverVersion !== BrowserStore.getLastServerVersion()) { + if (!BrowserStore.getLastServerVersion() || BrowserStore.getLastServerVersion() === '') { + BrowserStore.setLastServerVersion(serverVersion); + } else { + BrowserStore.setLastServerVersion(serverVersion); + window.location.reload(true); + console.log('Detected version update refreshing the page'); //eslint-disable-line no-console + } + } +} + +export function getChannels(doVersionCheck) { if (isCallInProgress('getChannels')) { return null; } @@ -58,18 +72,8 @@ export function getChannels(checkVersion) { (data) => { callTracker.getChannels = 0; - if (checkVersion) { - var serverVersion = Client.getServerVersion(); - - if (serverVersion !== BrowserStore.getLastServerVersion()) { - if (!BrowserStore.getLastServerVersion() || BrowserStore.getLastServerVersion() === '') { - BrowserStore.setLastServerVersion(serverVersion); - } else { - BrowserStore.setLastServerVersion(serverVersion); - window.location.reload(true); - console.log('Detected version update refreshing the page'); //eslint-disable-line no-console - } - } + if (doVersionCheck) { + checkVersion(); } AppDispatcher.handleServerAction({ |