8097d21605
Feature: Offline-Bereitschafts-Indikator (Pfote im Header), SW by-v1077
...
- Neue Pfote oben rechts im Header zeigt 5-stufige Offline-Bereitschaft
(1 Ballen + 4 Zehen, je 20% — grau outline → grün gefüllt)
- 5 Checks: App-Shell · Page-Module · Hund-/Tagebuchdaten · Karten-
Tiles (≥50) · Foto-Previews
- Klick öffnet Status-Modal mit Checkliste + 'Fehlende nachladen'-
Button. Lädt aktiv: Page-Module per fetch, API-Daten für aktiven
Hund, Tile-Cache per SW-Message CACHE_TILES, Diary-Foto-Previews
- Refresh: alle 60s + bei SW CACHE_UPDATE-Message
- Eigene offline-indicator.js (nicht im app.js mit reingequetscht);
ins STATIC_ASSETS-Precache aufgenommen
2026-05-26 14:16:57 +02:00
416f32b056
Fix: Chips gleichförmig bei großer iOS-Schriftgröße (height 74px statt min-height, max-height px statt em), SW by-v1035
2026-05-16 13:51:03 +02:00
d8b75fbcab
Fix: Globaler Dark-Mode-Filter für alle Leaflet-Karten
...
design-system.css: .leaflet-tile-pane bekommt den invert/hue-rotate-Filter
im Dark-Mode — gilt für walks, lost, poison, forum, routes und alle
anderen Seiten mit eingebetteten Leaflet-Karten.
design-system.css ?v=1025, SW by-v1026, APP_VER 1026
2026-05-16 11:41:12 +02:00
059002670a
Feature: Karten-UI vollständig Dark-Mode-fähig
...
Filter-Chips, Status-Pille und Popup-Ballons passen sich dem Dark-Mode an:
- .map-legend-btn: dunkel frosted-glass (rgba(24,20,16,0.88)) statt weiß
- .map-legend-all (Filter-Btn): entsprechend dunkler Ton
- .map-statusbar: dunkler Hintergrund + helle Schrift
- .leaflet-popup-content-wrapper/.tip: --c-surface (#241C14) statt weiß
Aktive Tabs behalten Layer-Farbe, Marker-Farben bleiben unverändert.
components.css ?v=1015, SW by-v1024, APP_VER 1024
2026-05-16 11:25:04 +02:00
721e630a34
Fix: Dark-Mode Karte + Badge-Farben + --c-bg-secondary
...
Karte:
- Dark-Mode: CartoDB Dark Matter Tiles statt OSM Standard
- MutationObserver + matchMedia watchee für Live-Theme-Wechsel
- _buildTileLayer() / _applyTileTheme() / _isDarkMode()
Badges litters.js:
- Hardgekodete dunkle Hintergründe → CSS-Klassen (badge-warning/-success/-muted)
- Funktioniert jetzt in Light + Dark Mode korrekt
movies.css:
- .movie-tag-stirbt/.movie-tag-ueberlebt → CSS-Variablen (danger-/success-subtle)
- Kein weißer Hintergrund mehr in Dark Mode
--c-bg-secondary: Zoom-Control 30px bleiben aus dem letzten Commit
SW by-v1022, APP_VER 1022
2026-05-16 11:11:09 +02:00
161c1e3f73
Fix: --c-bg-secondary definiert, Zoom-Control 30px, Dark-Mode Karten
...
- design-system.css: --c-bg-secondary hinzugefügt (fehlte → transparente Karten)
Light: #F2EDE4, Dark: #221A12 — sichtbarer Kontrast zu --c-bg in beiden Modi
Gilt für laeufi.js, litters.js, breeder.js Karten
- Zoom-Control: padding-top 28→30px (besser mittig zu 2 Filter-Reihen)
- components.css ?v=1014, SW by-v1021, APP_VER 1021
2026-05-16 10:50:10 +02:00
1c187675a9
Fix: Zoom-Control padding-top zurück auf 28px (war 33 = zu tief)
2026-05-16 10:42:44 +02:00
e44414015a
Fix: Karte — Zoom-Ausrichtung, 'Z14' kürzer, Marker-Count ausgeblendet
...
- leaflet-top padding-top 28→33px (Zoom-Buttons mittig zu 2 Filter-Reihen)
- Zoom-Anzeige: 'Zoom 14 · ab 14: alle Layer' → 'Z14' (Hinweis als title)
- #map-osm-status ausgeblendet (Marker-Anzahl nimmt Platz von Wetter etc.)
- components.css ?v=1012, SW by-v1019, APP_VER 1019
2026-05-16 10:39:12 +02:00
562d64979f
Fix: Karte — Filter-Button mit Label, kürzere Chip-Texte
...
- #map-legend-all: 'Filter' Text neben dem List-Icon
- 'Hundefreundl. Café/Restaurant' → 'Café & Restaurant'
- 'Hundefreundl. Hotel' → 'Hotel'
- .map-legend-all: padding angepasst für Text-Label
- components.css ?v=1011, SW by-v1018, APP_VER 1018
2026-05-16 10:32:11 +02:00
ed9dd08c14
Desktop: Einheitliche Seitenbreite 860px via pc-desktop Klasse
...
- app.js: _applyDesktopWidth() setzt nach Page-Init die Klasse pc-desktop
auf dem ersten Kind-Div aller Standard-Seiten (excl. admin/map/chat/etc.)
- layout.css: .pc-desktop { max-width:860px !important; margin:0 auto }
- layout.css: .page-container ab 768px auf 860px (statt erst 1024px)
- main.py: /force-update Text "Service Worker wird entfernt" →
"Wir besorgen neue Leckerlis 🦴 "
- layout.css ?v=1013, components.css ?v=1010, SW by-v1014, APP_VER 1014
2026-05-16 09:57:00 +02:00
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
5fd86dac4b
UX: Admin-Panel Desktop — Sidebar-Navigation, 1200px Breite, keine abgeschnittenen Tabs (SW by-v973)
2026-05-15 12:42:04 +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
9deb04c02d
Fix: Gassi Desktop — Scrollbalken im Listen-Panel ausgeblendet (SW by-v884)
2026-05-12 17:52:29 +02:00
79cfd63ea6
Fix: Gassi Desktop-Layout — Liste links + Karte rechts, Toggle ausgeblendet (SW by-v881)
2026-05-12 17:32:44 +02:00
69f5c2982a
Fix: Gassi-Karte 0px-Höhe — walks-map height:100% + map-view overflow:hidden (SW by-v876)
2026-05-12 09:31:28 +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
36ccd7815e
Fix: Zoom-Control auf Tablet 28px runter (leaflet-top padding-top) (SW by-v825)
2026-05-10 10:09:37 +02:00
666cdd3a73
Fix: map-legend top: 28px global (kein Media-Query), deckt alle Geräte ab (SW by-v824)
2026-05-10 10:03:58 +02:00
d078fb4b51
Fix: Karte Filter-Tabs Tablet top: 28px fix (kein env/max) (SW by-v823)
2026-05-10 09:50:52 +02:00
47bb1e202e
Fix: Karte Filter-Tabs Tablet min 20px top (iPad ohne Notch hat kein safe-area-inset) (SW by-v822)
2026-05-10 09:45:03 +02:00
c96e6e1fac
Fix: Karte Tablet — map füllt voll, Filter-Tabs unter Statusleiste (safe-top) (SW by-v821)
2026-05-10 09:38:36 +02:00
c185193ac9
Fix: Karte Filter-Tabs Tablet safe-area-inset-top auf Desktop-Layout (SW by-v820)
2026-05-10 09:29:01 +02:00
209d6703ad
Fix: Media-Uploads direkt ans Netz (kein SW-Clone), SW _nocache-Bypass, Samsung-Dark-Mode-Hint, Update-Button fire-and-forget (SW by-v796)
2026-05-09 19:07:52 +02:00
857c83bd65
Fix: Giftliste Dark Mode — CSS-Variablen statt hardcoded #fff5f5/#fff3cd, --c-danger-border neu (SW by-v775)
2026-05-08 13:07:06 +02:00
ce14bb1d2c
Refactoring: Inline-Styles → CSS-Klassen (worlds.js, dog-profile.js, settings.js) — 20 neue w3-/by-Klassen (SW by-v773)
2026-05-08 12:22:04 +02:00
c027573e10
Fix: worlds-overlay z-index 50→450 — Leaflet-Kacheln aus Routen bluten nicht mehr durch (SW by-v738)
2026-05-06 19:22:40 +02:00
55069d246b
Feature: Welten-Onboarding, Wetter-Motivation, UX-Fixes (SW by-v715)
...
Welten (worlds.js):
- Swipe-Hints beim ersten Öffnen (JETZT ← → WELT animiert, einmalig)
- Kein-Hund-Onboarding: Feature-Preview-Grid statt leerer Karte
- Hintergrund-Foto-Hint: Kamera-Karte wenn noch kein Tagebuchfoto
- worlds-back: navigiert zu Welcome wenn kein User eingeloggt
- Nach Logout: worlds-back Button sofort ausgeblendet
Wetter (wetter.js):
- Standort-Fehlerseite zu Motivations-Seite umgebaut
- Feature-Preview: Gassi-Score, 7-Tage, Regenradar, Rekorde
- CTA: Standort freigeben + Registrieren (nur für Gäste)
Settings (settings.js):
- Logo in Auth-Form: display:block + margin:0 auto zentriert
- Header bleibt sichtbar (FAB/Zurück-Navigation funktioniert)
Jobs (jobs.js):
- 2-Spalten-Grid auf Mobile: auto-fit statt festes 1fr 1fr
- Kein doppeltes Padding im Wrapper
Backend:
- weather.py, achievements.py: diary JOIN fix (d.user_id → dogs JOIN)
- Neue Wetter-Badges: wetter_tapfer, jahreszeiten, schnee
- Ernährungs-, Reise-, Ausgaben-Seite: diverse UX-Verbesserungen
- Presse-Seite erweitert
- Ban Yaro Foto-Assets (WebP + HIRES JPG)
2026-05-05 17:32:03 +02:00
aa4849d947
Feature: 3 Community-Features — Foto-Challenge, Stamm-Gassis, Rassen-Chip (SW by-v700)
...
- Foto-Challenge der Woche: DB-Tabellen, routes/challenges.py (current/submit/vote/winners),
Scheduler-Job jeden Montag 08:00, walks.js Challenge-Tab mit Banner, Galerie, Voting-Herz
- Gassi-Zeiten-Pool: DB-Tabelle gassi_zeiten, routes/gassi_zeiten.py (CRUD + Umkreis),
walks.js Stamm-Gassis-Tab mit Karten, Wochentag-Selector, Mitmachen→Chat
- Rassen-Treffen-Chip: GET /api/friends/same-breed, dog-profile.js zeigt Chip
wenn andere User gleiche Rasse haben, Klick → Forum mit Rassen-Suche vorausgefüllt
2026-05-04 21:09:35 +02:00
84e6bfdd82
Feature: Wiki Photo-Gallery mit Thumbnails + Lightbox, alle Fotos einer Rasse anklickbar (SW by-v664)
2026-05-03 21:23:41 +02:00
1d1171e5f2
Fix: Hilfe-? inline neben 'Dein Plan für heute' statt absolut oben rechts (SW by-v663)
2026-05-03 21:13:10 +02:00
9103c7950f
Feature: Generische Seiten-Hilfe (UI.pageInfo), POI Multi-Select, Tagessprüche-DB (SW by-v654)
...
- UI.pageInfo(): generische Hilfe-Funktion — erstes Öffnen zeigt Info-Banner, danach ? Button oben rechts; CSS-Klassen pinfo-*
- Übungen-Seite nutzt UI.pageInfo() als erstes Beispiel
- Karte POI: Mehrfachauswahl (außer Giftköder), Kombi-Typen entfernt, type als comma-separated im Backend
- daily_quotes Tabelle in DB (346 Einträge via import_quotes.py importiert)
- GET /widget/quote — deterministischer Tagesspruch (wechselt täglich)
2026-05-03 20:10:01 +02:00
1fdba57365
Feature: UX-Fixes — Zahnrad weg, POI-Kombi-Typen, exp-fab-Position, Welten-Config in DB (SW by-v653)
...
- worlds-settings Zahnrad komplett entfernt (war auf Mobile sichtbar, auf Desktop schon hidden)
- exp-fab: bottom jetzt calc(--nav-bottom-height + --safe-bottom + --space-2) — kein Overlap mit worlds-back auf iPhone
- Karte POI: neue Typen bank, bank_kotbeutel, bank_kotbeutel_abfall, kotbeutel_abfall (Backend + Frontend)
- Welten-Chip-Config: GET/PUT /profile/world-config, Spalte users.world_config TEXT (Migration), Sync bei Init + Speichern
2026-05-03 19:50:04 +02:00
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