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

Scott Clarke (via logerrit) logerrit at kemper.freedesktop.org
Mon Aug 19 14:42:24 UTC 2019


 loleaflet/css/loleaflet.css                 |    4 +++
 loleaflet/src/layer/AnnotationManager.js    |   30 ++++++++++++++++++++++++++++
 loleaflet/src/layer/marker/Annotation.js    |   18 ++++++++++++++++
 loleaflet/src/layer/tile/TileLayer.js       |    6 +++++
 loleaflet/src/layer/tile/WriterTileLayer.js |    4 +++
 loleaflet/src/unocommands.js                |    1 
 6 files changed, 63 insertions(+)

New commits:
commit 1e82c46bd3ddf0d0fa123f623e6f95802da8327c
Author:     Scott Clarke <scott.clarke at codethink.co.uk>
AuthorDate: Tue May 14 15:25:43 2019 +0100
Commit:     Henry Castro <hcastro at collabora.com>
CommitDate: Mon Aug 19 16:42:06 2019 +0200

    Add ability to resolve comments
    
    Add 'Resolve' button to annotation context menu
    Add 'Resolved' indicator to comments
    
    Change-Id: Ie43e247635a14d3407535e02ec2012f0809d425c
    Co-authored-by: Jim MacArthur <jim.macarthur at codethink.co.uk>
    Reviewed-on: https://gerrit.libreoffice.org/76757
    Reviewed-by: Henry Castro <hcastro at collabora.com>
    Tested-by: Henry Castro <hcastro at collabora.com>

diff --git a/loleaflet/css/loleaflet.css b/loleaflet/css/loleaflet.css
index 08d172546..28675fd2f 100644
--- a/loleaflet/css/loleaflet.css
+++ b/loleaflet/css/loleaflet.css
@@ -319,6 +319,10 @@ body {
 	height: 18px;
 }
 
+.loleaflet-annotation-content-resolved {
+	color: green;
+}
+
 .loleaflet-annotation-edit {
 	margin: 3px 3px;
 	line-height: 1.4;
diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index 2217f1db1..fcd0abbd1 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -23,6 +23,7 @@ L.AnnotationManager = L.Class.extend({
 		this._map.on('AnnotationCancel', this._onAnnotationCancel, this);
 		this._map.on('AnnotationClick', this._onAnnotationClick, this);
 		this._map.on('AnnotationReply', this._onAnnotationReply, this);
+		this._map.on('AnnotationResolve', this._onAnnotationResolve, this);
 		this._map.on('AnnotationSave', this._onAnnotationSave, this);
 		this._map.on('RedlineAccept', this._onRedlineAccept, this);
 		this._map.on('RedlineReject', this._onRedlineReject, this);
@@ -573,6 +574,19 @@ L.AnnotationManager = L.Class.extend({
 		annotation.focus();
 	},
 
+	resolve: function (annotation) {
+		// This is called by WriteTileLayer
+		var comment = {
+			Id: {
+				type: 'string',
+				value: annotation._data.id
+			}
+		};
+		this._map.sendUnoCommand('.uno:ResolveComment', comment);
+		annotation.update();
+		this.update();
+	},
+
 	remove: function (id) {
 		var comment = {
 			Id: {
@@ -733,6 +747,22 @@ L.AnnotationManager = L.Class.extend({
 		this._map.focus();
 	},
 
+	_onAnnotationResolve: function (e) {
+		var comment = {
+			Id: {
+				type: 'string',
+				value: e.annotation._data.id
+			},
+			Text: {
+				type: 'string',
+				value: e.annotation._data.reply
+			}
+		};
+		this._map.sendUnoCommand('.uno:ResolveComment', comment);
+		this.unselect();
+		this._map.focus();
+	},
+
 	_onAnnotationSave: function (e) {
 		var comment;
 		if (e.annotation._data.id === 'new') {
diff --git a/loleaflet/src/layer/marker/Annotation.js b/loleaflet/src/layer/marker/Annotation.js
index 0eedb26a3..a934a5e81 100644
--- a/loleaflet/src/layer/marker/Annotation.js
+++ b/loleaflet/src/layer/marker/Annotation.js
@@ -190,6 +190,13 @@ L.Annotation = L.Layer.extend({
 		}
 		this._author = L.DomUtil.create('table', 'loleaflet-annotation-table', wrapper);
 		var tbody = L.DomUtil.create('tbody', empty, this._author);
+		var rowResolved = L.DomUtil.create('tr', empty, tbody);
+		var tdResolved = L.DomUtil.create(tagTd, 'loleaflet-annotation-resolved', rowResolved);
+		var pResolved = L.DomUtil.create(tagDiv, 'loleaflet-annotation-content-resolved', tdResolved);
+		this._resolved = pResolved;
+
+		this._updateResolvedField(this._data.resolved);
+
 		var tr = L.DomUtil.create('tr', empty, tbody);
 		var tdImg = L.DomUtil.create(tagTd, 'loleaflet-annotation-img', tr);
 		var tdAuthor = L.DomUtil.create(tagTd, 'loleaflet-annotation-author', tr);
@@ -336,6 +343,11 @@ L.Annotation = L.Layer.extend({
 		this._map.fire('AnnotationReply', {annotation: this});
 	},
 
+	_onResolveClick: function (e) {
+		L.DomEvent.stopPropagation(e);
+		this._map.fire('AnnotationResolve', {annotation: this});
+	},
+
 	_updateLayout: function () {
 		var style = this._wrapper.style;
 		style.width = '';
@@ -344,6 +356,10 @@ L.Annotation = L.Layer.extend({
 		style.whiteSpace = '';
 	},
 
+	_updateResolvedField: function(state) {
+		$(this._resolved).text(state=='true' ? 'Resolved' : '');
+	},
+
 	_updateContent: function () {
 		// .text() method will escape the string, does not interpret the string as HTML
 		$(this._contentText).text(this._data.text);
@@ -357,6 +373,8 @@ L.Annotation = L.Layer.extend({
 		this._contentText.origText = this._data.text;
 		$(this._nodeModifyText).text(this._data.text);
 		$(this._contentAuthor).text(this._data.author);
+
+		this._updateResolvedField(this._data.resolved);
 		$(this._authorAvatarImg).attr('src', this._data.avatar);
 		var user = this._map.getViewId(this._data.author);
 		if (user >= 0) {
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 63a47d4bc..ea0c58c7c 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -225,6 +225,12 @@ L.TileLayer = L.GridLayer.extend({
 					callback: function (key, options) {
 						that.onAnnotationRemove.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);
+					}
 				}
 			},
 			events: {
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js
index 8b714b362..e5ffbca4c 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -179,6 +179,10 @@ L.WriterTileLayer = L.TileLayer.extend({
 		this._annotations.reply(annotation);
 	},
 
+	onAnnotationResolve: function (annotation) {
+		this._annotations.resolve(annotation);
+	},
+
 	onChangeAccept: function(id) {
 		this._annotations.acceptChange(id);
 	},
diff --git a/loleaflet/src/unocommands.js b/loleaflet/src/unocommands.js
index 5d5ef423c..bfef61bec 100644
--- a/loleaflet/src/unocommands.js
+++ b/loleaflet/src/unocommands.js
@@ -189,6 +189,7 @@ var unoCommandsArray = {
 	RemoveTableOf:{text:{menu:_('Delete index'),},},
 	RenameTable:{spreadsheet:{menu:_('~Rename Sheet...'),},},
 	ReplyComment:{global:{menu:_('Reply Comment'),},},
+	ResolveComment:{global:{menu:_('Resolve Comment'),},},
 	ResetAttributes:{global:{menu:_('~Clear Direct Formatting'),},spreadsheet:{context:_('Clear Direct Formatting'),menu:_('Clear ~Direct Formatting'),},text:{context:_('Clear Direct Formatting'),menu:_('Clear ~Direct Formatting'),},},
 	RightPara:{global:{context:_('Align Right'),menu:_('Right'),},},
 	RotateLeft:{text:{menu:_('Rotate 90° ~Left'),},},


More information about the Libreoffice-commits mailing list