[Libreoffice-commits] online.git: loleaflet/reference.html loleaflet/src

Jan Holesovsky kendy at collabora.com
Thu Jan 14 12:32:19 PST 2016


 loleaflet/reference.html              |   32 ++++++++++++++++++++++++++++++++
 loleaflet/src/core/Socket.js          |    8 ++++----
 loleaflet/src/layer/tile/TileLayer.js |   13 ++++++++++---
 3 files changed, 46 insertions(+), 7 deletions(-)

New commits:
commit 43417659ad4e59a6f854093c92c11698308ca40b
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Thu Jan 14 21:28:10 2016 +0100

    loleaflet: Implement 'id' for errors.
    
    Most of the errors are not interesting for the user (in the sense that they
    couldn't do anything about them anyway), for those return just a general
    'internal error'; details are still available through the 'cmd' and 'kind'.
    
    The rest have their own 'id'.

diff --git a/loleaflet/reference.html b/loleaflet/reference.html
index dfe1736..7ac486e 100644
--- a/loleaflet/reference.html
+++ b/loleaflet/reference.html
@@ -2046,6 +2046,12 @@ unexpected behaviour.</h4>
 		<th>description</th>
 	</tr>
 	<tr>
+		<td><code><b>id</b></code></td>
+		<td><code>Number</code></td>
+		<td>Identificator of the error that can be used as indication
+		of error message to present to the user.</td>
+	</tr>
+	<tr>
 		<td><code><b>msg</b></code></td>
 		<td><code>String</code></td>
 		<td>If present, the error message.</td>
@@ -2062,6 +2068,32 @@ unexpected behaviour.</h4>
 	</tr>
 </table>
 
+The <code>id</code> property of ErrorEvent can have the following values:
+
+<table data-id='events'>
+	<tr>
+		<th>value</th>
+		<th>description</th>
+	</tr>
+	<tr>
+		<td><code><b>1</b></code></td>
+		<td>Internal error. Things still may work to some extent, but
+		the session becomes unreliable.</td>
+	</tr>
+	<tr>
+		<td><code><b>2</b></code></td>
+		<td>Document couldn't be loaded.</td>
+	</tr>
+	<tr>
+		<td><code><b>3</b></code></td>
+		<td>Socket connection error.</td>
+	</tr>
+	<tr>
+		<td><code><b>4</b></code></td>
+		<td>Socket connection was closed.</td>
+	</tr>
+</table>
+
 <h3 id="invalidatepreview-event">InvalidatePreviewEvent</h3>
 <p>LOLeaflet specific events.</p>
 
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 433a10f..f4e01e7 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -6,13 +6,13 @@ L.Socket = L.Class.extend({
 	ProtocolVersionNumber: '0.1',
 
 	initialize: function (map) {
+		this._map = map;
 		try {
 			this.socket = new WebSocket(map.options.server);
 		} catch (e) {
-			this.fire('error', {msg: 'Socket connection error'});
+			this._map.fire('error', {msg: 'Socket connection error', cmd: 'socket', kind: 'failed', id: 3});
 			return null;
 		}
-		this._map = map;
 		this._msgQueue = [];
 		this.socket.onerror = L.bind(this._onSocketError, map);
 		this.socket.onclose = L.bind(this._onSocketClose, map);
@@ -175,11 +175,11 @@ L.Socket = L.Class.extend({
 	},
 
 	_onSocketError: function () {
-		this.fire('error', {msg: 'Socket connection error'});
+		this._map.fire('error', {msg: 'Socket connection error', cmd: 'socket', kind: 'failed', id: 3});
 	},
 
 	_onSocketClose: function () {
-		this.fire('error', {msg: 'Socket connection closed'});
+		this._map.fire('error', {msg: 'Socket connection closed', cmd: 'socket', kind: 'closed', id: 4});
 	},
 
 	parseServerCmd: function (msg) {
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 04fe59c..4a2f2b8 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -354,7 +354,14 @@ L.TileLayer = L.GridLayer.extend({
 
 	_onErrorMsg: function (textMsg) {
 		var command = this._map._socket.parseServerCmd(textMsg);
-		this._map.fire('error', {cmd: command.errorCmd, kind: command.errorKind});
+
+		// let's provide some convenience error codes for the UI
+		var errorId = 1; // internal error
+		if (command.errorCmd === 'load') {
+		    errorId = 2; // document cannot be loaded
+		}
+
+		this._map.fire('error', {cmd: command.errorCmd, kind: command.errorKind, id: errorId});
 	},
 
 	_onGetChildIdMsg: function (textMsg) {
@@ -812,7 +819,7 @@ L.TileLayer = L.GridLayer.extend({
 			}
 			this._graphicMarker = L.rectangle(this._graphicSelection, {fill: false});
 			if (!this._graphicMarker) {
-				this._map.fire('error', {msg: 'Graphic marker initialization'});
+				this._map.fire('error', {msg: 'Graphic marker initialization', cmd: 'marker', kind: 'failed', id: 1});
 				return;
 			}
 			this._graphicMarker.editing.enable();
@@ -833,7 +840,7 @@ L.TileLayer = L.GridLayer.extend({
 			}
 			this._cellCursorMarker = L.rectangle(this._cellCursor, {fill: false, color: '#000000', weight: 2});
 			if (!this._cellCursorMarker) {
-				this._map.fire('error', {msg: 'Cell Cursor marker initialization'});
+				this._map.fire('error', {msg: 'Cell Cursor marker initialization', cmd: 'cellCursor', kind: 'failed', id: 1});
 				return;
 			}
 			this._map.addLayer(this._cellCursorMarker);


More information about the Libreoffice-commits mailing list