78866206b4
Feature: Routenaufzeichnung übersteht App-Updates (Guard + Persistenz)
...
Stufe 1 (Guard): Während aktiver Aufzeichnung wird der SW-/Force-Update-Reload
aufgeschoben (window._byRecording → boot.js/_bySwReload + app.js force-update);
nach Stop/Speichern via window._byReloadIfPending() nachgeholt.
Stufe 2 (Persistenz): Track wird gedrosselt nach localStorage (RecStore) gesichert
und beim nächsten Öffnen der Karten-/Routen-Seite als 'Aufzeichnung fortsetzen?'
angeboten (Resume seedet Track+km+Startzeit). Schützt auch bei Crash/OS-Kill/
manuellem Reload. Greift in map.js UND routes.js. SW v1167
2026-06-04 17:13:23 +02:00
c07b1cc01b
Fix: restliche CSP-blockierte Inline-Handler — Bild-Fallbacks (globaler data-fb Error-Handler) + Hover-Effekte (CSS-Utilities + data-hover-play)
...
App ist jetzt vollständig frei von Inline-Event-Handlern (onerror/onmouseenter/etc.).
data-fb Modi: hide/hide-parent/dim-grandparent/sibling/show-el/emoji/initials + data-fb-src.
Hover: .by-hover-lift/-surface2/-surface3 in utilities.css. SW v1165
2026-06-04 16:22:43 +02:00
2ddd8ac350
Fix: alle funktionalen Inline-Event-Handler → addEventListener/Delegation (von CSP-Härtung 65cfa25 app-weit blockiert)
...
Chat (senden/öffnen/löschen/Foto), Tagebuch-Buch, KI-Berichte, Wiki-Moderation,
Events-Detail, Walks-Lightbox, Routen-Foto, Navigations-CTAs (data-page),
Presse-Copy + Züchter-Landing (externes JS). 35x UI.modal.close → data-modal-close,
28x totes event.stopPropagation entfernt. Verbleibend: kosmetische onerror/Hover. SW v1164
2026-06-04 13:59:27 +02:00
667ed91f33
Routen: Bestätigungs-Toast nach Ablaufen + "X× gelaufen · zuletzt" auf der Karte
...
- record_walk gibt total_km zurück → Toast "🐾 X km gezählt · Lebenswerk Y km".
- Nachtrag-Toast (_flushPendingNavWalk) zeigt ebenfalls km + Lebenswerk.
- list_routes liefert my_walk_count + my_last_walked → Routen-Karte zeigt
"🐾 X× gelaufen · zuletzt heute/gestern/vor N Tagen".
Macht für Angie sichtbar, dass das Ablaufen einer gespeicherten Route mitzählt.
2026-06-04 09:34:03 +02:00
91624dac25
Fix: gelaufene km bei Routen-Navigation gehen verloren wenn nicht über
...
In-App-Zurück geschlossen wird (Angie-Bug)
Bisher wurde walked_km NUR in _closeNav (In-App-Zurück-Pfeil) gespeichert.
Wer die Navigation anders verlässt (Handy sperren/Home/PWA schließen, oder
nur den Dim-Entsperrpfeil + normal schließen), verlor die km.
- Fortschritt laufend in localStorage sichern (überlebt App-Kill).
- _recordNavWalk() Einmal-Guard, aufgerufen von _closeNav UND pagehide.
- _flushPendingNavWalk() trägt beim nächsten App-Start einen nicht
gespeicherten Walk nach.
- Fehler nicht mehr still verschlucken: bleibt in localStorage → Retry.
2026-06-04 09:09:07 +02:00
10e39ed135
Karten-Ausbau (OSM), Forum-Erweiterung, UI-Komponenten, Refactor Tagebuch/Gassi (DRY), Landing/SEO — APP_VER 1155
2026-06-03 17:24:47 +02:00
f934560a12
Routenübersicht: immer Karten-Preview statt erstem Foto, Kamera-Badge bei Routen mit Bildern
...
Bisher: wenn eine Route Fotos hatte, zeigte die Karten-Übersicht das
erste Foto statt der Mini-Map → kein Vergleich der Tracks auf einen
Blick möglich.
Jetzt: die Mini-Map ist immer da, ein kleiner Kamera-Badge oben rechts
zeigt die Anzahl Fotos an (analog zum Tagebuch). Die Fotos sind weiter
unverändert in der Route-Detail-Ansicht zu sehen.
CSS: .rk-card-preview bekommt position:relative für das Badge.
2026-05-30 18:16:46 +02:00
7b3041fc94
DRY: Notiz-Modal zentral in UI.noteModal (11 divergierte Kopien entfernt, ~750 Z. weniger); Fix: Founder-Race in jobs.py atomar + founder_number, SW v1133
2026-05-29 10:51:42 +02:00
73872e2c21
Sprint D: Karten-Familie auf UI.map.create+svgMarker konsolidiert, SW by-v1107
...
Neue zentrale Helper (in Sprint B vorbereitet) jetzt von 5 Seiten genutzt:
walks.js (1 Karten-Init):
- L.map+L.tileLayer → await UI.map.create('walks-map', {...})
- _initMap zu async, Aufrufer in _switchView und _loadData angepasst
- Mini-Karte im Walk-Formular (Modal) bleibt unverändert
(braucht eigene dragging/scrollWheelZoom-Options)
- view-toggle nicht migriert (responsive CSS-Konflikt mit Desktop)
poison.js (1 Karten-Init):
- L.map+L.tileLayer → await UI.map.create('poison-map', {...})
- _initMap zu async, manueller UI.loadLeaflet entfernt
- DangerCircle + User-Marker unverändert
events.js (1 Karten-Init + Diamant-Marker):
- await UI.map.create('ev-map', {...})
- Rotierter Diamant: L.divIcon+L.marker → UI.map.svgMarker
(HTML 1:1 erhalten)
lost.js (1 Karten-Init + Puls-Marker):
- Eigene async _loadLeaflet() Funktion komplett entfernt — UI.map.create
übernimmt das jetzt zentral
- await UI.map.create('lost-map', {...})
- Puls-Animation 🐕 : L.divIcon+L.marker → UI.map.svgMarker
- _initMap zu async
routes.js (6 von 7 Karten-Inits):
- _suggestMap, _recMap, _searchMap, _navMap, trimMap, _buildDetailMap
alle auf UI.map.create umgestellt + zu async
- _buildMiniMap (Route-Card-Preview) bleibt unverändert
(braucht 6 spezifische Interaction-Disable Options)
- View-Toggle auf neue .map-list-toggle Klasse umgestellt
(Border-Inline-Styles raus)
NEUE CSS-KLASSE in components.css:
- .map-list-toggle (vereinheitlichter Karten/Listen-Umschalter)
- Verwendet von routes.js; walks/events können später folgen
Tests 19/19 grün. GPS-Tracking-Logik (Polylines, Recording, Trim)
komplett unangetastet. Marker-Cluster-Logik unverändert.
2026-05-27 08:17:06 +02:00
459cd425f2
Design-System Sprint A: utilities.css + 948 Inline-Styles → Utility-Klassen, SW by-v1102
...
PHASE 1 — Sofort-Cleanup ohne Risiko:
- Neue Datei utilities.css mit ~25 Klassen für häufige Kombinationen:
* text-xs-muted, text-xs-secondary, text-sm-muted, text-sm-secondary
* flex-gap-2/3, flex-col-gap-2/3/4, flex-center-gap-1/2/3
* flex-between, flex-1-min, mb-1/3, mt-1/3
* icon-xs/sm/md/lg, label-block, caption
- index.html bindet utilities.css ein
- mb-3/mt-3 ergänzt (waren in design-system.css unvollständig)
PHASE 2 — .by-tab Modifier für Vereinheitlichung:
- .by-tabs.grid (mit --tab-cols Variable für Admin/Health/etc.)
- .by-tabs.sticky (Desktop vertikale Tabs für Admin)
- .by-tabs.wrap (Zuchthunde, flex-wrap statt scroll)
- .by-tabs.separated (Sitting, mit eigenem Hintergrund + Border)
PHASE 3 — Inline-Style → Klassen-Migration (Python-Script):
- 948 Inline-Styles entfernt (5101 → 4153, -18%)
- 962 Migrationen über 47 Page-Dateien
- Top-Treffer: admin.js (180), health.js (67), dog-profile.js (67),
litters.js (62), settings.js (61), zuchthunde.js (51)
- Patterns: text-muted, text-secondary, text-danger, text-xs-muted,
text-sm-muted, grid-2 (Duplikat-Bug behoben!), flex-col-gap-3,
p-3/4, mb-2/3/4, hidden, w-full, flex-1, ...
- Bewahrt bestehende class-Attribute (mergt korrekt)
Alle 19 Tests grün. Kein visueller Diff erwartet (gleiche Property-Werte).
2026-05-27 07:11:27 +02:00
902e6b8602
Feature: Einmaliger Offline-Hinweis 'App im Vordergrund lassen'
...
Beim ersten offline-Event pro Session erscheint ein blauer Info-Toast (8s):
'App im Vordergrund lassen — so bleiben Offline-Funktionen wie GPS und
Datenspeicherung aktiv.'
sessionStorage-Guard verhindert Wiederholung. SW by-v997, APP_VER 997
2026-05-15 18:28:50 +02:00
1d67d6307e
Fix: Routen-Aufzeichnung offline — Dim-Screen + WakeLock + GPS funktionieren
...
_startRecInOvl() crashte bei null _recMap auf L.polyline().addTo(_recMap) →
WakeLock, watchPosition, _resetRecInactTimer() wurden nie erreicht → Dim-Screen
wurde nie aktiviert, GPS-Track lief nicht.
- L.polyline nur erstellen wenn _recMap && window.L vorhanden
- watchPosition-Callback: _recPolyline?.addLatLng, _recLocMarker?.setLatLng,
_recMap?.setView alle mit Optional Chaining gesichert
- SW by-v996, APP_VER 996
2026-05-15 18:19:55 +02:00
57192ea010
Fix: Routen-Aufzeichnung offline — Buttons Abbruch/Start reagieren nicht
...
L.map() warf ReferenceError wenn Leaflet offline nicht geladen → _openRecOvl()
crashte, Event-Listener für #rk-rec-cancel und #rk-rec-startbtn wurden nie
angehängt. Fix:
- Listener direkt nach appendChild() registrieren (vor jeder async-Operation)
- Map-Setup in try/catch; bei fehlendem Leaflet: Offline-Platzhalter im Map-Bereich
- _recMap?.setView / _recLocMarker?.setLatLng mit Optional Chaining (null-safe)
- SW by-v994, APP_VER 994
2026-05-15 18:11:52 +02:00
f0c1ee3386
Fix: Offline-UX — 📡 statt 🚧 bei offline-Seiten, schnellerer Warm-up, mehr Endpoints gecacht (SW by-v989)
2026-05-15 17:25:24 +02:00
0c0daaad6b
Feat: Routen offline aufzeichnen — LocalStorage-Queue, Cache-Fallback, Auto-Sync (SW by-v987)
2026-05-15 16:53:38 +02:00
b3f1c6bdf3
UX: Routen Standby — Fingerabdruck unter Ring, iOS-Banner Safe-Area (SW by-v948)
2026-05-14 16:35:09 +02:00
2cf87bab7e
UX: Routen Standby — Fingerabdruck-Button statt ganzer Bildschirm (SW by-v947)
2026-05-14 16:29:09 +02:00
3967544de7
Fix: routes.js SyntaxError — _startRecInOvl als async deklariert (SW by-v886)
...
await _recAcquireWakeLock() in nicht-async Funktion → SyntaxError → ganzes Modul
crashte → Fallback "Seite in Entwicklung" auf Production.
2026-05-12 19:24:19 +02:00
8f39c22a7f
Fix: Wake Lock Re-Acquire nach unfreiwilligem Release + visibilitychange-Handler (routes.js + map.js, SW by-v885)
2026-05-12 18:03:35 +02:00
bda61a0e40
Feature: Trauer-Feature, Futter-Verträglichkeit, Multi-Hund-Fixes, Wetter-Ort (Sprint 47)
...
- dog-profile.js: Verstorben-Button, Gedenkseite, KI-Abschiedstext
- database.py: futter_eintraege/reaktionen, route_dogs, exercise_progress.dog_id
- routes/ernaehrung.py: Futter-Verträglichkeit mit 20 Reaktionstypen + Analyse
- routes/routen.py: route_dogs Many-to-Many, Routen editierbar
- routes/training.py: exercise_progress per dog_id
- routes/ki.py: /ki/abschied Trauer-KI
- weather.py: Nominatim Ortsname parallel geladen
- ui.js: dogChip/bindDogChip, visualViewport-Modal
- api.js: gedenken, gedenkseite, futter-Methoden, route_dogs
- worlds.js: Ortsname im Wetter-Chip
- uebungen.js: _progressLoaded-Flag, dog-spezifischer Fortschritt
- trainingsplaene.js: dog_id Unterstützung
- diary.js/health.js: P-Badge Cleanup
- map.js: Wetter-Ort-Anzeige entfernt
- wetter.js: Ort in Wetter-Detail
2026-05-11 19:28:38 +02:00
79fa5684b9
Feature+Fix: Referral-Admin, Pro-Gates, Karten-Layer, onDogChange, Staging-Media (SW by-v855)
...
Features:
- Admin: Referral-Tab (Virality Factor, Top-Werber, letzte Einladungen)
- Karte: Regenradar (RainViewer, zoom→7, color=4), Temperatur-Layer (OWM) mit Zahlen-Grid + Legende
- Wetter-Chip: Umschwung-Warnung bei ≥40%-Sprung in Niederschlagswahrscheinlichkeit
- Freundschaftsanfragen: Accept/Decline direkt in Notifications (kein Pro nötig)
- Freunde-Seite für Standard-User freigeschaltet
Pro-Gates:
- KI-Trainer, Routenvorschläge, Regenradar, Temperatur-Layer jetzt Pro-Feature
- Pro-Badge (P) auf Chips für Admins/Mods in allen Welten + Welten-einrichten
- Oranger Banner auf Pro-Seiten für Admin/Mod/Manager
Bugfixes:
- onDogChange: uebungen.js (Cache leeren + _render), trainingsplaene.js (war leer)
- robots.txt vereinfacht (nur Disallow, kein Allow-Durcheinander)
- Hintergrund-Foto: Querformat-Filter korrigiert (kein Fallback auf Hochformat)
- Staging Media: FileResponse mit korrektem MIME-Type, no-cache statt immutable
- Staging Docker: MEDIA_DIR=/data/media + /prod-media:ro Fallback-Handler
- Staging-Fix: Bild-Upload auf zweitem Hund (war Read-only file system)
2026-05-11 17:23:29 +02:00
5b73443d0a
Fix: iOS-Warnung bei Routenstart — Display wach lassen, GPS stoppt sonst (SW by-v656)
2026-05-03 20:34:00 +02:00
ccb92254b6
Fix: Routenaufzeichnung — Stopp-Button braucht Long-Press (1.8s), DIM-Timer 10s → 5s (SW by-v655)
...
Verhindert versehentliches Stoppen durch Hosentaschen-Druck: Stopp-Button reagiert
nur auf 1.8s Gedrückt-Halten mit Fill-Animation, Einzeltap tut nichts. DIM-Schutz-
Overlay greift jetzt nach 5s statt 10s.
2026-05-03 20:24:14 +02:00
7048499624
Feature: ORS-Wochenlimit (20/Woche), Tages-Cache, Privilegien-Bypass, Datenschutz-Update — SW by-v480, APP_VER 457
2026-04-29 08:23:55 +02:00
ca8bb495b0
Feature: Gassirunden-Chip auf Welcome öffnet direkt ORS-Vorschlag im Routen-Tab — SW by-v479, APP_VER 456
2026-04-29 08:18:16 +02:00
369eae5e5a
Feature: Rundweg-Vorschläge via OpenRouteService — 2/4/6 km, 3 Varianten, Navigation+Speichern — SW by-v478, APP_VER 455
2026-04-29 08:04:25 +02:00
06bd8525ed
Sprint 15: Zeitzone-Fix, Gewichts-Sync, Öffnungszeiten, KI-Bericht, POI-Moderation — SW by-v432, APP_VER 411
...
- client_time: Browser-Lokalzeit bei allen Creates mitschicken (Tagebuch, Notizen,
Forum, Verlorener Hund, Routen) — kein UTC-Versatz mehr bei Einträgen
- Gewicht-Sync: health typ=gewicht schreibt dogs.gewicht_kg, einmalige Migration
- Praxen: opening_hours + lat/lon/osm_id in tieraerzte-Tabelle, OSM-Nearby-Lookup,
Öffnungszeiten in Karte und Detailansicht
- KI-Gesundheitsbericht: alle 2 Wochen automatisch, ki_health_reports-Tabelle,
Frontend-Banner mit Archiv (letzten 5 Berichte)
- POI-Korrekturen: User schlägt Öffnungszeiten-Änderung vor, Moderatoren-Tab
genehmigt/lehnt ab, user_edited-Flag schützt vor Overpass-Überschreibung
- timeutils.py: safe_client_time() zentral für alle Routen
2026-04-26 15:38:50 +02:00
553e9e7854
Sprint 12+13: Tagebuch Day-One-Redesign, Notiz-Feature, Icon-Fixes, SW by-v405
...
Tagebuch:
- Day-One-Listenansicht: Wochentag + Tageszahl + Meta-Zeile (Zeit/Ort/Wetter)
- 4 Ansichten: Liste, Medien-Mosaik, Kalender (mit Sprungbuttons), Karte (GPS-Marker)
- Detail-Ansicht inline im Content-Bereich (kein Fullscreen-Overlay mehr)
- Hero-Bild vollständig sichtbar (object-fit:contain), Lightbox mit Safe-Area
- 2-Spalten-Layout Desktop: Text + Leaflet-Karte + POI-Liste
- EXIF-GPS-Extraktion bei Foto-Upload, historisches Wetter via Archive-API
- NoteStation-Import: Fotos in diary_media (80 Einträge migriert, 94 Medien)
- Stats-Endpoints: /diary/stats, /diary/calendar, /diary/locations
Notiz-Feature:
- Generische notes-Tabelle (parent_type + parent_id + meta_json)
- 📝 -Button in 8 Bereichen, Notizblock-Seite mit KI-Analyse
- KI-Toggle in Einstellungen, notes_ki_enabled in User-Profil
Icons & Design:
- fill:currentColor Fix für welcome/onboarding/friends.js
- --c-icon Variable, --c-text-muted Dark Mode aufgehellt
- 15+ neue Phosphor-Icons aus lokaler Kopie
- CSS Network-First im SW, Cache-Control-Middleware
Infrastruktur:
- Wiki-Anreicherungs-Scheduler-Jobs entfernt (abgeschlossen)
- auth.py: notes_ki_enabled + is_social_media im User-Response
2026-04-25 20:44:46 +02:00
44081a6b9d
Session 2026-04-22: Training, Fixes, KI-Cloud, Dark-Mode
...
Training-System:
- Einheit-Dialog Bugs behoben (UI.toast callable, _dogId via _appState, activeDog.id)
- Virtueller Trainer (rein statistisch): üben/festigen/entdecken/levelup
Empfehlungen auf Basis exercise_progress + sessions, Prognose bis 80%
- Stand erfassen Modal: alle Übungen auf einmal setzen (onboarding)
- Erfolgsindikatoren auf Karten: Ø-Quote + Trend-Pfeil + Anzahl Sessions
- exercise_progress → synthetische Stats im Trainer (ohne Sessions nutzbar)
- Levelup: Tricks empfehlen wenn ≥4 Grundkommandos sitzen
- Kommandos & Fähigkeiten im Hundeprofil + öffentlichem Profil
- 2 neue Problemverhalten-Übungen: Bellen/Kläffen, Enttriggern
Mobile/UI-Fixes:
- Übungskarten: Name + Difficulty oben, Buttons eigene Zeile (kein Umbruch)
- Trainingsgrundlagen: Padding in allen Karten, Hinweis-Boxen Dark-Mode-sicher
- Tab-Sichtbarkeit: Trainer/Suggestions nur auf Übungs-Tabs
- Tagebuch FAB (Neu-Eintrag Button) + Quick-Add Eintrag
- FAB Abstand fix (nav-bottom-height + safe-bottom)
- Suggestion-Karten rgba (Dark-Mode)
- routes.js + uebungen.js: alle Hellfarben → rgba (Dark-Mode-sicher)
- ui.js: UI.toast als callable Function-Object (war nur plain Object)
KI & Backend:
- KI_MODE=cloud + ANTHROPIC_API_KEY gesetzt
- ki.py: Cloud-Fallback wenn local nicht erreichbar + KI_MODE=cloud
- KI-Trainer Tageslimit 10 Anfragen/User + ki_daily_calls Tabelle
- Admin-Panel: KI-Nutzung (heute/Monat/User)
- Status-Report Fix (lost-Tabelle) → 06:00 + 18:00 täglich
- Wiki-Anreicherung läuft jetzt (50 Rassen Startup, 20/Nacht)
- landing.html: Trainings-Features in JSON-LD + Feature-Karten
2026-04-22 19:41:22 +02:00
9a78121a3e
Session 2026-04-19: Navigation, Kompass, Übungsfortschritt
...
Routen-Navigation:
- POI-Marker: farbige Kreise mit Phosphor-Icons (wie Hauptkarte)
- Screensaver: Navi-Pfeil dreht sich via DeviceOrientationEvent (iOS+Android)
- Pfeil-Dämpfung: EMA α=0.12 mit Wrap-Around
- GPS-Distanz-Bug: Fortschritt nur wenn <500m zur Route
- fitBounds: User-Position nur wenn <20km von Route
- Screensaver: "zur Route" vs "verbleibend" kontextabhängig
- Richtungspfeile entlang Route (blau, max 7 Stück)
- Umkehren ins Route-Detail verschoben, Detail-Map rebuildet sich
- rk-header z-index:10 (Leaflet-Tiles liefen drüber)
- 2-Sek. Screensaver-Entsperrung
km-Tracking:
- route_walks Tabelle
- POST /api/routes/{id}/walked (≥50%)
- total_km = erstellte Routes + gelaufene route_walks
- Toast bei neuem Badge
Übungsfortschritt:
- exercise_progress + training_plan_progress Tabellen
- GET/POST /api/training/progress, /plan-progress, /suggestions
- uebungen.js: API-first + localStorage-Fallback + Auto-Migration
- Empfehlungs-Banner (regelbasiert)
- Toast bei "sitzt"
2026-04-19 20:33:01 +02:00
390176383f
Fix: Routen-Header exakte Höhen — height:46px statt min-height, View-Toggle 44×44px quadratisch
2026-04-19 12:31:32 +02:00
385b4540b3
UX: Routen-Header alle Zeilen gleiche Höhe 46px, Inline-Styles durchgängig
2026-04-19 12:28:18 +02:00
4030da3776
Fix: Bottom-Nav z-index 300→700 (über Leaflet), Routen-Buttons auf refresh() aktualisiert
2026-04-19 12:25:33 +02:00
79e88b43ca
UX: Routen-Header Buttons größer (46px Höhe, mehr Padding)
2026-04-19 12:09:34 +02:00
d374b5af61
Fix: Routen-Header Buttons mit Inline-Styles (cache-unabhängig wie Pills)
2026-04-19 12:07:37 +02:00
98dd5d74ee
UX: Routen-Header aufgeräumt — 3 saubere Zeilen, einheitliche Buttons
2026-04-19 12:05:14 +02:00
26bcd07f84
UX: Routenübersicht-Cards nutzen gleiche Pill-Darstellung wie Detail
2026-04-19 12:00:39 +02:00
01a499b740
Fix: Pills mit Inline-Styles (CSS-Cache-unabhängig) + CSS-Version gebumpt
2026-04-19 11:56:47 +02:00
eabc88f0b8
Fix: Hunde-Tauglichkeit Labels vereinfacht (Leine/gut/sehr gut/premium)
2026-04-19 11:47:26 +02:00
54a6615ebb
UX: Route-Pills kompakter, kürzere Texte, Rahmen sichtbar
2026-04-19 11:44:31 +02:00
167c8018bb
UX: Route-Detail Pills text-only, keine Icons, Farben nach Bedeutung
2026-04-19 11:38:52 +02:00
f00084deb8
Fix: Nearby-Gruppen standardmäßig eingeklappt
2026-04-19 11:34:06 +02:00
9ba78f3b16
Fix: Mehrfachauswahl bei Routen-Fotos (multiple attribute + loop)
2026-04-19 11:31:38 +02:00
3144e100f3
UX: Nearby-POIs einklappbar + klickbar + nur relevante Typen
...
- NEARBY_TYPES: Bänke/Wasserstellen entfernt → nur Restaurant, Tierarzt, Zoobedarf
- Gruppen einklappbar (Chevron dreht sich)
- POI-Namen anklickbar → öffnet Apple Maps/Google Maps am POI-Standort
- CSS: Card-Stil für Gruppen, gute Touch-Targets
2026-04-19 11:29:46 +02:00
9a56978f81
UX: Sichtbarkeits-Pill im Route-Body anklickbar (grün/blau)
2026-04-19 11:23:36 +02:00
6f667b5c61
UX: Routen-Footer als einheitliches Icon+Label-Raster
2026-04-19 11:20:37 +02:00
a37b103dfe
Fix: Routen-Footer Icons korrekt
...
- globe → lock-open (globe fehlt im Sprite → leerer Button)
- chat-circle-dots → paper-plane-tilt für 'An Freund senden'
- Toggle-Handler nutzt jetzt lock-open/lock statt lock/globe
2026-04-19 11:17:02 +02:00
e5cbe879ff
Fix: Modal-Footer Layout Routes + Forum
...
Routen-Footer:
- 2-Zeilen-Layout: Aktions-Buttons oben, Schließen full-width unten
- GPX/Teilen/Navi als Text-Icon, Freund/Sichtbarkeit/Löschen als Icon-only rechts
- Keine Overflow/Clipping mehr
Forum-Footer:
- flex-direction:column Layout mit margin-left:auto für Icon-Buttons links
- Löschen/Bearbeiten (Icon) links, Schließen/Antworten rechts
- flex:1 Spacer-Problem behoben
2026-04-19 10:48:49 +02:00
7a25ccae90
Feature/Fix: Routen-Navi, Badge-Klick-Fix, Forum-Edit, Chat-Unread-Refresh
...
- Routen: Navi-Button öffnet Apple Maps/Google Maps mit Start/Ziel-GPS
- Routen: Teilen-Button nutzt navigator.share() mit Fallback auf Clipboard
- Routen: Icon 'share' → 'arrow-square-out' (war nicht im Sprite)
- Nav-Badge: pointer-events:none → Badge blockiert keine Klicks mehr
- visibilitychange: Badges + Chat-Liste sofort refresh bei App-Rückkehr
- Forum: eigene Threads und Antworten bearbeiten (PATCH /threads/content, PATCH /posts)
- SW by-v238, APP_VER 215
2026-04-19 10:34:01 +02:00
b6d2606a23
Feature: Bottom-Nav umgebaut, Dog-Avatar→Welcome, Routen-Filter-Panel, Recording-Fix
...
- Bottom-Nav: Tagebuch | Routen | [+] | Forum | Benachrichtigungen (mit Badge)
- Benachrichtigungs-Badge auch in Bottom-Nav (notif-nav-badge)
- Dog-Avatar-Klick → Welcome-Seite (Name bleibt → Hund-Profil)
- Routen: Filter in aufklappbarem Panel, aktive Filter zeigen roten Punkt
- Routen: Start/Stop-Button fragt Page_map.isRecording() ab, kein veralteter lokaler State
- SW by-v232, APP_VER 209
2026-04-19 10:09:02 +02:00