[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-cd-4' - loleaflet/js loleaflet/reference.html loleaflet/src
Szymon Kłos (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jun 17 11:27:23 UTC 2019
loleaflet/js/main.js | 4 ++-
loleaflet/reference.html | 24 +++++++++++++++++++++-
loleaflet/src/control/Control.Menubar.js | 33 +++++++++++++++++++++++++++++++
loleaflet/src/map/handler/Map.WOPI.js | 25 +++++++++++++++++++++++
4 files changed, 84 insertions(+), 2 deletions(-)
New commits:
commit 16ba97e7ae4a06932bdd63dbf32dd9e09b6b227e
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Thu Jun 6 17:51:48 2019 +0200
Commit: Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Jun 17 13:27:05 2019 +0200
Add API to remove menu items
Change-Id: I59f2e3e1ed467f58bcd56db945e0d4807c1cff6e
Reviewed-on: https://gerrit.libreoffice.org/74128
Reviewed-by: Andras Timar <andras.timar at collabora.com>
Tested-by: Andras Timar <andras.timar at collabora.com>
diff --git a/loleaflet/js/main.js b/loleaflet/js/main.js
index 15e859606..54180dcaf 100644
--- a/loleaflet/js/main.js
+++ b/loleaflet/js/main.js
@@ -68,7 +68,9 @@ var map = L.map('map', {
});
////// Controls /////
-map.addControl(L.control.menubar());
+var menubar = L.control.menubar();
+map.menubar = menubar;
+map.addControl(menubar);
setupToolbar(map);
map.addControl(L.control.scroll());
map.addControl(L.control.alertDialog());
diff --git a/loleaflet/reference.html b/loleaflet/reference.html
index 58bdb351b..8350a9fe9 100644
--- a/loleaflet/reference.html
+++ b/loleaflet/reference.html
@@ -3136,12 +3136,34 @@ WOPI host to editor
<code><nobr>id: <string></nobr></code>
</td>
<td>
- Hides a button from the toolbar.<br/>
+ Shows a button from the toolbar.<br/>
<code>id</code> is the button ID as defined in the
<a href="https://opengrok.libreoffice.org/search?project=online&q=&defs=createToolbar">createToolbar</a>
function in <a href="https://opengrok.libreoffice.org/xref/online/loleaflet/js/toolbar.js">loleaflet/js/toolbar.js</a>.
</td>
</tr>
+ <tr>
+ <td><code><b>Hide_Menu_Item</b></code></td>
+ <td>
+ <code><nobr>id: <string></nobr></code>
+ </td>
+ <td>
+ Hides an item from the menu.<br/>
+ <code>id</code> is the item ID as defined in the
+ <a href="https://opengrok.libreoffice.org/xref/online/loleaflet/src/control/Control.Menubar.js">loleaflet/src/control/Control.Menubar.js</a>.
+ </td>
+ </tr>
+ <tr>
+ <td><code><b>Show_Menu_Item</b></code></td>
+ <td>
+ <code><nobr>id: <string></nobr></code>
+ </td>
+ <td>
+ Shows an item from the menu.<br/>
+ <code>id</code> is the item ID as defined in the
+ <a href="https://opengrok.libreoffice.org/xref/online/loleaflet/src/control/Control.Menubar.js">loleaflet/src/control/Control.Menubar.js</a>.
+ </td>
+ </tr>
</table>
Editor to WOPI host
<table data-id='postmessage-misc-to-host'>
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index 32591f830..1d03ac4b5 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -986,6 +986,39 @@ L.Control.Menubar = L.Control.extend({
return itemList;
},
+ _getItems: function() {
+ return $(this._menubarCont).children().children('ul').children('li').add($(this._menubarCont).children('li'));
+ },
+
+ _getItem: function(targetId) {
+ var items = this._getItems();
+ var found = $(items).filter(function() {
+ var item = this;
+ var id = $(item).attr('id');
+ if (id && id == 'menu-' + targetId) {
+ return true;
+ }
+ return false
+ });
+ return found.length ? found : null;
+ },
+
+ hasItem: function(targetId) {
+ return this._getItem(targetId) != null;
+ },
+
+ hideItem: function(targetId) {
+ var item = this._getItem(targetId);
+ if (item)
+ $(item).css('display', 'none');
+ },
+
+ showItem: function(targetId) {
+ var item = this._getItem(targetId);
+ if (item)
+ $(item).css('display', '');
+ },
+
_initializeMenu: function(menu) {
var menuHtml = this._createMenu(menu);
for (var i in menuHtml) {
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index ff9200086..42a84aa7d 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -218,6 +218,31 @@ L.Map.WOPI = L.Handler.extend({
w2ui['editbar'].hide(msg.Values.id);
}
}
+ else if (msg.MessageId === 'Show_Menu_Item' || msg.MessageId === 'Hide_Menu_Item') {
+ if (!msg.Values) {
+ console.error('Property "Values" not set');
+ return;
+ }
+ if (!msg.Values.id) {
+ console.error('Property "Values.id" not set');
+ return;
+ }
+ if (this._map._permission !== 'edit') {
+ console.log('Readonly mode - ignoring Hide_Menu_Item request.');
+ return;
+ }
+
+ if (!this._map.menubar || !this._map.menubar.hasItem(msg.Values.id)) {
+ console.error('Menu item with id "' + msg.Values.id + '" not found.');
+ return;
+ }
+
+ if (msg.MessageId === 'Show_Menu_Item') {
+ this._map.menubar.showItem(msg.Values.id);
+ } else {
+ this._map.menubar.hideItem(msg.Values.id);
+ }
+ }
else if (msg.MessageId === 'Set_Settings') {
if (msg.Values) {
var alwaysActive = msg.Values.AlwaysActive;
More information about the Libreoffice-commits
mailing list