diff --git a/backend/main.py b/backend/main.py index 42f22ba..c2a6929 100644 --- a/backend/main.py +++ b/backend/main.py @@ -410,7 +410,7 @@ async def serve_media(path: str, request: _Request): raise _HE(404, "Nicht gefunden.") return _media_response(filepath) -APP_VER = "993" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "994" # muss mit APP_VER in app.js übereinstimmen @app.get("/.well-known/assetlinks.json") async def assetlinks(): diff --git a/backend/static/js/app.js b/backend/static/js/app.js index aa2c342..67c2516 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '993'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '994'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; // Cache-Bust-Parameter nach Update-Reload sofort entfernen diff --git a/backend/static/js/pages/routes.js b/backend/static/js/pages/routes.js index 4689ded..7213da3 100644 --- a/backend/static/js/pages/routes.js +++ b/backend/static/js/pages/routes.js @@ -726,24 +726,37 @@ window.Page_routes = (() => { document.body.appendChild(ovl); _recOvl = ovl; - const pos = _userPos || { lat: 48.1, lon: 11.5 }; - _recMap = L.map(ovl.querySelector('#rk-rec-map-wrap'), { zoomControl: false, attributionControl: false }) - .setView([pos.lat, pos.lon], 15); - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 19 }).addTo(_recMap); - _recLocMarker = L.circleMarker([pos.lat, pos.lon], { - radius: 8, color: '#fff', weight: 2.5, fillColor: '#3b82f6', fillOpacity: 1 - }).addTo(_recMap); + // Listener sofort nach DOM-Einfügen — nicht nach async-Operationen + ovl.querySelector('#rk-rec-cancel').addEventListener('click', () => _closeRecOvlClean()); + ovl.querySelector('#rk-rec-startbtn').addEventListener('click', _startRecInOvl); - // Get accurate position + // Map-Setup: Leaflet könnte offline fehlen → alles in try/catch + const pos = _userPos || { lat: 48.1, lon: 11.5 }; + try { + if (!window.L) throw new Error('Leaflet not loaded'); + _recMap = L.map(ovl.querySelector('#rk-rec-map-wrap'), { zoomControl: false, attributionControl: false }) + .setView([pos.lat, pos.lon], 15); + L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 19 }).addTo(_recMap); + _recLocMarker = L.circleMarker([pos.lat, pos.lon], { + radius: 8, color: '#fff', weight: 2.5, fillColor: '#3b82f6', fillOpacity: 1 + }).addTo(_recMap); + } catch { + const mapWrap = ovl.querySelector('#rk-rec-map-wrap'); + if (mapWrap) mapWrap.innerHTML = + `