Merge pull request #1109 from umap-project/direct-link

Also expose direct map URL in the export panel
This commit is contained in:
Yohan Boniface 2023-05-30 14:50:45 +02:00 committed by GitHub
commit bd769091a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 13 deletions

View file

@ -1231,7 +1231,7 @@ L.U.IframeExporter = L.Evented.extend({
return this.map return this.map
}, },
build: function () { buildUrl: function () {
var datalayers = [] var datalayers = []
if (this.options.viewCurrentFeature && this.map.currentFeature) { if (this.options.viewCurrentFeature && this.map.currentFeature) {
this.queryString.feature = this.map.currentFeature.getSlug() this.queryString.feature = this.map.currentFeature.getSlug()
@ -1246,10 +1246,13 @@ L.U.IframeExporter = L.Evented.extend({
} else { } else {
delete this.queryString.datalayers delete this.queryString.datalayers
} }
var currentView = this.options.currentView ? window.location.hash : '', var currentView = this.options.currentView ? window.location.hash : ''
iframeUrl = return this.baseUrl + '?' + L.Util.buildQueryString(this.queryString) + currentView
this.baseUrl + '?' + L.Util.buildQueryString(this.queryString) + currentView, },
code =
build: function () {
var iframeUrl = this.buildUrl()
var code =
'<iframe width="' + '<iframe width="' +
this.dimensions.width + this.dimensions.width +
'" height="' + '" height="' +

View file

@ -732,7 +732,10 @@ L.U.Map.include({
var container = L.DomUtil.create('div', 'umap-share'), var container = L.DomUtil.create('div', 'umap-share'),
embedTitle = L.DomUtil.add('h4', '', container, L._('Embed the map')), embedTitle = L.DomUtil.add('h4', '', container, L._('Embed the map')),
iframe = L.DomUtil.create('textarea', 'umap-share-iframe', container), iframe = L.DomUtil.create('textarea', 'umap-share-iframe', container),
urlTitle = L.DomUtil.add('h4', '', container, L._('Direct link')),
exportUrl = L.DomUtil.create('input', 'umap-share-url', container),
option option
exportUrl.type = 'text'
var UIFields = [ var UIFields = [
['dimensions.width', { handler: 'Input', label: L._('width') }], ['dimensions.width', { handler: 'Input', label: L._('width') }],
['dimensions.height', { handler: 'Input', label: L._('height') }], ['dimensions.height', { handler: 'Input', label: L._('height') }],
@ -766,6 +769,7 @@ L.U.Map.include({
var iframeExporter = new L.U.IframeExporter(this) var iframeExporter = new L.U.IframeExporter(this)
var buildIframeCode = () => { var buildIframeCode = () => {
iframe.innerHTML = iframeExporter.build() iframe.innerHTML = iframeExporter.build()
exportUrl.value = window.location.protocol + iframeExporter.buildUrl()
} }
buildIframeCode() buildIframeCode()
var builder = new L.U.FormBuilder(iframeExporter, UIFields, { var builder = new L.U.FormBuilder(iframeExporter, UIFields, {
@ -773,7 +777,7 @@ L.U.Map.include({
}) })
var iframeOptions = L.DomUtil.createFieldset( var iframeOptions = L.DomUtil.createFieldset(
container, container,
L._('Iframe export options') L._('Export options')
) )
iframeOptions.appendChild(builder.build()) iframeOptions.appendChild(builder.build())
if (this.options.shortUrl) { if (this.options.shortUrl) {