diff --git a/umap/static/umap/js/umap.features.js b/umap/static/umap/js/umap.features.js index 7a6911c8..e7fb7e73 100644 --- a/umap/static/umap/js/umap.features.js +++ b/umap/static/umap/js/umap.features.js @@ -157,6 +157,9 @@ L.U.FeatureMixin = { getDisplayName: function (fallback) { if (fallback === undefined) fallback = this.datalayer.options.name; var key = this.getOption('labelKey') || 'name'; + // Variables mode. + if (key.indexOf("{") != -1) return L.Util.greedyTemplate(key, this.extendedProperties()); + // Simple mode. return this.properties[key] || this.properties.title || fallback; }, diff --git a/umap/static/umap/test/Feature.js b/umap/static/umap/test/Feature.js index fce7ff3e..ee908e4f 100644 --- a/umap/static/umap/test/Feature.js +++ b/umap/static/umap/test/Feature.js @@ -179,6 +179,17 @@ describe('L.U.FeatureMixin', function () { }); + describe('#tooltip', function () { + + it('should have a tooltip when active and allow variables', function () { + this.map.options.showLabel = true; + this.map.options.labelKey = "Foo {name}"; + this.datalayer.redraw(); + assert.equal(qs('.leaflet-tooltip-pane .leaflet-tooltip').textContent, "Foo name poly"); + }); + + }); + describe('#properties()', function () { it('should rename property', function () {