Commit graph

442 commits

Author SHA1 Message Date
9816075c7e Desktop JETZT: world-top max-width 860px zentriert
Greeting-Karte + Wetter/Route/Übung-Chips stretchen nicht mehr auf volle
Desktopbreite. Chips sind je ~280px breit — deutlich kompakter als vorher.
components.css ?v=1010, SW by-v1013, APP_VER 1013
2026-05-16 09:36:28 +02:00
f36bac7ded Desktop: W3-Overlays als zentrierte Dialogs (FAB + All-Chips)
@media 768px:
- .w3-sheet-overlay: justify-content/align-items:center statt flex-end
- .w3-sheet-panel: border-radius:20px, max-width:480px, padding:24px
- .w3-sheet-panel--scroll: max-width:680px (all-chips breiter)
- all-chips Grid: auto-fill minmax(100px) statt repeat(4,1fr)
components.css ?v=1009, SW by-v1012, APP_VER 1012
2026-05-16 09:28:03 +02:00
6721597779 Fix Desktop Chips: !important overrides für flex + grid-template-columns unset
Das grid blieb wegen Spezifität aktiv. Explizite !important auf display:flex,
flex-wrap:nowrap, grid-template-columns:unset erzwingen die Eine-Zeile-Darstellung.
components.css ?v=1008, SW by-v1009, APP_VER 1009
2026-05-16 09:15:41 +02:00
9168d982d0 Desktop Welten: Chips eine Zeile + Nav vertikal zentriert
- .world-chips-grid @768: flex nowrap, alle Chips in einer Zeile (80px Basis,
  shrinks bis 60px), justify-content:center — egal wie viele aktiv
- #world-labels bottom: 22px→33px (vertikal zentriert zwischen Chips und Footer)
- components.css ?v=1007, SW by-v1008, APP_VER 1008
2026-05-16 09:12:05 +02:00
8c69143b09 Layout: Nav vertikal zentriert, Info-Karte höher
- #world-labels bottom: 20px→33px (vertikal zentriert zwischen Chips und Footer)
- .world-panel top-padding: 32px→14px (Info-Karte näher an Statusleiste)
- components.css ?v=1006, SW by-v1007, APP_VER 1007
2026-05-16 09:06:28 +02:00
c29b2c1752 Fix: Nav zentriert (mobile) + Desktop Nav unten zwischen Chips und Footer
- #world-labels: right:80px→right:0 (Nav war durch halbe Breite nach links versetzt)
- @media 768px: Nav bleibt unten statt zurück nach oben — Chips+Nav+Footer
  gleiches Layout wie Mobile, nur top-padding 48px und chip-grid max-width 480px
- components.css ?v=1005, SW by-v1006, APP_VER 1006
2026-05-16 09:02:41 +02:00
ad942e81b2 Fix Desktop-Layout Welten: Top-Padding + Chips-Breite
@media 768px:
- .world-panel top-padding zurück auf safe-area+58px (Nav ist oben)
- .world-chips-grid max-width:480px zentriert (kein Full-Width Bottom-Bar)
SW by-v1005, APP_VER 1005
2026-05-16 08:56:17 +02:00
d6eb2bcf98 Layout: JETZT/HUND/WELT Nav nach unten, Info-Karte höher
- #world-dots: ausgeblendet auf Mobile (Labels dienen als Tab-Indikator)
- #world-labels: von top→bottom (safe-area+20px), pill-Style für active
  right:80px damit FAB nicht überlappt, backdrop-blur auf active label
- .world-panel top-padding: 58→32px (Info-Karte startet weiter oben)
- Desktop @media 768px: Nav bleibt oben (dots+labels wie vorher)
- components.css ?v=1003, SW by-v1004, APP_VER 1004
2026-05-16 08:53:14 +02:00
d03e49800d Layout: Footer-Links absolut positioniert, Chips dichter am FAB
- .world-panel: bottom-padding 88→76px, position:relative als Anker
- .world-footer-links: position:absolute bottom:safe-area+4px —
  nimmt keinen Platz im Fluss mehr ein, klebt am unteren Bildschirmrand
- Chips sitzen jetzt näher am FAB, Hintergrundbild bekommt mehr Raum
- components.css ?v=1002, SW by-v1003, APP_VER 1003
2026-05-15 22:01:41 +02:00
a8c63e87da Experiment: Chip-Layout unten — Hintergrundbild bekommt mehr Raum
- Section-Labels entfernt ('Deine Bereiche', 'Alles über X', 'Die Welt da draußen')
- Chip-Grid: Höhe 80→74px, Gap 8→7px
- world-bottom gap 8→5px
- Footer-Links: Padding reduziert, Schrift 11→10px
- CSS-Version ?v=1001 für immutable-Cache-Busting
- SW by-v1002, APP_VER 1002
2026-05-15 21:18:44 +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
d7f7a7e454 Neu: AGB-Seite + Impressum/Datenschutz aktualisiert (SW by-v985)
- Neue Seite agb.js mit 11 Abschnitten (Laufzeit, Zahlung, Widerruf etc.)
- Datenschutz: 'Abonnement & Kündigung' → 'Zahlungsdaten' (DSGVO-Fokus), DDG-Hinweis ergänzt
- Impressum: ODR-Link entfernt (EU-Plattform eingestellt 2025), Telefon-Pflichthinweis nach §5 DDG, Stand Mai 2026
- AGB-Link in alle Footer (index.html, landing.html, zuechter.html, welcome.js)
- page-section #page-agb in index.html, Route 'agb' in app.js ROUTES
2026-05-15 16:21:04 +02:00
5fd86dac4b UX: Admin-Panel Desktop — Sidebar-Navigation, 1200px Breite, keine abgeschnittenen Tabs (SW by-v973) 2026-05-15 12:42:04 +02:00
d61fd155c5 Feature: Abo & Tarif in Einstellungen — Upgrade-UI für Pro + Züchter (SW by-v919)
- /api/me gibt subscription_tier jetzt zurück (fehlte im SELECT)
- settings.js: "Pro kommt bald" durch echte Abo-Karte ersetzt
  - Zeigt aktuellen Tarif mit farbigem Badge (Kostenlos/Pro/Züchter/Admin)
  - Standard-Nutzer: zwei Upgrade-Buttons (Pro 29€/Jahr, Züchter 49€/Jahr)
  - Pro-Nutzer: Pro-Badge + optionaler Züchter-Upgrade
  - Züchter/Admin: Status-Badge, keine Upgrade-Buttons
- Upgrade-Modal: Features-Liste + ehrlicher Hinweis auf manuelle Freischaltung
  + mailto-Button mit vorausgefülltem Betreff und Account-E-Mail
- SW by-v919, APP_VER 919
2026-05-14 09:48:01 +02:00
3a3002aff3 Fix: Welten-Config auto-merge neuer Default-Chips — Läufigkeit erscheint automatisch (SW by-v918) 2026-05-13 20:31:27 +02:00
85864d8ef2 Fix: laeufi.js UI.esc → UI.escape (nicht existent → crash → 🚧) (SW by-v917) 2026-05-13 20:27:22 +02:00
4a52a52cff Feature: Z-Badge für Züchter-Kacheln in Welten-Admin-Ansicht (SW by-v916) 2026-05-13 20:24:00 +02:00
b911c41583 Feature: Läufigkeit in HUND-Welt-Kacheln (nur Züchter) + laeufi in hund-Liste (SW by-v915) 2026-05-13 20:21:19 +02:00
6956870827 Fix: Logo-URL /media/ korrekt; Züchter-Section im Sidebar mit Label+Trennlinie (SW by-v914) 2026-05-13 20:15:16 +02:00
e11efa23f0 Fix: Zuchtkartei Header-Update nach Status-Laden — Zwingername korrekt (SW by-v913) 2026-05-13 20:07:54 +02:00
53f0cb37d6 Feature: Wurf-Buchstabe (A–Z) + Wurf-Name — DB, Backend, Formular, Kartenanzeige (SW by-v912) 2026-05-13 19:58:50 +02:00
ca9d9a05c5 UX: Privater-Header — Zwingername als H2-Überschrift, Logo 48px, alle 3 Züchterseiten (SW by-v911) 2026-05-13 19:54:30 +02:00
ccf5a8b7ba UX: Privater-Header mit Zwingername + Logo auf allen Züchter-Seiten (SW by-v910) 2026-05-13 19:48:58 +02:00
a577e6d8d9 UX: Privater-Bereich-Header auf Zuchtkartei, Wurfverwaltung, Läufigkeit (SW by-v909) 2026-05-13 19:44:25 +02:00
7fb4177dbd Fix: Breeder-FAB an document.body — verschwindet zuverlässig via destroy() (SW by-v908) 2026-05-13 19:40:21 +02:00
0399282e4c Fix: Wurfbörse auto-fill Grid — 1 Karte füllt volle Breite, keine fixen Spalten mehr (SW by-v907) 2026-05-13 19:35:05 +02:00
cf1ed0fdbc Fix: Züchter-Seiten page-container-wide (1040px) statt 680px — Wurfbörse, Zuchtkartei, Würfe, Läufigkeit (SW by-v907) 2026-05-13 19:31:01 +02:00
f35a0efbaf UX: Zuchtkartei Toolbar flex-wrap — kein horizontaler Scroll mehr (SW by-v906) 2026-05-13 19:27:01 +02:00
a29c7574d3 UX: Zuchtkartei Tabs flex-wrap — umbrechen statt scrollen (SW by-v905) 2026-05-13 19:23:13 +02:00
c583b69923 UX: Zuchtkartei Gesundheit/Genetik/Titel als by-tab Pill-Tabs wie Übungen (SW by-v904) 2026-05-13 19:19:55 +02:00
38e7ad99ae Fix: Profilfotos — breeder status liefert jetzt id, s.profile.id korrekt (SW by-v903) 2026-05-13 19:13:34 +02:00
f7a2a3861e Feature: Zuchtkartei Profilfotos-Button — Upload, Logo setzen, Sichtbarkeit (SW by-v902) 2026-05-13 19:09:29 +02:00
c417891546 Fix+Feature: data-modal-close global fix, Breeder-Profil Logo+Galerie (SW by-v901) 2026-05-13 18:55:28 +02:00
b17706e7ba Feature: Züchter-Profil Komplett-Redesign — Hero, Hunde+Tests, Würfe, Gesundheitsstatistik (SW by-v900) 2026-05-13 18:47:49 +02:00
d5a3a1bb05 Fix: Zuchtkartei Toolbar Mobile — overflow-x:auto + flex-shrink:0 (SW by-v899) 2026-05-13 18:27:02 +02:00
c15f1b10d0 UX: Breeder-Profil Back-FAB unten rechts + destroy() Hook in navigate() (SW by-v898) 2026-05-13 18:19:16 +02:00
822af64704 Fix: Breeder-Profil Zurück-Button → Wurfbörse; Welpen-Chip klickbar (SW by-v897) 2026-05-13 18:12:55 +02:00
8b5805a8ca Fix: breeder.js _esc undefined → ReferenceError → 🚧; Admin-Profil in öffentlicher Suche; Welpen-Chip klickbar (SW by-v896) 2026-05-13 18:00:32 +02:00
0f230b9ddc UX: Würfe-Stats-Chips klickbar (Status-Filter), Wurfbörse Testdaten (SW by-v895) 2026-05-13 17:51:23 +02:00
f3308a6a94 Feature: Läufigkeit & Trächtigkeit — Zyklen, Progesterontests, Deckdaten, Meilensteine (SW by-v894) 2026-05-13 17:09:02 +02:00
5a639d47a9 UX: Würfe-Seite — Card-Design, Stats-Header, Countdown, bessere Aktionen (SW by-v893) 2026-05-13 16:59:03 +02:00
99842909e4 Fix: Warteliste — besserer Empty-State, Badge-Count am Button, Status-Übersicht (SW by-v892) 2026-05-13 16:52:39 +02:00
67e68bbe2d Feature: Warteliste pro Wurf — CRUD, Status-Flow, Formular (SW by-v891) 2026-05-13 16:45:46 +02:00
a5b8174566 Fix permanent: JS/CSS nie immutable cachen — verhindert Update-Loop (SW by-v890)
Browser-HTTP-Cache mit immutable lässt sich nach force-update nicht leeren.
Veraltete app.js (APP_VER alt) führt zu X-App-Version Mismatch → Dauerschleife.
SW übernimmt Caching sowieso → no-cache für alle JS/CSS ist sicher.
2026-05-12 19:41:26 +02:00
437901b8e2 Fix: Update-Loop — index.html Script-Tags auf APP_VER synchronisiert (SW by-v889)
Root cause: ?v=885 in Script-Tags → Browser cached app.js immutable für 1 Jahr.
Nach force-update (löscht nur SW-Cache, nicht Browser-HTTP-Cache) lädt Browser
alte app.js mit APP_VER=885 → X-App-Version: 889 Mismatch → Endlosschleife.

Ab jetzt: ?v= in index.html IMMER mit APP_VER synchron halten.
2026-05-12 19:40:50 +02:00
7257c9e04f Fix: SW-Update Dauerschleife — controllerchange nicht auf Reload-Seiten registrieren (SW by-v888)
clients.claim() feuert asynchron nach Seitenstart → controllerchange auf
der neu geladenen Seite → Reload → clients.claim() → loop.
Fix: controllerchange nur registrieren wenn _t= NICHT im URL steht.
2026-05-12 19:35:42 +02:00
b8f70eb2cd Fix: SW-Update doppelter Reload nach force-update — controllerchange konsumiert by_skip_sw_reload Flag (SW by-v887)
statechange-activated und controllerchange feuern beide beim SW-Update.
statechange konsumierte den Flag und controllerchange reloadete trotzdem.
Jetzt prüft statechange nur, controllerchange konsumiert.
2026-05-12 19:29:04 +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
9deb04c02d Fix: Gassi Desktop — Scrollbalken im Listen-Panel ausgeblendet (SW by-v884) 2026-05-12 17:52:29 +02:00
33f550a313 Fix: Media-Auth vereinfacht — Login-Check statt DB-Lookup, behebt Welten-Hintergrundbild (SW by-v883) 2026-05-12 17:43:31 +02:00