[Libreoffice-commits] online.git: loleaflet/src
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Sun Nov 20 00:26:17 UTC 2016
loleaflet/src/core/Socket.js | 43 ++++++++++++++++++++++++++++++++++++++-----
loleaflet/src/map/Map.js | 2 +-
2 files changed, 39 insertions(+), 6 deletions(-)
New commits:
commit 6b7219e25a3a7b1517b3a8a3fe6245f77c0f15f1
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Sat Nov 19 11:22:19 2016 -0500
loleaflet: notify the user when server intentionally closes connection
Change-Id: I82d855c1a50dca42e40d1123e42b0e02227f73d1
Reviewed-on: https://gerrit.libreoffice.org/31003
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 1c124fb..7d802ae 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -186,15 +186,48 @@ L.Socket = L.Class.extend({
}
else if (textMsg.startsWith('close: ')) {
textMsg = textMsg.substring('close: '.length);
+ msg = '';
// This is due to document owner terminating the session
if (textMsg === 'ownertermination') {
- // Disconnect the websocket manually
- this.close();
- // Tell WOPI host about it which should handle this situation
- this._map.fire('postMessage', {msgId: 'Session_Closed'});
- }
+ msg = _('Session terminated by document owner');
+ }
+ else if (textMsg === 'shutdown') {
+ msg = _('Server shutdown for maintenance');
+ }
+
+ var options = $.extend({}, vex.defaultOptions, {
+ contentCSS: {'background':'rgba(0, 0, 0, 0)',
+ 'font-size': 'xx-large',
+ 'color': '#fff',
+ 'text-align': 'center'},
+ content: msg
+ });
+ options.id = vex.globalID;
+ vex.dialogID = options.id;
+ vex.globalID += 1;
+ options.$vex = $('<div>').addClass(vex.baseClassNames.vex).addClass(options.className).css(options.css).data({
+ vex: options
+ });
+ options.$vexOverlay = $('<div>').addClass(vex.baseClassNames.overlay).addClass(options.overlayClassName).css(options.overlayCSS).data({
+ vex: options
+ });
+
+ options.$vex.append(options.$vexOverlay);
+
+ options.$vexContent = $('<div>').addClass(vex.baseClassNames.content).addClass(options.contentClassName).css(options.contentCSS).text(options.content).data({
+ vex: options
+ });
+ options.$vex.append(options.$vexContent);
+
+ $(options.appendLocation).append(options.$vex);
+ vex.setupBodyClassName(options.$vex);
+
+ // Disconnect the websocket manually
+ this.close();
+ // Tell WOPI host about it which should handle this situation
+ this._map.fire('postMessage', {msgId: 'Session_Closed'});
this._map.remove();
return;
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index c489f73..75e20fc 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -778,7 +778,7 @@ L.Map = L.Evented.extend({
var map = this;
vex.timer = setTimeout(function() {
- if (window.devtools.open) {
+ if (window.devtools.open || !map._socket.connected()) {
return;
}
More information about the Libreoffice-commits
mailing list