loleaflet/dist/loleaflet.css | 15 ++++++++++++ loleaflet/src/layer/AnnotationManager.js | 29 +++++++++++++++++++++++- loleaflet/src/layer/marker/Annotation.js | 4 +-- loleaflet/src/layer/tile/TileLayer.js | 33 ++++++++++++++++++++++++++++ loleaflet/src/layer/tile/WriterTileLayer.js | 8 ++++++ 5 files changed, 86 insertions(+), 3 deletions(-)
New commits: commit 7c844788402bcb1c1aaf2f519f94b3bb66085ea5 Author: Pranav Kant <pran...@collabora.co.uk> Date: Thu Mar 9 17:11:01 2017 +0530 loleaflet: Allow accepting/rejecting a change from sidebar object Change-Id: I309b33c4569bc74c69200298566734e16d08b305 diff --git a/loleaflet/dist/loleaflet.css b/loleaflet/dist/loleaflet.css index 14d6a93..de2d830 100644 --- a/loleaflet/dist/loleaflet.css +++ b/loleaflet/dist/loleaflet.css @@ -228,3 +228,18 @@ body { .loleaflet-annotation-menu:hover { border: 1px solid darkgrey; } + +.loleaflet-annotation-menu-redline { + background: url(../images/submenu.png) no-repeat; + margin: 0; + padding: 0; + min-width: 15px; + height: 21px; + text-align: right; + border: 1px solid transparent; + display: inline-block; +} + +.loleaflet-annotation-menu-redline:hover { + border: 1px solid darkgrey; +} diff --git a/loleaflet/src/layer/AnnotationManager.js b/loleaflet/src/layer/AnnotationManager.js index c7d13cc..c747ad7 100644 --- a/loleaflet/src/layer/AnnotationManager.js +++ b/loleaflet/src/layer/AnnotationManager.js @@ -215,6 +215,32 @@ L.AnnotationManager = L.Class.extend({ this._map.focus(); }, + acceptChange: function(id) { + var command = { + AcceptTrackedChange: { + type: 'unsigned short', + value: id.substring('change-'.length) + } + }; + this._map.sendUnoCommand('.uno:AcceptTrackedChange', command); + this._map.removeLayer(this.removeItem(id)); + this.unselect(); + this._map.focus(); + }, + + rejectChange: function(id) { + var command = { + RejectTrackedChange: { + type: 'unsigned short', + value: id.substring('change-'.length) + } + }; + this._map.sendUnoCommand('.uno:RejectTrackedChange', command); + this._map.removeLayer(this.removeItem(id)); + this.unselect(); + this._map.focus(); + }, + onACKComment: function (obj) { var changetrack = obj.redline ? true : false; var action = changetrack ? obj.redline.action : obj.comment.action; @@ -224,6 +250,7 @@ L.AnnotationManager = L.Class.extend({ // transform change tracking index into an id obj.redline.id = 'change-' + obj.redline.index; obj.redline.anchorPos = L.LOUtil.stringToPoint(obj.redline.textRange); + obj.redline.trackchange = true; obj.redline.text = obj.redline.comment; this.add(obj.redline, false); this._map.focus(); @@ -253,7 +280,6 @@ L.AnnotationManager = L.Class.extend({ this.unselect(); } } else if (action === 'Modify') { - console.log(action); id = changetrack ? 'change-' + obj.redline.index : obj.comment.id; var modified = this.getItem(id); if (modified) { @@ -261,6 +287,7 @@ L.AnnotationManager = L.Class.extend({ if (changetrack) { obj.redline.anchorPos = obj.redline.anchorPos ? L.LOUtil.stringToPoing(obj.redline.anchorPos) : modified._data.anchorPos; obj.redline.text = obj.redline.comment; + obj.redline.id = id; modifiedObj = obj.redline; } else { obj.comment.anchorPos = obj.comment.anchorPos ? L.LOUtil.stringToPoint(obj.comment.anchorPos) : diff --git a/loleaflet/src/layer/marker/Annotation.js b/loleaflet/src/layer/marker/Annotation.js index 14383a9..2c55b57 100644 --- a/loleaflet/src/layer/marker/Annotation.js +++ b/loleaflet/src/layer/marker/Annotation.js @@ -92,7 +92,7 @@ L.Annotation = L.Layer.extend({ L.DomUtil.create('div', 'loleaflet-annotation-userline', tdImg); this._contentAuthor = L.DomUtil.create('div', 'loleaflet-annotation-content-author', tdAuthor); this._contentDate = L.DomUtil.create('div', 'loleaflet-annotation-date', tdAuthor); - var divMenu = L.DomUtil.create('div', 'loleaflet-annotation-menu', tdMenu); + var divMenu = L.DomUtil.create('div', this._data.trackchange ? 'loleaflet-annotation-menu-redline' : 'loleaflet-annotation-menu', tdMenu); divMenu.annotation = this; this._contentNode = L.DomUtil.create('div', 'loleaflet-annotation-content', wrapper); this._editNode = L.DomUtil.create('div', 'loleaflet-annotation-edit', wrapper); @@ -131,7 +131,7 @@ L.Annotation = L.Layer.extend({ _onMouseClick: function (e) { var target = e.target || e.srcElement; L.DomEvent.stopPropagation(e); - if (L.DomUtil.hasClass(target, 'loleaflet-annotation-menu')) { + if (L.DomUtil.hasClass(target, 'loleaflet-annotation-menu') || L.DomUtil.hasClass(target, 'loleaflet-annotation-menu-redline')) { $(target).contextMenu(); return; } diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index 27b988c..8fae7f9 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -198,6 +198,39 @@ L.TileLayer = L.GridLayer.extend({ } } }); + $.contextMenu({ + selector: '.loleaflet-annotation-menu-redline', + trigger: 'none', + className: 'loleaflet-font', + items: { + modify: { + name: _('Comment'), + callback: function (key, options) { + that.onAnnotationModify.call(that, options.$trigger.get(0).annotation); + } + }, + accept: { + name: _('Accept'), + callback: function (key, options) { + that.onChangeAccept.call(that, options.$trigger.get(0).annotation._data.id); + } + }, + reject: { + name: _('Reject'), + callback: function (key, options) { + that.onChangeReject.call(that, options.$tigger.get(0).annotation._data.id); + } + } + }, + events: { + show: function (options) { + options.$trigger.get(0).annotation._contextMenu = true; + }, + hide: function (options) { + options.$trigger.get(0).annotation._contextMenu = false; + } + } + }); this._map._socket.sendMessage('commandvalues command=.uno:AcceptTrackedChanges'); map._fadeAnimated = false; diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js index b2013d5..6c9ac2d 100644 --- a/loleaflet/src/layer/tile/WriterTileLayer.js +++ b/loleaflet/src/layer/tile/WriterTileLayer.js @@ -27,6 +27,14 @@ L.WriterTileLayer = L.TileLayer.extend({ this._annotations.remove(id); }, + onChangeAccept: function(id) { + this._annotations.acceptChange(id); + }, + + onChangeReject: function(id) { + this._annotations.rejectChange(id); + }, + _onCommandValuesMsg: function (textMsg) { var values = JSON.parse(textMsg.substring(textMsg.indexOf('{'))); if (!values) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits