From 73f6d383b5e7376beef02da2fa583400a47e6534 Mon Sep 17 00:00:00 2001 From: Cheng-Han, Wu Date: Fri, 17 Jun 2016 16:31:36 +0800 Subject: Add minimumCompatibleVersion and update refresh modal to show more detail informations --- lib/config.js | 2 ++ lib/realtime.js | 5 ++++- public/js/index.js | 29 +++++++++++++++++++++-------- public/views/body.ejs | 20 +------------------- public/views/refresh-modal.ejs | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 60 insertions(+), 28 deletions(-) create mode 100644 public/views/refresh-modal.ejs diff --git a/lib/config.js b/lib/config.js index 3828e2dc..27e4ed91 100644 --- a/lib/config.js +++ b/lib/config.js @@ -78,11 +78,13 @@ function getserverurl() { } var version = '0.4.2'; +var minimumCompatibleVersion = '0.4.2'; var maintenance = true; var cwd = path.join(__dirname, '..'); module.exports = { version: version, + minimumCompatibleVersion: minimumCompatibleVersion, maintenance: maintenance, debug: debug, urlpath: urlpath, diff --git a/lib/realtime.js b/lib/realtime.js index b7a17d34..8ed54437 100644 --- a/lib/realtime.js +++ b/lib/realtime.js @@ -708,7 +708,10 @@ function connection(socket) { //check version socket.on('version', function () { - socket.emit('version', config.version); + socket.emit('version', { + version: config.version, + minimumCompatibleVersion: config.minimumCompatibleVersion + }); }); //received cursor focus diff --git a/public/js/index.js b/public/js/index.js index 67846845..3ca0517c 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -629,15 +629,23 @@ function idleStateChange() { updateTitleReminder(); } -function setNeedRefresh() { +function setRefreshModal(status) { $('#refreshModal').modal('show'); + $('#refreshModal').find('.modal-body > div').hide(); + $('#refreshModal').find('.' + status).show(); +} + +function setNeedRefresh() { needRefresh = true; editor.setOption('readOnly', true); socket.disconnect(); showStatus(statusType.offline); } -loginStateChangeEvent = setNeedRefresh; +loginStateChangeEvent = function () { + setRefreshModal('user-state-changed'); + setNeedRefresh(); +}; //visibility var wasFocus = false; @@ -1978,9 +1986,8 @@ socket.on('error', function (data) { }); var retryOnDisconnect = false; var retryTimer = null; -socket.on('maintenance', function (data) { - if (data == version) - retryOnDisconnect = true; +socket.on('maintenance', function () { + retryOnDisconnect = true; }); socket.on('disconnect', function (data) { showStatus(statusType.offline); @@ -1992,7 +1999,7 @@ socket.on('disconnect', function (data) { editor.setOption('readOnly', true); if (retryOnDisconnect && !retryTimer) { retryTimer = setInterval(function () { - socket.connect(); + if (!needRefresh) socket.connect(); }, 1000); } }); @@ -2013,8 +2020,14 @@ socket.on('connect', function (data) { socket.id = socket.nsp + '#' + socket.id; }); socket.on('version', function (data) { - if (data != version) - setNeedRefresh(); + if (version != data.version) { + if (version < data.minimumCompatibleVersion) { + setRefreshModal('incompatible-version'); + setNeedRefresh(); + } else { + setRefreshModal('new-version'); + } + } }); function updateLastInfo(data) { //console.log(data); diff --git a/public/views/body.ejs b/public/views/body.ejs index 9fe1ca75..8eb0fb8a 100644 --- a/public/views/body.ejs +++ b/public/views/body.ejs @@ -56,25 +56,6 @@ - - +<%- include refresh-modal %> <%- include signin-modal %> <%- include help-modal %> <%- include revision-modal %> \ No newline at end of file diff --git a/public/views/refresh-modal.ejs b/public/views/refresh-modal.ejs new file mode 100644 index 00000000..ce7147da --- /dev/null +++ b/public/views/refresh-modal.ejs @@ -0,0 +1,32 @@ + + \ No newline at end of file -- cgit v1.2.3