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

Henry Castro hcastro at collabora.com
Sun Feb 7 22:42:53 UTC 2016


 loleaflet/src/control/Control.Presentation.js |   46 ++++++++++++++++++--------
 1 file changed, 33 insertions(+), 13 deletions(-)

New commits:
commit 4ed8b37e9cd0a118819e4a1d73f5b9d059573ef4
Author: Henry Castro <hcastro at collabora.com>
Date:   Sun Feb 7 18:42:12 2016 -0400

    loleaflet: rework Control.Presentation.js toolbar items

diff --git a/loleaflet/src/control/Control.Presentation.js b/loleaflet/src/control/Control.Presentation.js
index 188f252..6cac3ba 100644
--- a/loleaflet/src/control/Control.Presentation.js
+++ b/loleaflet/src/control/Control.Presentation.js
@@ -2,6 +2,7 @@
  * L.Control.Presentation is used for common commands for slides.
  */
 
+/* global vex */
 L.Control.Presentation = L.Control.extend({
 	options: {
 		position: 'topleft'
@@ -12,9 +13,9 @@ L.Control.Presentation = L.Control.extend({
 		    container = L.DomUtil.create('div', buttonsName + '-container' + ' leaflet-bar');
 
 		this._buttons = {
-			'insertpage':    {title: 'Insert Page',     iconName: 'insertpage.png'},
-			'duplicatepage': {title: 'Duplicate Page',  iconName: 'duplicatepage.png'},
-			'deletepage':    {title: 'Delete Page',     iconName: 'deletepage.png'}
+			'insertpage':    {title: 'Insert Page',     uno: 'InsertPage',		iconName: 'insertpage.png'},
+			'duplicatepage': {title: 'Duplicate Page',  uno: 'DuplicatePage',	iconName: 'duplicatepage.png'},
+			'deletepage':    {title: 'Delete Page',     uno: 'DeletePage',		iconName: 'deletepage.png'}
 		};
 
 		for (var key in this._buttons) {
@@ -23,20 +24,23 @@ L.Control.Presentation = L.Control.extend({
 				buttonsName, container, this._onButtonClick);
 		}
 
-		map.on('updateparts', this._updateDisabled, this);
+		map.on('commandstatechanged', this._onStateChange, this);
+		map.on('updatepermission', this._onPermissionUpdate, this);
 
 		return container;
 	},
 
-	_updateDisabled: function (e) {
-		if (e.docType === 'presentation') {
-			return;
-		}
-
-		for (var key in this._buttons) {
-			var button = this._buttons[key];
-			L.DomUtil.addClass(button.el, 'leaflet-disabled');
-			L.DomUtil.addClass(button.el, 'leaflet-control-buttons-disabled');
+	_onPermissionUpdate: function (e) {
+		for (var id in this._buttons) {
+			var button = this._buttons[id];
+			if (button.uno) {
+				if (e.perm !== 'edit' || this._map.getDocType() !== 'presentation') {
+					L.DomUtil.addClass(button.el.firstChild, 'leaflet-control-buttons-disabled');
+				}
+				else {
+					L.DomUtil.removeClass(button.el.firstChild, 'leaflet-control-buttons-disabled');
+				}
+			}
 		}
 	},
 
@@ -77,6 +81,22 @@ L.Control.Presentation = L.Control.extend({
 		}
 	},
 
+	_onStateChange: function (e) {
+		var commandName = e.commandName;
+		var enabled = e.state;
+		for (var key in this._buttons) {
+			var button = this._buttons[key];
+			if ('.uno:' + button.uno === commandName) {
+				if (enabled === 'true' && this._map._docLayer._permission === 'edit') {
+					L.DomUtil.removeClass(button.el.firstChild, 'leaflet-control-buttons-disabled');
+				}
+				else if (enabled === 'false') {
+					L.DomUtil.addClass(button.el.firstChild, 'leaflet-control-buttons-disabled');
+				}
+			}
+		}
+	},
+
 	_onDelete: function (e) {
 		if (e !== false) {
 			this._map.deletePage();


More information about the Libreoffice-commits mailing list