From af1b2060d0aee214160f1f3dba38820bfd48fa76 Mon Sep 17 00:00:00 2001 From: redmanmale Date: Sat, 1 Oct 2022 12:26:43 +0300 Subject: [PATCH 1/2] Add elements starting with http(s) as clickable links in the map bubbles --- .../static/datasette-cluster-map.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/datasette_cluster_map/static/datasette-cluster-map.js b/datasette_cluster_map/static/datasette-cluster-map.js index 4332000..07d4f99 100644 --- a/datasette_cluster_map/static/datasette-cluster-map.js +++ b/datasette_cluster_map/static/datasette-cluster-map.js @@ -142,6 +142,19 @@ const clusterMapMarkerContent = (row) => { return html.join(""); } } + + function addAsLink(element, parent) { + if (element.startsWith('http://') || element.startsWith('https://')) { + const text = document.createTextNode(element + '\n'); + var link = document.createElement('a'); + link.setAttribute('href', element); + link.appendChild(text); + parent.appendChild(link); + } else { + parent.appendChild(document.createTextNode(element)); + } + }; + // Otherwise, use a
const dl = document.createElement("dl"); Object.keys(row).forEach((key) => { @@ -164,7 +177,12 @@ const clusterMapMarkerContent = (row) => { label = JSON.stringify(value); } } - dd.appendChild(document.createTextNode(label)); + const parts = label.toString().split('\n'); + if (parts.length > 1) { + parts.forEach((part) => addAsLink(part, dd)); + } else { + addAsLink(label.toString(), dd); + } if (extra) { dd.appendChild(extra); } From 588506f6b4c686efcdaf905e237f43bd6fd8af9f Mon Sep 17 00:00:00 2001 From: redmanmale Date: Wed, 10 Apr 2024 22:54:59 +0300 Subject: [PATCH 2/2] fix link view --- datasette_cluster_map/static/datasette-cluster-map.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datasette_cluster_map/static/datasette-cluster-map.js b/datasette_cluster_map/static/datasette-cluster-map.js index 07d4f99..36bef23 100644 --- a/datasette_cluster_map/static/datasette-cluster-map.js +++ b/datasette_cluster_map/static/datasette-cluster-map.js @@ -145,7 +145,7 @@ const clusterMapMarkerContent = (row) => { function addAsLink(element, parent) { if (element.startsWith('http://') || element.startsWith('https://')) { - const text = document.createTextNode(element + '\n'); + const text = document.createTextNode('link\n'); var link = document.createElement('a'); link.setAttribute('href', element); link.appendChild(text); @@ -190,7 +190,7 @@ const clusterMapMarkerContent = (row) => { dl.appendChild(dd); }); return ( - '
' + + '
' + dl.innerHTML + "
" );