Commit graph

779 commits

Author SHA1 Message Date
58046ce0c7 Fix: Kotbeutel-Stationen → Mülleimer für Kotbeutel in Stats-Band (SW by-v963) 2026-05-14 22:07:17 +02:00
07db68aea2 Fix: Geburtstag aller Hunde + Kotbeutel-Stationen in Stats (SW by-v962)
- worlds.js: bdayDog = _dogs.find(...) — Geburtstag gilt für alle Hunde, nicht nur den aktiven
- Banner, KI-Call, "Was hat sich X gewünscht?" nutzen bdayDog.name
- stats.py: kotbeutel-Count aus user_map_pois WHERE type='kotbeutel'
- landing: Stats-Band 5. Kachel "Kotbeutel-Stationen"
2026-05-14 22:00:52 +02:00
ebff9d820d Merge branch 'develop' 2026-05-14 19:59:30 +02:00
be87930e5b Fix: Foto-Strip + Ban-Yaro-Bild mit Inline-Styles (SW by-v961) 2026-05-14 19:55:34 +02:00
6f8644c70f Landing: Ban Yaro persönlich — Foto + Geschichte als Split-Section (SW by-v960) 2026-05-14 19:50:12 +02:00
59ddf047ba Perf: Fotos JPG→WebP, 18 MB → 373 KB (SW by-v959)
cwebp: eric-ward 1200px, chewy 1400px, baptist-standaert 1600px,
foto-strip 700x700px — alle q80-82
2026-05-14 19:42:41 +02:00
2a59b775e2 Fix: Eric-Ward-Split mit Inline-Styles und auto-fit Grid (SW by-v958) 2026-05-14 19:33:21 +02:00
7867507e7d Landing: 7 Unsplash-Fotos mit Fotografen-Credits eingebaut (SW by-v957)
- Eric Ward: emotionaler 50/50-Split nach Stats-Band
- Baptist Standaert: subtiles Hintergrundbild Demo-Section
- Alvan Nee / Nicholas Brownlow / Wade Austin Ellis / Tamas Pap: 4er-Foto-Strip vor Testimonials
- Chewy: Header-Bild Welpenkäufer-Section
- Alle Fotos mit © Name · Unsplash Credit-Overlay
2026-05-14 19:25:14 +02:00
e610613b58 Fix: Dark-Mode CSS-Syntax korrigiert — html.dark + @media getrennt (SW by-v956)
Ungültige Syntax (@media..., html.dark kombiniert) aufgelöst.
Zwei separate valide Blöcke: html.dark{} für JS-Klasse, @media{} als Fallback.
2026-05-14 19:15:46 +02:00
10964c6509 Fix: Dark-Mode JS-Fallback via matchMedia + html.dark Klasse (SW by-v955)
matchMedia-Listener setzt html.dark als Fallback für macOS 26 / Brave
die prefers-color-scheme Media Query nicht korrekt weiterleiten
2026-05-14 19:07:36 +02:00
e548c43010 Fix: Dark-Mode Landing mit color-scheme Meta-Tag und !important-Overrides (SW by-v954)
- <meta name="color-scheme" content="light dark"> ergänzt
- color-scheme: light dark / dark in :root
- Alle Dark-Mode-Regeln auf !important umgestellt um Inline-Styles zu schlagen
- #funktionen, #warum, #vergleich, #preise, #ueber ergänzt
2026-05-14 19:01:37 +02:00
996ee9c97e Fix: Landing Dark-Mode, OS-Icons→Phosphor, force-update-Loop (SW by-v953)
- main.py APP_VER 951→953 behebt Update-Loop auf Desktop
- Dark-Mode: vollständige @media (prefers-color-scheme: dark) Regeln für alle Sections
- Emojis im Verbindung-Block (🏡🔍🐶) durch Phosphor SVG ersetzt
- 🐾 in Testimonials und Footer durch paw-print SVG ersetzt
2026-05-14 18:34:02 +02:00
f9160307bc Landing: emotionaler Hero, Social-Proof-Stats, Testimonial-Slots, Scroll-Animationen (SW by-v952)
- Hero-Headline: "Weil jeder Moment mit ihm zählt." (warm/emotional statt Feature-Liste)
- CTA umbenannt: "Kostenlos starten" statt "Ich bin Hundebesitzer"
- Hero-Stats-Zeile: live Nutzer/Hunde/km-Zähler (nur wenn >0)
- Stats-Band: orangener Balken mit 4 Live-Kennzahlen nach der Zwei-Welten-Section
- Testimonial-Section: 3 Platzhalter-Karten zwischen Features und Züchter-Bereich
- Scroll-Animationen: IntersectionObserver auf alle Cards (fade-up)
- API: /api/stats/public — öffentlicher Endpoint, 5-Min-Cache
2026-05-14 18:23:23 +02:00
dc09b09cc3 Merge branch 'develop' 2026-05-14 17:19:05 +02:00
7e939cf854 SEO: landing.html canonical /info → / (primäre URL ist die Root) 2026-05-14 17:19:05 +02:00
cd3e3bdbf6 Merge branch 'develop' 2026-05-14 17:01:46 +02:00
35bc38eb34 Fix: Analytics-Tab zeigt verständliche Fehlermeldung bei Umami-Auth-Fehler 2026-05-14 17:01:46 +02:00
86c5400c2e Merge branch 'develop' 2026-05-14 16:54:59 +02:00
c8f9bd4c09 Fix: Konto-Löschen-Dialog body→message (SW by-v951) 2026-05-14 16:51:39 +02:00
0bd4c33557 Fix: Kündigungs-Mail + Settings — Ablaufdatum korrekt formatiert (SW by-v950) 2026-05-14 16:47:57 +02:00
da4879b4c4 Fix: Kündigung-Anzeige auch ohne Ablaufdatum (SW by-v950) 2026-05-14 16:45:36 +02:00
959fff4651 UX: Kündigung-Toast zeigt Ablaufdatum (SW by-v949) 2026-05-14 16:41:52 +02:00
8aa7feb91e Merge branch 'develop' 2026-05-14 16:37:47 +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
ea655590f7 Merge branch 'develop' 2026-05-14 15:04:11 +02:00
1ea8127aaf Fix: needs_dog_selection TEXT '0' war truthy — INTEGER + === 1 Check (SW by-v946) 2026-05-14 14:02:17 +02:00
3b666c545f Feature: Abo-Kündigung + Ablaufdatum + Dog-Auswahl nach Downgrade (SW by-v945) 2026-05-14 13:56:55 +02:00
0069454b24 Merge branch 'develop' 2026-05-14 13:46:11 +02:00
44b3fba191 Fix: Action-Items nach Upgrade-Freischaltung sofort aktualisieren (SW by-v944) 2026-05-14 13:46:11 +02:00
c50e43201c Merge branch 'develop' 2026-05-14 13:26:38 +02:00
8d9c9b275d Fix: Upgrades-Confirm-Modal — body→message, confirmLabel→confirmText (SW by-v943) 2026-05-14 13:26:38 +02:00
24217f81d5 Merge branch 'develop' 2026-05-14 13:20:11 +02:00
9da8665aca UX: Upgrade-Tab — Cards statt Tabelle, Freischalten-Button immer sichtbar (SW by-v942) 2026-05-14 13:20:11 +02:00
29e39ee14a Merge branch 'develop' 2026-05-14 13:17:23 +02:00
6762efa04e UX: Upgrade-Freischaltung — reichhaltige HTML-Bestätigungsmail (SW by-v941) 2026-05-14 13:17:23 +02:00
d597031135 Merge branch 'develop' 2026-05-14 13:08:52 +02:00
60e5c9ba35 Fix: Admin-Endpoints umgehen SW-Timeout — kein 'Offline' bei langen Jobs (SW by-v940) 2026-05-14 13:08:52 +02:00
f42f181e44 Merge branch 'develop' 2026-05-14 13:04:18 +02:00
163a6ff6a5 Fix: upgrade_requests Query in action_items try/except — schützt bestehende Action Items 2026-05-14 13:01:51 +02:00
947832f63d Fix+Debug: generate-previews mit Dir-Info + no such column fix (SW by-v939) 2026-05-14 12:54:31 +02:00
8080d7cda1 Fix: no such column d.user_id — diary hat kein user_id, Dog-Check reicht (SW by-v939) 2026-05-14 12:48:05 +02:00
3f0e09e5d2 Perf: Wiki Breed-Fotos nutzen _preview.webp + breeds/ in generate-previews (SW by-v938) 2026-05-14 12:42:20 +02:00
e397b9dff5 Fix: SW-Cache /api/dogs nach Foto-Upload löschen (SW by-v937)
_renderHund() liest Hunde aus _cachedGet('/dogs') — SW-gecacht mit altem foto_url.
Fix: swCacheDelete für /api/dogs, /api/dogs/{id} + welcome-dashboard, plus w3_dogs.
2026-05-14 12:34:26 +02:00
2b672c89df Fix: Welten refresh nach Foto-Upload — _refreshPending Flag (SW by-v936)
show() re-renderte nur bei User-Wechsel. Wenn refresh() während unsichtbarer Welten
aufgerufen wurde, blieb das alte Bild beim Zurücknavigieren.
Fix: _refreshPending=true wenn !_visible; show() rendert bei nächstem Aufruf neu.
2026-05-14 12:28:03 +02:00
fbb070032a Fix: SW-Cache welcome-dashboard nach Foto-Upload löschen (SW by-v935)
Root cause: /api/dogs/{id}/welcome-dashboard ist SW-gecacht.
Nach Foto-Upload lieferte SW alten Response mit alter random_photo.url.
Fix: API.swCacheDelete() + localStorage-Key nach Upload invalidieren.
2026-05-14 12:18:48 +02:00
aa379d8e08 Fix: Foto-Upload → sofortiger Refresh von Profil + DogSwitcher + Welten (SW by-v934) 2026-05-14 12:11:59 +02:00
08f1806be3 Fix: Foto-Upload im Hunde-Profil Edit-Modal (SW by-v933)
Root cause: fotoFile-Referenz wurde NACH UI.modal.close() geholt — DOM-Element
#dp-form-foto existiert nach Modal-Close nicht mehr → files[0] = undefined → Upload übersprungen.
Fix: fotoFile VOR modal.close() sichern; File-Objekt bleibt gültig auch ohne DOM.
2026-05-14 12:03:25 +02:00
781e3383bd Fix: Karte lädt wieder + safe_media_path + Foto-Löschung (SW by-v932)
- map.js: appState→_appState im Template, addEventListener mit ?. (kein Crash ohne Buttons)
- media_utils.py: safe_media_path lstrip-Bug — 'dogs/' wurde zu 'ogs/' gekürzt;
  jetzt korrekte removeprefix-Logik → Altes Hundeprofil-Foto wird jetzt wirklich gelöscht
2026-05-14 11:58:00 +02:00
e7b6cb3c33 Fix: Karte — Regenradar- und Temperatur-FABs nur für Pro sichtbar (SW by-v931) 2026-05-14 11:50:43 +02:00