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

Szymon Kłos (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 29 19:45:35 UTC 2019


 loleaflet/src/layer/tile/ImpressTileLayer.js |   10 ++++-
 loleaflet/src/layer/tile/TileLayer.js        |   46 +++++++++++++++++++--------
 loleaflet/src/layer/tile/WriterTileLayer.js  |    7 +++-
 3 files changed, 47 insertions(+), 16 deletions(-)

New commits:
commit bb61033475fc1e8da370e137b50f14b00b59edd2
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue Jul 2 18:28:38 2019 +0200
Commit:     Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Oct 29 20:41:44 2019 +0100

    Use vex in comment modification
    
    Change-Id: Ifbd5516b6c40813931356377fad224c3f67d7936

diff --git a/loleaflet/src/layer/tile/ImpressTileLayer.js b/loleaflet/src/layer/tile/ImpressTileLayer.js
index 1b362c218..2ad1ffed1 100644
--- a/loleaflet/src/layer/tile/ImpressTileLayer.js
+++ b/loleaflet/src/layer/tile/ImpressTileLayer.js
@@ -297,9 +297,13 @@ L.ImpressTileLayer = L.TileLayer.extend({
 	onAnnotationModify: function (annotation) {
 		this.onAnnotationCancel();
 		this._selectedAnnotation = annotation._data.id;
-		annotation.edit();
-		this.scrollUntilAnnotationIsVisible(annotation);
-		annotation.focus();
+		if (window.mode.isMobile() || window.mode.isTablet) {
+			this.newAnnotationVex(annotation, this.onAnnotationSave, /* isMod */ true);
+		} else {
+			annotation.edit();
+			this.scrollUntilAnnotationIsVisible(annotation);
+			annotation.focus();
+		}
 	},
 
 	onAnnotationReply: function (annotation) {
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 7854b198d..2644a9215 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -354,13 +354,24 @@ L.TileLayer = L.GridLayer.extend({
 		return newEvent;
 	},
 
-	newAnnotationVex: function(comment, addCommentFn) {
+	newAnnotationVex: function(comment, addCommentFn, isMod) {
 		var that = this;
 
+		var commentData = null;
+		var content = '';
+		if (comment.author) {
+			// New comment - full data
+			commentData = comment;
+		} else {
+			// Modification
+			commentData = comment._data;
+			content = commentData.text;
+		}
+
 		var dialog = vex.dialog.open({
 			message: '',
 			input: [
-				'<textarea name="comment" content="' + comment.text + '" class="loleaflet-annotation-textarea" style="max-width: 400px" required />'
+				'<textarea name="comment" class="loleaflet-annotation-textarea" style="max-width: 400px" required>' + content + '</textarea>'
 			].join(''),
 			buttons: [
 				$.extend({}, vex.dialog.buttons.YES, { text: _('Save') }),
@@ -368,10 +379,19 @@ L.TileLayer = L.GridLayer.extend({
 			],
 			callback: function (data) {
 				if (data) {
-					that._draft = L.annotation(L.latLng(0, 0), comment, {noMenu: true}).addTo(that._map);
-					that._draft._data.text = data.comment;
+					var annotation = null;
+					if (isMod) {
+						annotation = comment;
+					} else {
+						annotation = L.annotation(L.latLng(0, 0), comment, {noMenu: true}).addTo(that._map);
+						that._draft = annotation;
+					}
+
+					annotation._data.text = data.comment;
 					comment.text = data.comment;
-					addCommentFn.call(that, {annotation: that._draft}, comment);
+
+					// FIXME: Unify annotation code in all modules...
+					addCommentFn.call(that, {annotation: annotation}, comment);
 				}
 			}
 		});
@@ -392,18 +412,20 @@ L.TileLayer = L.GridLayer.extend({
 		this._contentAuthor = L.DomUtil.create(tagDiv, 'loleaflet-annotation-content-author', tdAuthor);
 		this._contentDate = L.DomUtil.create(tagDiv, 'loleaflet-annotation-date', tdAuthor);
 
-		$(this._nodeModifyText).text(comment.text);
-		$(this._contentAuthor).text(comment.author);
-		$(this._authorAvatarImg).attr('src', comment.avatar);
-		var user = this._map.getViewId(comment.author);
+		$(this._nodeModifyText).text(commentData.text);
+		$(this._contentAuthor).text(commentData.author);
+		$(this._authorAvatarImg).attr('src', commentData.avatar);
+		var user = this._map.getViewId(commentData.author);
 		if (user >= 0) {
 			var color = L.LOUtil.rgbToHex(this._map.getViewColor(user));
 			$(this._authorAvatarImg).css('border-color', color);
 		}
 
-		var d = new Date(comment.dateTime.replace(/,.*/, 'Z'));
-		var dateOptions = { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' };
-		$(this._contentDate).text(isNaN(d.getTime()) ? comment.dateTime: d.toLocaleDateString(String.locale, dateOptions));
+		if (commentData.dateTime) {
+			var d = new Date(commentData.dateTime.replace(/,.*/, 'Z'));
+			var dateOptions = { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' };
+			$(this._contentDate).text(isNaN(d.getTime()) ? comment.dateTime: d.toLocaleDateString(String.locale, dateOptions));
+		}
 
 		dialog.contentEl.insertBefore(this._author, dialog.contentEl.childNodes[0]);
 
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js
index 3fd3e2c07..368cd89e4 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -208,7 +208,12 @@ L.WriterTileLayer = L.TileLayer.extend({
 	},
 
 	onAnnotationModify: function (annotation) {
-		this._annotations.modify(annotation);
+		if (window.mode.isMobile() || window.mode.isTablet) {
+			var that = this;
+			this.newAnnotationVex(annotation, function(annotation) { that._annotations._onAnnotationSave(annotation); }, /* isMod */ true);
+		} else {
+			this._annotations.modify(annotation);
+		}
 	},
 
 	onAnnotationRemove: function (id) {


More information about the Libreoffice-commits mailing list