Commit Graph
6 Commits
Author SHA1 Message Date
patrickandClaude Sonnet 4.6 a64553e124 feat: Monatsansicht im /mobile Heute-Screen
- Toggle 'Heute / <Monatsname>' oben im Screen
- Monats-KPIs: Gesamtstunden, Arbeitstage, Ø pro Tag
- Tagesliste absteigend mit Datum, Uhrzeit, Status, Stunden
- Lazy-Load: Monatsdaten werden erst beim Wechsel geladen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 22:56:04 +02:00
patrickandClaude Sonnet 4.6 7a28727344 feat: Stunden-Auszahlungen in /mobile Profil-Screen
- Überstunden-Saldo (Gesamt/Entnommen/Verfügbar) als 3-spaltige Karte
- Letzte 5 Auszahlungen mit Stunden (lila), Abrechnungsmonat, Notiz
- Parallel-Load mit Overtime-Balance beim Profil-Laden

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 22:22:08 +02:00
patrickandClaude Sonnet 4.6 a70dfc1c3a fix: ternäre Button-Kette in MobileStampScreen korrigiert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 23:53:43 +02:00
patrickandClaude Sonnet 4.6 66bf1b0686 feat: Admin-Toggle für mobile Zeiterfassung
Backend:
- Company.mobile_stamping_enabled (BOOLEAN DEFAULT TRUE)
- CompanyOut + CompanyUpdate: neues Feld
- Migration 0027: companies.mobile_stamping_enabled

Frontend Desktop (CompanySettingsPage):
- Abschnitt 'Mobile-Ansicht' mit Toggle-Switch
- Speichert via PATCH /companies/me

Frontend Mobile (MobileStampScreen):
- Lädt mobile_stamping_enabled aus GET /companies/me
- Deaktiviert: Hinweis-Banner statt Buttons
  ('Einstempeln nicht verfügbar – bitte Kiosk/Desktop nutzen')
- Aktiviert: normales Verhalten

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 23:52:46 +02:00
patrickandClaude Sonnet 4.6 96a4e728d6 feat: Abwesenheiten-Screen in Mobile-App
- MobileAbsencesScreen.tsx:
  - Urlaubskonto-Karte (verbleibende Tage + Fortschrittsbalken)
  - Liste eigener Abwesenheiten (aktuell/geplant + vergangen)
  - Farbpunkt pro Abwesenheitstyp, Status-Badge
  - Bottom-Sheet Modal: Antrag stellen oder Krank melden
  - Start-/Enddatum-Picker, Typ-Auswahl, optionale Notiz
  - SICK-Typ → quick-sick Endpoint, sonst POST /absences/
- MobileBottomNav: 4. Tab 'Urlaub' (war 3 Tabs)
- MobilePage: Screen 'absences' eingebunden

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 23:31:00 +02:00
patrickandClaude Sonnet 4.6 299cc52d76 feat: mobile Login-Seite /mobile/login
- MobileLoginPage.tsx: touch-optimiertes Login-Formular
  - E-Mail + Passwort mit großen Touch-Targets (min-h-[52px])
  - TOTP-Flow: nach erstem Login automatisch 6-stelliges Code-Feld
  - Numerische Tastatur (inputMode=numeric) für TOTP-Eingabe
  - Fehlerbehandlung + Ladezustand
  - Link zur Desktop-Version
- MobilePage: Redirect zu /mobile/login statt /login
- App.tsx: Route /mobile/login registriert (kein Layout-Wrapper)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 21:17:32 +02:00