- Verlauf zeigt nur abgehakte Saetze (nicht gemachte werden nicht mehr
uebernommen); keine ✓/□-Boxen mehr, Uebungsname ohne Tages-Praefix,
Saetze kompakt in einer Zeile -> deutlich weniger Text
- assets/screenshot.png neu: vollstaendige Session (alle Uebungen mit
Werten) statt halb-leerer Ansicht
- Tests: 170 Checks gruen (40+18+52+32+28)
- Sortieren nur ueber einen kleinen Griff (Punkt-Icon) links im
Uebungskopf; das ganze Element ist nicht mehr draggable (kein
versehentliches Ziehen beim Tippen/Auswaehlen)
- Beim Session-Start wird die Uebungs-Reihenfolge der letzten
abgeschlossenen Session desselben Tags uebernommen (server-seitig in
create_session, in session.fields.exerciseOrder)
- Tests: 170 Checks gruen (40+18+52+32+28)
- ex-grid: minmax(min(460px,100%),1fr) -> keine 460px-Mindestspalte auf dem
Handy mehr; Block und X-Button nicht mehr abgeschnitten
- Satz-Zeile: Aktionen (Reset/X) rechtsbuendig per flexiblem Spacer; auf
sehr schmalen Handys kompaktere Felder (72px)
- README: gekuerzt, bodenstaendiger Ton, interne CI/CD-/Infra-Notizen raus
- ROADMAP: Umgesetztes markiert, veraltete Punkte entfernt, gestrafft
- Tests: 169 Checks gruen (39+18+52+32+28)
- Satz-Zeile: kg/reps-Felder mit fester, normaler Breite (84px) statt
jeweils halber Zeile; nur Check/Buttons passen sich an (Grid
auto auto auto auto auto)
- config.json: Technogym-Referenzen (Selection 900/700 etc.) aus allen
Uebungs-Infotexten entfernt - generische Maschinenbeschreibungen
(Chest-Press-, Latzug-, Beinpresse-Maschine ...)
- demo-data.json neu generiert (Config-Snapshot synchron)
- Tests: 169 Checks gruen (39+18+52+32+28)
- Reset-Icon korrekt eingefuegt (war '[object HTMLSpanElement]' weil das
SVG-Element als Text-Argument an el() ging)
- Satz-Zeile: display:grid mit auto 1fr 1fr auto auto, kg/reps-Inputs
flexibel (1fr, min-width 0), Buttons als kleine Icons (26px) - passt
komplett auf ein Handy-Display ohne horizontales Scrollen
- Label zurueck auf 'Set n' (klarer als 'S1')
- Tests: 169 Checks gruen (39+18+52+32+28)
- Benutzer wird erst beim 'Einrichtung abschliessen' angelegt (POST
/api/register im wizardFinish); bis dahin frei umentscheidbar, im Modus-
Schritt Hinweis + Live-Validierung (Finish deaktiviert bis ausgefuellt)
- Reihenfolge: Sprache -> Darstellung (Theme/OLED/Akzent) -> Modus
(Einzel/Mehrbenutzer); Onboarding bleibt Sprache -> Darstellung
- Sprach-Schritt: Repo-Link + Kurztext zum Starten (nutzt den Raum)
- Wizard-Modal: min-height statt fixer Hoehe -> Modus-Schritt mit Formular
wird nicht mehr abgeschnitten
- Server-Reset auch im Einzelmodus moeglich (nur Bestaetigungstext,
kein Passwort noetig); Reset-Sektion erscheint dann entsprechend
- Tests: 167 Checks gruen (39+18+52+32+26)
- Setup-Wizard: feste Mindesthoehe (#setup-gate), Navigation unten
verankert -> Hoehe springt nicht mehr zwischen den Schritten
- Wizard Benutzer-Anlage: nach Erfolg Bestaetigung statt leerem Formular
(kein erneutes Eingeben), 'Weiter' aktiv
- Tabs: Labels werden uebersetzt (t()-i18n), Topbar/Tabs horizontal
scrollbar + kompakter auf Mobil -> 'Einstellungen' wird nicht mehr
abgeschnitten
- Button-Min-Breite (.btn 96px, .btn-small 64px) fuer Sprach-Konsistenz
- Fortschrittssegmente: bei weissem Akzent auf hellem Theme schwarz
(statt unsichtbar weiss)
- Set-Zeile: eine horizontale Reihe (nowrap) mit einheitlicher
Eingabe-Mindestbreite/-hoehe; Grid-Spalten auf 460px angepasst
- Leere Saetze (ohne Gewicht UND Reps) werden nicht mehr persistiert und
im Verlauf ausgeblendet (kein 'empty kg x empty reps'-Wand)
- Tests: 158 Checks gruen (39+18+43+32+26)
- Push auf main -> git.somantis.net/j4stmarkus/trainingsplan:latest + :<sha>
- Push eines Git-Tags v* -> zusaetzlich :vX.Y.Z (z.B. :v1.0.0)
- Nutzer ziehen :latest (rolling) oder eine feste Version per Tag
- .gitea/workflows/build-image.yml: Push auf main baut das Image und
schiebt latest + <sha> in die Gitea-Registry (j4stmarkus, lowercase)
- Workflow ist robust gegen Runner-Images ohne Docker-CLI (installiert
docker.io falls noetig); der Runner muss den Docker-Socket mounten
- docker-compose.casaos.yml: CasaOS-Custom-App-Format, installiert nur aus
dem Registry-Image, Datenband bleibt /DATA/AppData/trainingsplan/data
- assets/icon.png: echtes Somantis-Logo (aus Somantis/www), 512x512 PNG
- docker-compose.yml mit build: . bleibt fuer lokale Entwicklung bestehen
- docker rm -f trainingsplan vor docker compose up -d behebt den
Namenskonflikt mit einem alten Container (Daten-Ordner bleibt erhalten)
- Healthcheck prueft /api/meta statt des nicht existierenden /api/data