Commit graph

117 commits

Author SHA1 Message Date
f0b5e6e89b Fix: Desktop-Welten-Labels — größer (13px), heller, Text-Schatten, Pill-Hintergrund aktiv, SW by-v652 2026-05-03 11:12:54 +02:00
f4052fbb7d Feature: Welten-Labels klickbar (JETZT|HUND|WELT), aktives Label hervorgehoben, Desktop-Tab-Optik, SW by-v651 2026-05-03 11:09:14 +02:00
a84df71383 Feature: JETZT-Welt — Streak+Gassirunde+Übung als kompakte 3er-Chip-Zeile, SW by-v650 2026-05-03 11:07:27 +02:00
bb8ceaf114 Feature: JETZT-Welt — Gassirunde+Übungs-Vorschlag-Balken, Desktop-Zahnrad entfernt, SW by-v648 2026-05-03 11:02:57 +02:00
1d50bf1430 Fix: Desktop-Sidebar entfernt — kein padding-left, Map/Route volle Breite, SW by-v647 2026-05-03 10:57:39 +02:00
cd5aa73df3 Fix: Welten-Overlay Gradient statt flachem Schwarz — Mitte leuchtet, SW by-v646 2026-05-03 10:55:45 +02:00
0488cde13f Fix: Zurück-Button primär-orange, Map/Route vollbild (kein weißer Balken), Map-FABs 54px und über Back-Button, SW by-v645 2026-05-03 10:52:48 +02:00
150776eab4 Feature: Welten-Navigation — Bottom-Nav+Header entfernt, Zurück-FAB (rund, dunkel), SW by-v644 2026-05-03 10:46:12 +02:00
860de6d2a7 Fix: Welten Footer-Links dezent hervorgehoben — heller, Underline, Text-Shadow, SW by-v643 2026-05-03 10:33:49 +02:00
4da2088074 Feature: Welten — Profil-Chip entfernt, Footer-Links (Impressum/Die100/Datenschutz), SW by-v642 2026-05-03 10:31:21 +02:00
dfd68f2a07 Feature: Ausgaben-Formular redesigned — Kategorie-Kacheln, €-Prefix, Wiederholungs-Toggle, SW by-v607 2026-05-02 10:58:47 +02:00
798289ae5a Feature: Daueraufträge in Ausgaben — monatlich/quartalsweise/jährlich, Scheduler, SW by-v605 2026-05-02 10:51:28 +02:00
0d31d04275 Feature: Ausgaben-Seite — visuelles Redesign aller 3 Tabs
- Übersicht: Hero-Card mit Gradient statt grauer Zeile, Vormonat-Trendpfeil (+/-%)
- Kacheln: Icon oben, Betrag in primary-Farbe, Label klein darunter
- Einträge: farbiges Icon-Badge (--kat-color), kompakter Monat-Trennstreifen mit Summe,
  Betrag fett rechts, Löschen-Icon direkt am Eintrag ohne Modal-Umweg
- Statistik: gestapelte Top-2-Kategorien-Balken pro Monat (CSS-only),
  Donut-Diagramm via CSS conic-gradient, Kategorie-Legende
- CSS: 435 neue Zeilen (exp-*) in components.css angehängt, keine bestehenden geändert
2026-05-02 10:11:43 +02:00
b47a54db39 Fix: Media-Symlinks beim Start, Sitter-Datenschutztext, Recalls Dark-Mode, Ausweis neuer Tab, SW by-v600 2026-05-02 10:09:06 +02:00
742ad189e8 Feature: Sprint31 — 9 Features merged (Streak, Ausgaben, KI-Tierarzt, Rückrufe, Adoption, Vet+Befunde, Hundepass, Playdate, Rassenerkennung)
- Trainings-Streak: streak.py, DB training_streaks, Scheduler 19:00, Widget in welcome.js, Ping in uebungen.js
- Ausgaben-Tracker: expenses.py, expenses.js, DB expenses-Tabelle
- KI-Tierarztfragen: ki.py /tierarzt, health.js Button+Modal, DB ki_tierarzt_log
- Rückruf-Alarm: recalls.py, recalls.js, DB feed_recalls, Scheduler 08:00 RASFF
- Adoption: adoption.py, adoption.js, DB adoption_cache
- Tierarzt-Favorit + Befunde: tieraerzte.py /my-favorite+/favorite, health_docs.py, health.js, api.js, DB favorite_vets+health_documents
- Digitaler Hundepass: passport.py, dog-profile.js, main.py /pass/{token}, DB vaccinations+medications+dog_passport_meta+passport_shares, requirements.txt fpdf2
- Playdate-Matching: playdate.py, playdate.js, DB playdate_listings+playdate_requests
- Rassen-Erkennung: ki.py /rasse-erkennung (Claude Vision), dog-profile.js+wiki.js, CSS .rasse-result-card, DB ki_rasse_log
2026-05-02 09:29:48 +02:00
031c6028ac Feature: HdM Community-Vote — alle öffentlichen Hunde wählbar, eigene ausgenommen, SW by-v597 2026-05-02 08:44:59 +02:00
d1572c52bc Feature: Forum Tab-Pills — Marquee-Scroll bei Hover für abgeschnittenen Text, SW by-v595 2026-05-02 08:35:49 +02:00
ea2a83b29e Feature: Filme-Suche, HdM ins Forum + Gewinner-Badge im Profil, SW by-v594
- Filme-Seite: Suchfeld (filtert live nach Titel, Rasse, Genre, Beschreibung)
- Filme-Seite: Tab "Hund des Monats" entfernt
- Forum: kompakte HdM-Kachel über der Suche (Sieger + Stimmen), Klick öffnet Abstimmungs-Modal
- Hundeprofil: goldene Badges für jeden gewonnenen Monat (🏆 Mai 2026 …)
- DB: Tabelle hund_des_monats_wins (dauerhaft, dog_id + monat + stimmen)
- Scheduler: Job am 1. des Monats 00:05 — schreibt Vormonats-Sieger, Push an Besitzer
- Dogs-API: liefert hdm_wins[] pro Hund mit
2026-05-02 08:12:29 +02:00
8bdd67573e Fix: form-label Kontrast — c-text statt c-text-secondary, SW by-v584 2026-05-01 18:58:57 +02:00
d2e3009402 Fix: Desktop overflow-y:visible auf #page-content — verhindert Event-Capture, SW by-v543 2026-04-30 10:57:52 +02:00
466b4a3d6d Fix: overscroll-behavior-y:none nur mobile (max-width:767px) — Desktop-Mausrad freigegeben, SW by-v542 2026-04-30 10:42:47 +02:00
c0a1b2e922 Restore: CSS exakt auf v1.1.0 + overscroll-behavior-y:none auf #page-content — SW by-v540 2026-04-30 10:06:45 +02:00
4a634fbbd1 Fix: Desktop-Mausrad — overscroll-behavior:none von html/body entfernt, Desktop auf Original-Layout, SW by-v539 2026-04-30 09:58:25 +02:00
2943f98637 Fix: Desktop-Mausrad — #page-content height:100dvh+overflow-y:auto auf Desktop, interner Scroll, SW by-v538 2026-04-30 09:46:36 +02:00
3cb18acb44 Fix: Desktop Mausrad-Scroll — overscroll-behavior:auto auf html/body + #page-content ab 768px, SW by-v537 2026-04-30 09:41:50 +02:00
f01b0b228d Fix: Desktop-Scroll — overflow-y:visible auf #page-content ab 768px, SW by-v536 2026-04-30 09:32:54 +02:00
5a6ca5496b Revert nav: Original-Layout restauriert + overscroll-behavior:none — SW by-v535, APP_VER 512 2026-04-30 09:00:30 +02:00
9506eea0d9 Fix: Nav als Flex-Kind in #app{height:100dvh} — kein position:fixed, Desktop-Scroll repariert, SW by-v534 2026-04-30 08:52:39 +02:00
03508f8aa3 Fix: #app height:100dvh statt position:fixed+inset:0 — dvh inkl. safe areas, SW by-v533 2026-04-30 08:41:41 +02:00
460cc47844 Fix: overscroll-behavior:none auf html/body/#page-content — iOS Bounce bewegt keinen fixed Nav mehr, SW by-v531 2026-04-30 08:29:55 +02:00
b62d1ba933 Fix: Bottom-Nav position:fixed zurück — #app fixed+inset:0 verhindert Drift, nav erreicht Bildschirmrand, SW by-v530 2026-04-30 08:21:25 +02:00
cd5688ae8f Fix: iOS Bottom-Nav — #app position:fixed+inset:0, Nav als Flex-Kind
position:fixed auf #bottom-nav funktioniert in iOS PWA-Standalone-Mode nicht
zuverlässig (driftet beim Scrollen). Fix: #app selbst position:fixed;inset:0
→ Nav ist normales Flex-Kind am unteren Rand → kein iOS-Fixed-Bug möglich.
Desktop: #app position:static via Media Query. SW by-v529, APP_VER 506
2026-04-30 08:04:11 +02:00
1056824be3 Fix: Routen-Seite aus FULLSCREEN_PAGES — window-scroll statt interner Container, SW by-v528 2026-04-30 07:53:33 +02:00
359d46d9bc Fix: Bottom-Nav iOS — window scrollt statt #page-content
position:fixed funktioniert auf iOS nur stabil wenn der window-scroll aktiv ist.
Innere Scroll-Container lassen fixed-Elemente während des Scrollens 'driften'.

- #page-content: overflow:visible (window scrollt)
- body.page-fullscreen: Klasse für Karte/Routen/Chat/Gassi/Sitting
  → dort overflow:hidden + interner Scroll wie bisher
- navigate(): setzt/entfernt page-fullscreen bei jedem Seitenwechsel
- SW by-v527, APP_VER 504
2026-04-30 07:43:11 +02:00
0e6ab1b773 Revert: App-Shell-CSS auf Original — height/overflow auf #app+body bricht iOS PWA
Behalte nur sichere Fixes:
- #page-content min-height:0 (iOS Flex-Bug)
- #bottom-nav transform:translateZ(0) (GPU-Layer)
- SW by-v526, APP_VER 503
2026-04-30 07:19:37 +02:00
8fb4137465 Fix: body overflow:hidden entfernt — bricht iOS Safari PWA-Rendering, SW by-v525 2026-04-30 06:36:31 +02:00
bbedd658fa Fix: Bottom-Nav iOS — min-height:0 auf #page-content + GPU-Layer auf #bottom-nav
- #page-content min-height:0: iOS-Flex-Bug — ohne das schrumpft der Container
  nicht und overflow-y:auto greift nicht → body scrollt statt #page-content
- #bottom-nav: transform:translateZ(0) + will-change:transform für stabile
  GPU-Compositing-Schicht auf iOS Safari
- #app: height:100% (kaskadiert von body) statt 100dvh
- SW by-v523, APP_VER 500
2026-04-30 06:20:54 +02:00
b27e4b006f Fix: Bottom-Nav immer fixiert + Gründer-Seite null-Error
- body: height:100% + overflow:hidden — body scrollt nie mehr selbst
- #app: height:100dvh (war min-height) + overflow:hidden — exakte Viewport-Höhe
- Desktop (768px+): #app height:auto + min-height:100dvh zurück (kein Bottom-Nav)
- #page-content: -webkit-overflow-scrolling:touch für iOS-Momentum-Scroll
- gruender.js: null-Check vor _renderStats() gegen "null is not an object"-Crash
- SW by-v522, APP_VER 499
2026-04-29 22:01:33 +02:00
a3679354c8 Feature: Übungen Desktop 2-zeilige Tabs + globale Suche über alle Kategorien — SW by-v496, APP_VER 473 2026-04-29 13:07:41 +02:00
91340be5a3 Feature: Vollständige Züchter-Rolle — Antrag, Würfe, Stammbaum, Genetik
Basis-Features (Schritte 1–11):
- Züchter-Antrag mit Dokument-Upload, Admin-Prüfung, E-Mail-Benachrichtigungen
- Öffentliches Züchter-Profil + Karten-Marker (lila, certificate-Icon)
- Wurfverwaltung: Würfe, Welpen, Gewichtsverlauf, Foto-System
- Wurfbörse (öffentlich) mit Filtersuche nach Rasse/Status
- Läufigkeits-Tracker: Deckdatum + Wurftermin (+63 Tage, nur für Züchter)
- Interessenten-Chat: Kontakt-Button in Wurfbörse und Züchter-Profil
- Sidebar-Einträge: Zuchtkartei + Wurfverwaltung für Züchter/Admin

Stammbaum & Genetik (Schritte 1–8):
- Zuchtkartei: Hunde-Stammdaten mit Vater/Mutter-Verknüpfung
- Stammbaum-Visualisierung: 4 Generationen, horizontales CSS-Grid
- Gesundheitstests (HD, ED, OCD, Augen…) mit farbigen Ergebnis-Badges
- Genetische Tests (MDR1, PRA, DM…): clear/carrier/affected
- Titel & Auszeichnungen (CAC, CACIB, IPO…)
- Probeverpaarung: IK-Berechnung nach Wright + Ampel-Bewertung
- Teilen-Link für öffentliche Hunde-Profile
- Kaufvertrag: druckbares HTML-Dokument pro Welpe

Technisch: 4 neue Route-Dateien, 5 neue Page-Module, 11 neue DB-Tabellen,
icons shield-check + certificate + tree-structure im Sprite — SW by-v465, APP_VER 444
2026-04-28 18:25:21 +02:00
016eb52d83 Sprint 14: Multi-Fix-Batch — SW by-v428, APP_VER 407
KI/Symptom-Check: JSON-Code-Fence stripping in ki.py, Dringlichkeit-Map mit Phosphor-Icons
Gewicht-Sync: health.js aktualisiert appState.activeDog.gewicht_kg auch bei Bearbeitung
Giftköder: icon:'check-circle' → UI.icon('check-circle') in emptyState-Call
Forum-Pills: overflow:hidden + text-overflow:ellipsis auf Desktop und Mobile
Moderation: Admins für Moderatoren unsichtbar, keine Aktions-Buttons auf Admins
Notizblock: Filter-Chips wrap 2-zeilig auf Desktop (min-width:1024px)
Tagebuch: Datenschutz-Hinweis "nur du kannst sie sehen", Sitter sieht keine bestehenden Einträge
diary.py: Sitter-Zugriff gibt leere Liste zurück (GET), Erstellen bleibt erlaubt
2026-04-26 11:06:59 +02:00
e2af505eac Desktop: Forum, Chat, Walks auf 860px — einheitliche Breite, SW by-v409 2026-04-26 08:26:35 +02:00
770d75100e Desktop: Nachrichten + Gassi-Treffen auf max-width 1100px — SW by-v408
Chat: position:absolute→width:100%, page-body als zentrierter flex-Container
Walks: max-width none→1100px (konsistent mit Forum)
2026-04-26 08:20:13 +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
de73c7901e Wiki: Hunde-Silhouette als Placeholder für fehlende Rassenfotos (SW by-v362)
- _DOG_SILHOUETTE Phosphor-SVG als Modul-Konstante in wiki.js
- Karten-Fallback zeigt SVG statt UI.icon('dog')
- Detail-Ansicht zeigt 56px SVG + „Kein Foto verfügbar" wenn kein Foto
- CSS: wiki-breed-photo-fallback mit Gradient, neue wiki-detail-photo-placeholder-Klasse
- SW by-v362, APP_VER 347
2026-04-25 09:27:19 +02:00
c3d33547c7 Wiki: sehr_gross Pill-CSS + Moderation Icon auf eye geändert 2026-04-25 08:59:19 +02:00
9151c14306 Fix Karte-Legende Desktop: #page-map Spezifität (components.css Überschreibung), SW by-v333 2026-04-24 11:00:55 +02:00
c503737fb1 Desktop Tab-Grid: Gesundheit (5 Sp.), Admin (4 Sp.), Karte-Legende (8 Sp.), SW by-v332 2026-04-24 10:58:12 +02:00
5a755e4922 Burger-Badge via Alerts-Check, Alert-Linie stärker, Linie weg nach Erledigen, SW by-v329 2026-04-24 09:17:15 +02:00
acd93e83e6 Zecken-Icon ohne Dreieck, kein Text, Statusleiste einzeilig (nowrap), SW by-v325 2026-04-24 08:17:48 +02:00