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

mert (via logerrit) logerrit at kemper.freedesktop.org
Mon Mar 16 14:58:15 UTC 2020


 loleaflet/src/control/Control.Toolbar.js      |    6 +---
 loleaflet/src/layer/tile/TileLayer.js         |   33 +++++++++++++++-----------
 loleaflet/src/map/handler/Map.TouchGesture.js |    6 ++--
 3 files changed, 25 insertions(+), 20 deletions(-)

New commits:
commit 2462bf7a19daa56fe2fea9681587c22e6503c360
Author:     mert <mert.tumer at collabora.com>
AuthorDate: Wed Feb 26 16:58:30 2020 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Mar 16 15:57:57 2020 +0100

    hyperlink popup clean up
    
    hyperlink popups shouldnt contain href for links
    also we shouldnt show popup for internal links
    core must handle it
    
    Change-Id: Ice5535890a6c45cea7a3d9f70b21ad5f9e66f2eb
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89550
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js
index 9e8d87d8c..79d392563 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -2626,10 +2626,8 @@ function setupToolbar(e) {
 								map._docLayer._twipsToLatLng(bottomRightTwips, map.getZoom()));
 				//click pos tweak
 				cellCursor._northEast.lng = cellCursor._southWest.lng;
-				map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
-				.setContent('<a href="' + e.url + '" target="_blank">' + e.url + '</a>')
-				.setLatLng(cellCursor._northEast)
-				.openOn(map);
+				map._docLayer._closeURLPopUp();
+				map._docLayer._showURLPopUp(cellCursor._northEast, e.url);
 			} else {
 				map.fire('warn', {url: e.url, map: map, cmd: 'openlink'});
 			}
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 52660885a..d302dccc4 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1112,6 +1112,21 @@ L.TileLayer = L.GridLayer.extend({
 		}
 	},
 
+	_showURLPopUp: function(position, url) {
+		// # for internal links
+		if (!url.startsWith('#')) {
+			this._map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
+			.setContent('<div id="hyperlinkpopup" style="color: #000099; text-decoration: underline;">'+url+'</div>')
+			.setLatLng(position)
+			.openOn(this._map);
+		}
+	},
+
+	_closeURLPopUp: function() {
+		this._map.closePopup(this._map.hyperlinkPopup);
+		this._map.hyperlinkPopup = null;
+	},
+
 	_onHyperlinkClickedMsg: function (textMsg) {
 		var link = null;
 		var coords = null;
@@ -1148,13 +1163,9 @@ L.TileLayer = L.GridLayer.extend({
 		this._map.lastActionByUser = false;
 
 		this._map.hyperlinkUnderCursor = obj.hyperlink;
-		this._map.closePopup(this._map.hyperlinkPopup);
-		this._map.hyperlinkPopup = null;
+		this._closeURLPopUp();
 		if (obj.hyperlink && obj.hyperlink.link) {
-			this._map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
-				.setContent('<a href="' + obj.hyperlink.link + '" target="_blank">' + obj.hyperlink.link + '</a>')
-				.setLatLng(cursorPos)
-				.openOn(this._map);
+			this._showURLPopUp(cursorPos, obj.hyperlink.link);
 		}
 
 		if (!this._map.editorHasFocus() && (modifierViewId === this._viewId) && (this._map._permission === 'edit')) {
@@ -2915,19 +2926,15 @@ L.TileLayer = L.GridLayer.extend({
 			targetURL = targetURL.split('"').join('');
 			targetURL = this._map.makeURLFromStr(targetURL);
 
-			this._map.closePopup(this._map.hyperlinkPopup);
-			this._map.hyperlinkPopup = null;
+			this._closeURLPopUp();
 			if (targetURL) {
-				this._map.hyperlinkPopup = new L.Popup({className: 'hyperlink-popup', closeButton: false, closeOnClick: false})
-				.setContent('<a href="' + targetURL + '" target="_blank">' + targetURL + '</a>')
-				.setLatLng(this._cellCursorMarker._bounds._northEast)
-				.openOn(this._map);
+				this._showURLPopUp(this._cellCursorMarker._bounds._northEast, targetURL);
 			}
 
 		}
 		else if (this._map.hyperlinkPopup)
 		{
-			this._map.closePopup(this._map.hyperlinkPopup);
+			this._closeURLPopUp();
 		}
 	},
 
diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js
index 1fc7479c6..20143958f 100644
--- a/loleaflet/src/map/handler/Map.TouchGesture.js
+++ b/loleaflet/src/map/handler/Map.TouchGesture.js
@@ -326,9 +326,9 @@ L.Map.TouchGesture = L.Handler.extend({
 			this._toolbar.remove();
 
 		// clicked a hyperlink popup - not really designed for this.
-		if (this._map.hyperlinkPopup && e.target &&
-		    this._map.hyperlinkPopup._contentNode == e.target.parentNode)
-			this._map.fire('hyperlinkclicked', {url: e.target.href});
+		if (this._map.hyperlinkPopup && e.target && e.target.id === 'hyperlinkpopup' &&
+			this._map.hyperlinkPopup._contentNode == e.target.parentNode)
+			this._map.fire('hyperlinkclicked', {url: e.target.innerHTML});
 
 		this._map.fire('closepopups');
 		this._map.fire('closemobilewizard');


More information about the Libreoffice-commits mailing list