summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
Diffstat (limited to 'webapp')
-rw-r--r--webapp/components/login/login.jsx3
-rw-r--r--webapp/root.jsx4
-rw-r--r--webapp/stores/browser_store.jsx5
-rw-r--r--webapp/utils/async_client.jsx30
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({