diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a5f5c1..7bc92d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] ### Fixed -- **Admin template preview maps** — Leaflet maps rendered blank in admin preview due to `.card` `overflow: hidden` clipping tile layers. Set `overflow: visible` on the rendered-article card. Also added `.catch()` handlers to map fetch calls so failures are logged to console. +- **Admin template preview maps** — Leaflet maps rendered blank because `article-maps.js` called `L.divIcon()` at the IIFE top level before Leaflet was dynamically loaded, crashing the script. Moved `VENUE_ICON` creation into the `script.onload` callback so it runs after Leaflet is available. Previous commit's `.card` `overflow: visible` fix remains (clips tile layers otherwise). - **Pipeline diagnostic script** (`scripts/check_pipeline.py`) — handle DuckDB catalog naming quirk where `lakehouse.duckdb` uses catalog `lakehouse` instead of `local`, causing SQLMesh logical views to break. Script now auto-detects the catalog via `USE`, and falls back to querying physical tables (`sqlmesh__.__`) when views fail. - **Eurostat gas prices extractor** — `nrg_pc_203` filter missing `unit` dimension (API returns both KWH and GJ_GCV); now filters to `KWH`. - **Eurostat labour costs extractor** — `lc_lci_lev` used non-existent `currency` filter dimension; corrected to `unit: EUR`. diff --git a/web/src/padelnomics/static/js/article-maps.js b/web/src/padelnomics/static/js/article-maps.js index bf7753d..5824b27 100644 --- a/web/src/padelnomics/static/js/article-maps.js +++ b/web/src/padelnomics/static/js/article-maps.js @@ -62,14 +62,7 @@ .catch(function(err) { console.error('Country map fetch failed:', err); }); } - var VENUE_ICON = L.divIcon({ - className: '', - html: '
', - iconSize: [10, 10], - iconAnchor: [5, 5], - }); - - function initCityMap(el) { + function initCityMap(el, venueIcon) { var countrySlug = el.dataset.countrySlug; var citySlug = el.dataset.citySlug; var lat = parseFloat(el.dataset.lat); @@ -91,7 +84,7 @@ : '') : ''; var tip = '' + v.name + '' + (courtLine ? '
' + courtLine : ''); - L.marker([v.lat, v.lon], { icon: VENUE_ICON }) + L.marker([v.lat, v.lon], { icon: venueIcon }) .bindTooltip(tip, { className: 'map-tooltip', direction: 'top', offset: [0, -7] }) .addTo(map); }); @@ -104,7 +97,15 @@ script.src = window.LEAFLET_JS_URL || '/static/vendor/leaflet/leaflet.min.js'; script.onload = function() { if (countryMapEl) initCountryMap(countryMapEl); - if (cityMapEl) initCityMap(cityMapEl); + if (cityMapEl) { + var venueIcon = L.divIcon({ + className: '', + html: '
', + iconSize: [10, 10], + iconAnchor: [5, 5], + }); + initCityMap(cityMapEl, venueIcon); + } }; document.head.appendChild(script); })();