Merge pull request #1251 from umap-project/explicit-default

Explicitely use map default when dynamic var is unset
This commit is contained in:
Yohan Boniface 2023-08-15 07:50:42 +02:00 committed by GitHub
commit b70e20cc89
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 9 deletions

View file

@ -253,6 +253,10 @@ L.Util.buildQueryString = (params) => {
L.Util.getBaseUrl = () => `//${window.location.host}${window.location.pathname}` L.Util.getBaseUrl = () => `//${window.location.host}${window.location.pathname}`
L.Util.hasVar = (value) => {
return typeof value === 'string' && value.indexOf('{') != -1
}
L.DomUtil.add = (tagName, className, container, content) => { L.DomUtil.add = (tagName, className, container, content) => {
const el = L.DomUtil.create(tagName, className, container) const el = L.DomUtil.create(tagName, className, container)
if (content) { if (content) {
@ -548,7 +552,9 @@ L.U.Help = L.Class.extend({
'A comma separated list of numbers that defines the stroke dash pattern. Ex.: "5, 10, 15".' 'A comma separated list of numbers that defines the stroke dash pattern. Ex.: "5, 10, 15".'
), ),
zoomTo: L._('Zoom level for automatic zooms'), zoomTo: L._('Zoom level for automatic zooms'),
labelKey: L._('The name of the property to use as feature label (eg.: "nom"). You can also use properties inside brackets to use more than one or mix with static content (eg.: "{name} in {place}")'), labelKey: L._(
'The name of the property to use as feature label (eg.: "nom"). You can also use properties inside brackets to use more than one or mix with static content (eg.: "{name} in {place}")'
),
stroke: L._('Whether to display or not polygons paths.'), stroke: L._('Whether to display or not polygons paths.'),
fill: L._('Whether to fill polygons with color.'), fill: L._('Whether to fill polygons with color.'),
fillColor: L._('Optional. Same as color if not set.'), fillColor: L._('Optional. Same as color if not set.'),
@ -557,7 +563,9 @@ L.U.Help = L.Class.extend({
permanentCredit: L._( permanentCredit: L._(
'Will be permanently visible in the bottom left corner of the map' 'Will be permanently visible in the bottom left corner of the map'
), ),
sortKey: L._('Comma separated list of properties to use for sorting features. To reverse the sort, put a minus sign (-) before. Eg. mykey,-otherkey.'), sortKey: L._(
'Comma separated list of properties to use for sorting features. To reverse the sort, put a minus sign (-) before. Eg. mykey,-otherkey.'
),
slugKey: L._('The name of the property to use as feature unique identifier.'), slugKey: L._('The name of the property to use as feature unique identifier.'),
filterKey: L._('Comma separated list of properties to use when filtering features'), filterKey: L._('Comma separated list of properties to use when filtering features'),
advancedFilterKey: L._( advancedFilterKey: L._(

View file

@ -185,7 +185,7 @@ L.U.FeatureMixin = {
if (fallback === undefined) fallback = this.datalayer.options.name if (fallback === undefined) fallback = this.datalayer.options.name
const key = this.getOption('labelKey') || 'name' const key = this.getOption('labelKey') || 'name'
// Variables mode. // Variables mode.
if (key.indexOf('{') != -1) if (L.Util.hasVar(key))
return L.Util.greedyTemplate(key, this.extendedProperties()) return L.Util.greedyTemplate(key, this.extendedProperties())
// Simple mode. // Simple mode.
return this.properties[key] || this.properties.title || fallback return this.properties[key] || this.properties.title || fallback
@ -277,11 +277,9 @@ L.U.FeatureMixin = {
getDynamicOption: function (option, fallback) { getDynamicOption: function (option, fallback) {
let value = this.getOption(option, fallback) let value = this.getOption(option, fallback)
// There is a variable inside. // There is a variable inside.
if (typeof value === 'string' && value.indexOf('{') != -1) { if (L.Util.hasVar(value)) {
value = L.Util.greedyTemplate(value, this.properties) value = L.Util.greedyTemplate(value, this.properties, true)
// We've not been able to replace the variable, let's reset if (L.Util.hasVar(value)) value = this.map.getDefaultOption(option)
// so we can set a decent default at next step.
if (value.indexOf('{') != -1) value = undefined
} }
return value return value
}, },

View file

@ -542,7 +542,7 @@ L.FormBuilder.IconUrl = L.FormBuilder.BlurInput.extend({
}, },
udpatePreview: function () { udpatePreview: function () {
if (this.value() && this.value().indexOf('{') === -1) { if (L.Util.hasVar(this.value())) {
// Do not try to render URL with variables // Do not try to render URL with variables
if (this.isUrl()) { if (this.isUrl()) {
const img = L.DomUtil.create( const img = L.DomUtil.create(