[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - loleaflet/src

Pranam Lashkari (via logerrit) logerrit at kemper.freedesktop.org
Wed Sep 16 04:40:10 UTC 2020


 loleaflet/src/layer/AnnotationManager.js    |   13 ++++
 loleaflet/src/layer/tile/TileLayer.js       |   78 ++++++++++++++--------------
 loleaflet/src/layer/tile/WriterTileLayer.js |    4 +
 3 files changed, 58 insertions(+), 37 deletions(-)

New commits:
commit ff86f5240e15039840fcebb3709d12fca25121e8
Author:     Pranam Lashkari <lpranam at collabora.com>
AuthorDate: Tue Sep 15 16:33:50 2020 +0530
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Sep 16 06:39:51 2020 +0200

    leaflet: made annotation context menu dynamic
    
    now annotation context menu options will be toggled
    between resolved and unresolved according to its state
    
    Change-Id: I477fdf4b77a940a458d320478801283b71ccb73b
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/102783
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index 3c1198c7a..6d71cd107 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -735,6 +735,19 @@ L.AnnotationManager = L.Class.extend({
 		this._map.focus();
 	},
 
+	_isThreadResolved: function(annotation) {
+		var lastChild = this.getLastChildIndexOf(annotation._data.id);
+
+		while (this._items[lastChild]._data.parent !== '0') {
+			if (this._items[lastChild]._data.resolved === 'false')
+				return false;
+			lastChild = this.getIndexOf(this._items[lastChild]._data.parent);
+		}
+		if (this._items[lastChild]._data.resolved === 'false')
+			return false;
+		return true;
+	},
+
 	// Adjust parent-child relationship, if required, after `comment` is added
 	adjustParentAdd: function(comment) {
 		if (comment.parent && comment.parent > '0') {
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 0a5cd72b7..bb8b905de 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -232,43 +232,47 @@ L.TileLayer = L.GridLayer.extend({
 			selector: '.loleaflet-annotation-menu',
 			trigger: 'none',
 			className: 'loleaflet-font',
-			items: {
-				modify: {
-					name: _('Modify'),
-					callback: function (key, options) {
-						that.onAnnotationModify.call(that, options.$trigger.get(0).annotation);
-					}
-				},
-				reply: (this._docType !== 'text' && this._docType !== 'presentation') ? undefined : {
-					name: _('Reply'),
-					callback: function (key, options) {
-						that.onAnnotationReply.call(that, options.$trigger.get(0).annotation);
-					}
-				},
-				remove: {
-					name: _('Remove'),
-					callback: function (key, options) {
-						that.onAnnotationRemove.call(that, options.$trigger.get(0).annotation._data.id);
-					}
-				},
-				removeThread: {
-					name: _('Remove Thread'),
-					callback: function (key, options) {
-						that.onAnnotationRemoveThread.call(that, options.$trigger.get(0).annotation._data.id);
-					}
-				},
-				resolve: this._docType !== 'text' ? undefined : {
-					name: _('Resolve'),
-					callback: function (key, options) {
-						that.onAnnotationResolve.call(that, options.$trigger.get(0).annotation);
-					}
-				},
-				resolveThread: this._docType !== 'text' ? undefined : {
-					name: _('Resolve Thread'),
-					callback: function (key, options) {
-						that.onAnnotationResolveThread.call(that, options.$trigger.get(0).annotation);
-					}
-				}
+			build: function($trigger) {
+				return {
+					items: {
+						modify: {
+							name: _('Modify'),
+							callback: function (key, options) {
+								that.onAnnotationModify.call(that, options.$trigger.get(0).annotation);
+							}
+						},
+						reply: (that._docType !== 'text' && that._docType !== 'presentation') ? undefined : {
+							name: _('Reply'),
+							callback: function (key, options) {
+								that.onAnnotationReply.call(that, options.$trigger.get(0).annotation);
+							}
+						},
+						remove: {
+							name: _('Remove'),
+							callback: function (key, options) {
+								that.onAnnotationRemove.call(that, options.$trigger.get(0).annotation._data.id);
+							}
+						},
+						removeThread: {
+							name: _('Remove Thread'),
+							callback: function (key, options) {
+								that.onAnnotationRemoveThread.call(that, options.$trigger.get(0).annotation._data.id);
+							}
+						},
+						resolve: that._docType !== 'text' ? undefined : {
+							name: $trigger.get(0).annotation._data.resolved === 'false' ? _('Resolve') : _('Unresolve'),
+							callback: function (key, options) {
+								that.onAnnotationResolve.call(that, options.$trigger.get(0).annotation);
+							}
+						},
+						resolveThread: that._docType !== 'text' ? undefined : {
+							name: that.isThreadResolved($trigger.get(0).annotation) ? _('Unresolve Thread') : _('Resolve Thread'),
+							callback: function (key, options) {
+								that.onAnnotationResolveThread.call(that, options.$trigger.get(0).annotation);
+							}
+						}
+					},
+				};
 			},
 			events: {
 				show: function (options) {
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js
index f32ea37ab..1a0526b6c 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -78,6 +78,10 @@ L.WriterTileLayer = L.TileLayer.extend({
 		this._annotations.resolveThread(annotation);
 	},
 
+	isThreadResolved: function(annotation) {
+		return this._annotations._isThreadResolved(annotation);
+	},
+
 	onChangeAccept: function(id) {
 		this._annotations.acceptChange(id);
 	},


More information about the Libreoffice-commits mailing list