[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - loleaflet/src
Henry Castro
hcastro at collabora.com
Thu Jun 8 11:22:44 UTC 2017
loleaflet/src/layer/AnnotationManager.js | 37 +++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 7 deletions(-)
New commits:
commit 7447e2239d34aaf568421e4b4f1d67a521d4914b
Author: Henry Castro <hcastro at collabora.com>
Date: Tue May 30 15:59:00 2017 -0400
loleaflet: merge comments and redlines items
Comments and Redlines were mutually exclusive, but a document
can contain both.
Change-Id: Idb13f0c0e1216edc6bed3291c0c486b45ad74b56
Reviewed-on: https://gerrit.libreoffice.org/38235
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js
index 3764e631..d6306487 100644
--- a/loleaflet/src/layer/AnnotationManager.js
+++ b/loleaflet/src/layer/AnnotationManager.js
@@ -28,21 +28,28 @@ L.AnnotationManager = L.Class.extend({
// Remove only text comments from the document (excluding change tracking comments)
clear: function () {
- for (var key in this._items) {
- if (!this._items[key].trackchange) {
- this._map.removeLayer(this._items[key]);
+ var it = 0;
+ while (it < this._items.length) {
+ if (!this._items[it].trackchange) {
+ this._map.removeLayer(this._items[it]);
+ this._items.splice(it, 1);
+ } else {
+ it++;
}
}
- this._items = [];
this._selected = null;
this._map.removeLayer(this._arrow);
},
// Remove only change tracking comments from the document
clearChanges: function() {
- for (var key in this._items) {
- if (this._items[key].trackchange) {
- this._map.removeLayer(this._items[key]);
+ var it = 0;
+ while (it < this._items.length) {
+ if (this._items[it].trackchange) {
+ this._map.removeLayer(this._items[it]);
+ this._items.splice(it, 1);
+ } else {
+ it++;
}
}
},
@@ -119,6 +126,8 @@ L.AnnotationManager = L.Class.extend({
fill: function (comments) {
var comment;
this.clear();
+ // items contains redlines
+ var ordered = !this._items.length;
for (var index in comments) {
comment = comments[index];
this.adjustComment(comment);
@@ -128,6 +137,12 @@ L.AnnotationManager = L.Class.extend({
this._items.push(L.annotation(this._map.options.maxBounds.getSouthEast(), comment).addTo(this._map));
}
if (this._items.length > 0) {
+ if (!ordered) {
+ this._items.sort(function(a, b) {
+ return Math.abs(a._data.anchorPos.min.y) - Math.abs(b._data.anchorPos.min.y) ||
+ Math.abs(a._data.anchorPos.min.x) - Math.abs(b._data.anchorPos.min.x);
+ });
+ }
this._map._docLayer._updateMaxBounds(true);
this.layout();
}
@@ -136,6 +151,8 @@ L.AnnotationManager = L.Class.extend({
fillChanges: function(redlines) {
var changecomment;
this.clearChanges();
+ // items contains comments
+ var ordered = !this._items.length;
for (var idx in redlines) {
changecomment = redlines[idx];
if (!this.adjustRedLine(changecomment)) {
@@ -148,6 +165,12 @@ L.AnnotationManager = L.Class.extend({
this._items.push(L.annotation(this._map.options.maxBounds.getSouthEast(), changecomment).addTo(this._map));
}
if (this._items.length > 0) {
+ if (!ordered) {
+ this._items.sort(function(a, b) {
+ return Math.abs(a._data.anchorPos.min.y) - Math.abs(b._data.anchorPos.min.y) ||
+ Math.abs(a._data.anchorPos.min.x) - Math.abs(b._data.anchorPos.min.x);
+ });
+ }
this._map._docLayer._updateMaxBounds(true);
this.layout();
}
More information about the Libreoffice-commits
mailing list