[Libreoffice-commits] online.git: loleaflet/build loleaflet/debug loleaflet/dist loleaflet/main.css loleaflet/main.js loleaflet/README loleaflet/src
Samuel Mehrbrodt
Samuel.Mehrbrodt at cib.de
Thu Feb 22 13:28:31 UTC 2018
loleaflet/README | 8 +++++
loleaflet/build/deps.js | 5 ++-
loleaflet/debug/document/loleaflet.html | 1
loleaflet/dist/errormessages.js | 3 +-
loleaflet/dist/loleaflet.css | 9 ++++++
loleaflet/main.css | 1
loleaflet/main.js | 1
loleaflet/src/control/Control.Infobar.js | 42 +++++++++++++++++++++++++++++++
loleaflet/src/core/Socket.js | 9 ++++--
9 files changed, 73 insertions(+), 6 deletions(-)
New commits:
commit 4c9872188f3ae5f876fb5652273c6bdb10065d14
Author: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
Date: Thu Feb 22 14:19:03 2018 +0100
Add non-obtrusive notification method (infobar-alike)
This reuses the vex dialogs and pushes notifications to the bottom right area.
Converted the limit reached notification to this new type.
Change-Id: I20f0c1202eecde028e70156f02ba31497ef2f9b9
diff --git a/loleaflet/README b/loleaflet/README
index acc790da..4694417a 100644
--- a/loleaflet/README
+++ b/loleaflet/README
@@ -300,6 +300,14 @@ Error:
+ [e.cmd] = the command that caused the error
+ [e.kind] = the kind of error
+Infobars:
+ - events
+ map.on('infobar', function (e) {}) where
+ + [e.msg] = a message
+ + [e.actionlabel] = Label for the action button
+ + [e.action] = A link (starting with http).
+ Please extend to allow other actions when needed.
+
CommandValues:
- api:
map.getToolbarCommandValues(command)
diff --git a/loleaflet/build/deps.js b/loleaflet/build/deps.js
index 9c905d76..59f4cde3 100644
--- a/loleaflet/build/deps.js
+++ b/loleaflet/build/deps.js
@@ -343,8 +343,9 @@ var deps = {
ControlDialog: {
src: ['control/Control.js',
- 'control/Control.LokDialog.js',
- 'control/Control.AlertDialog.js'],
+ 'control/Control.LokDialog.js',
+ 'control/Control.AlertDialog.js',
+ 'control/Control.Infobar.js'],
heading: 'Controls',
desc: 'Handles vex dialogs for displaying alerts'
},
diff --git a/loleaflet/debug/document/loleaflet.html b/loleaflet/debug/document/loleaflet.html
index 49c0dfce..2d7a6a75 100644
--- a/loleaflet/debug/document/loleaflet.html
+++ b/loleaflet/debug/document/loleaflet.html
@@ -20,6 +20,7 @@
<link rel="stylesheet" href="/loleaflet/%VERSION%/contextMenu/jquery.contextMenu.css">
<link rel="stylesheet" href="/loleaflet/%VERSION%/dialog/vex.css" />
<link rel="stylesheet" href="/loleaflet/%VERSION%/dialog/vex-theme-plain.css" />
+<link rel="stylesheet" href="/loleaflet/%VERSION%/dialog/vex-theme-bottom-right-corner.css" />
<link rel="stylesheet" href="/loleaflet/%VERSION%/toolbar/w2ui.min.css" />
<link rel="stylesheet" href="/loleaflet/%VERSION%/toolbar/select2.min.css" />
<link rel="stylesheet" href="/loleaflet/%VERSION%/smartmenus/sm-core-css.css" />
diff --git a/loleaflet/dist/errormessages.js b/loleaflet/dist/errormessages.js
index edda0764..36937c06 100644
--- a/loleaflet/dist/errormessages.js
+++ b/loleaflet/dist/errormessages.js
@@ -1,6 +1,7 @@
exports.diskfull = _('No disk space left on server, please contact the server administrator to continue.');
exports.emptyhosturl = _('The host URL is empty. The loolwsd server is probably misconfigured, please contact the administrator.');
-exports.limitreached = _('This is an unsupported version of {productname}. To avoid the impression that it is suitable for deployment in enterprises, this version is limited to {docs} documents, and {connections} connections.<br/>{a}More information and support{/a}');
+exports.limitreached = _('This is an unsupported version of {productname}. To avoid the impression that it is suitable for deployment in enterprises, this version is limited to {docs} documents, and {connections} connections.');
+exports.infoandsupport = _('More information and support');
exports.limitreachedprod = _('This service is limited to %0 documents, and %1 connections total by the admin. This limit has been reached. Please try again later.');
exports.serviceunavailable = _('Service is unavailable. Please try again later and report to your administrator if the issue persists.');
exports.unauthorized = _('Unauthorized WOPI host. Please try again later and report to your administrator if the issue persists.');
diff --git a/loleaflet/dist/loleaflet.css b/loleaflet/dist/loleaflet.css
index f458c371..6315efbf 100644
--- a/loleaflet/dist/loleaflet.css
+++ b/loleaflet/dist/loleaflet.css
@@ -362,3 +362,12 @@ body {
-webkit-user-select: none;
-o-user-select: none;
}
+
+/* Infobar */
+.vex-theme-bottom-right-corner .vex-dialog-message {
+ font-size: 1em;
+}
+/* Place above statusbar */
+.vex.vex-theme-bottom-right-corner .vex-content {
+ bottom: 40px !important;
+}
\ No newline at end of file
diff --git a/loleaflet/main.css b/loleaflet/main.css
index 729b21b3..de61241f 100644
--- a/loleaflet/main.css
+++ b/loleaflet/main.css
@@ -14,6 +14,7 @@
@import url('node_modules/jquery-contextmenu/dist/jquery.contextMenu.css');
@import url('node_modules/vex-js/css/vex.css');
@import url('node_modules/vex-js/css/vex-theme-plain.css');
+ at import url('node_modules/vex-js/css/vex-theme-bottom-right-corner.css');
@import url('node_modules/w2ui/w2ui.css');
@import url('node_modules/select2/dist/css/select2.css');
@import url('node_modules/smartmenus/dist/css/sm-core-css.css');
diff --git a/loleaflet/main.js b/loleaflet/main.js
index 02bedc68..8a79a8bb 100644
--- a/loleaflet/main.js
+++ b/loleaflet/main.js
@@ -127,6 +127,7 @@ map.addControl(L.control.columnHeader());
map.addControl(L.control.rowHeader());
map.addControl(L.control.contextMenu());
map.addControl(L.control.menubar());
+map.addControl(L.control.infobar());
map.loadDocument();
window.addEventListener('beforeunload', function () {
diff --git a/loleaflet/src/control/Control.Infobar.js b/loleaflet/src/control/Control.Infobar.js
new file mode 100644
index 00000000..de70ff2f
--- /dev/null
+++ b/loleaflet/src/control/Control.Infobar.js
@@ -0,0 +1,42 @@
+/*
+ * L.Control.Infobar used for displaying non-annoying info messages
+ */
+
+/* global vex $ */
+L.Control.Infobar = L.Control.extend({
+ onAdd: function (map) {
+ map.on('infobar', this._onInfobar, this);
+ },
+
+ _onInfobar: function(e) {
+ if (!e.msg)
+ return;
+
+ var buttons = [];
+ var callback = function() {};
+ if (e.actionLabel && e.action) {
+ buttons.push($.extend({}, vex.dialog.buttons.YES, { text: e.actionLabel }));
+ callback = function (value) {
+ if (value === false) // close btn clicked
+ return;
+
+ if (e.action.startsWith('http')) { // We have a link
+ var win = window.open(e.action, '_blank');
+ win.focus();
+ }
+ }
+ }
+
+ vex.dialog.open({
+ message: e.msg,
+ className: 'vex-theme-bottom-right-corner',
+ showCloseButton: true,
+ buttons: buttons,
+ callback: callback
+ });
+ }
+});
+
+L.control.infobar = function (options) {
+ return new L.Control.Infobar(options);
+};
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 3e33a88d..53677404 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -574,9 +574,12 @@ L.Socket = L.Class.extend({
brandProductName : 'LibreOffice Online'));
brandProductFAQURL = (typeof brandProductFAQURL !== 'undefined') ?
brandProductFAQURL : 'https://hub.libreoffice.org/professional-online-support';
- textMsg = textMsg.replace(/{a}/g, '<a target="_blank" href="'+brandProductFAQURL+'">');
- textMsg = textMsg.replace(/{\/a}/g, '</a>');
- this._map.fire('error', {msg: textMsg});
+ this._map.fire('infobar',
+ {
+ msg: textMsg,
+ action: brandProductFAQURL,
+ actionLabel: errorMessages.infoandsupport
+ });
}
}
else if (textMsg.startsWith('pong ') && this._map._docLayer && this._map._docLayer._debug) {
More information about the Libreoffice-commits
mailing list