diff --git a/VERSION b/VERSION index 7ff9fa9..1fdcf1c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1227 \ No newline at end of file +1228 \ No newline at end of file diff --git a/backend/static/index.html b/backend/static/index.html index bf78b9c..ab2e972 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -86,14 +86,14 @@ Ban Yaro - + - - - - - + + + + + @@ -612,11 +612,11 @@ - - - - - + + + + + @@ -626,7 +626,7 @@ - + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index e792a8b..468016a 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 = '1227'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '1228'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator) window.APP_VERSION = APP_VERSION; diff --git a/backend/static/js/boot.js b/backend/static/js/boot.js index c564225..09e1624 100644 --- a/backend/static/js/boot.js +++ b/backend/static/js/boot.js @@ -34,14 +34,15 @@ // Zentrale Feature-Flag-Helper (boot.js lädt vor allen Modulen) // ---------------------------------------------------------- window.BY = window.BY || {}; -// Offline-Vektorkacheln (byt://): Staging-Default AN seit 2026-06-06, Production AUS -// bis Freigabe; localStorage by_offline_tiles '1'/'0' bzw. ?tilesoffline übersteuert. +// Offline-Vektorkacheln (byt://): Default AN auf allen deployten Hosts (Prod + Staging), +// localhost bleibt AUS; localStorage by_offline_tiles '1'/'0' bzw. ?tilesoffline übersteuert. +// Prod-Freigabe René 2026-06-07 (analog by_map_gl, Gerätetests Runde 1+2 bestanden). window.BY.offlineTiles = function () { try { var flag = localStorage.getItem('by_offline_tiles'); if (flag === '1') return true; if (flag === '0') return false; - return location.hostname === 'staging.banyaro.app'; + return /(^|\.)banyaro\.(app|de)$/.test(location.hostname); } catch (e) { return false; } }; diff --git a/backend/static/landing.html b/backend/static/landing.html index 570319a..c662fdf 100644 --- a/backend/static/landing.html +++ b/backend/static/landing.html @@ -4,7 +4,7 @@ - + Ban Yaro — Die Hunde-App für Deutschland, Österreich & Schweiz diff --git a/backend/static/sw.js b/backend/static/sw.js index 9b5f8dc..c0390b0 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -4,7 +4,7 @@ ============================================================ */ // ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab -const VER = '1227'; +const VER = '1228'; const CACHE_VERSION = `by-v${VER}`; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten diff --git a/docs/OFFLINE_MAPS_PLAN.md b/docs/OFFLINE_MAPS_PLAN.md index 32b529e..c440341 100644 --- a/docs/OFFLINE_MAPS_PLAN.md +++ b/docs/OFFLINE_MAPS_PLAN.md @@ -1,6 +1,7 @@ # Offline-Karten (GL/Vektor) — Feature-Plan -**Status:** Runde 2 (adaptives Modell) umgesetzt — **Staging-Default AN**; Production AUS bis Freigabe. +**Status:** LIVE auf Production + Staging (Default AN auf banyaro.app/.de, Prod-Freigabe René 2026-06-07 +nach bestandenen Gerätetests Runde 1+2). localhost = Leaflet/AUS. **Stand:** 2026-06-07. Autor: René + Claude (Design). ## Umsetzungsstand (2026-06-06, v1222 auf Staging) @@ -55,6 +56,17 @@ - Flag-Logik zentralisiert: `boot.js window.BY.offlineTiles()` (vorher 3× dupliziert). - Meta neu: `regions`-Liste (Cap 30) + `deadzones`; `region` (letztes Gebiet) bleibt für Back-Compat. +**✅ Gerätetest-Befunde Runde 2 behoben (v1227):** +- **Giftköder + vermisste Hunde offline sichtbar** (René: „müssen unbedingt sichtbar sein"): + Region-Download speichert zusätzlich `/api/poison` + `/api/lost` der Gegend (`p/_poison`, + `p/_lost`; Reader `MapOffline.alerts(kind, bbox)`). map.js `_loadAll` fällt **pro Quelle** + (nicht alles-oder-nichts) auf localStorage zurück — vorher verhinderte das SW-gecachte + `/api/places` den Fallback, während die Bbox-URL `/api/poison?lat=…` scheiterte. + lost.js merged den Region-Snapshot in beiden Offline-Pfaden. +- **Korridor „unsichtbar"**: Logik war korrekt (Node-Stub-Test `downloadCorridor`/`coverage` + bestanden) — er lag im bereits gespeicherten Gebiet. Nach dem Speichern werden die + gespeicherten Bereiche jetzt blau auf der Routen-Detailkarte eingeblendet (`_detailMap._gl`). + **🔲 Offen (Runde 3):** - **Gerätetest Runde 2** (Budget-Download, Funkloch-Lernen auf echter Gassi-Runde, Korridor, Coverage-Layer) → dann Prod-Freigabe-Entscheidung (BY.offlineTiles-Default erweitern analog `by_map_gl`).