Zum Hauptinhalt springen

Floating-Quickbar (Kalender, Zeit, Arbeit)

Komponenten und Labels gegen FE-Code abgeglichen (Welle 81). Die drei Floating-Tabs werden global über `src/layouts/DefaultLayout.tsx` via `` (`src/pages/Home/components/GlobalComponents.tsx`) gerendert und sind in folgenden Komponenten implementiert:
  • KAL.src/pages/Home/components/WorkorderCalendar.tsx, i18n-Key quickAction.calendar → "Kal."
  • ZEITsrc/pages/Home/components/PersonalTimeTracking.tsx, i18n-Key quickAction.time → "Zeit"
  • ARBEITsrc/pages/Home/components/UpcomingWorkorder.tsx, i18n-Key quickAction.upcoming → "Arbeit"

Sichtbarkeits-Bedingungen aus GlobalComponents.tsx:

  • KAL. + ARBEIT: ability.can("view", "Workorder")
  • ZEIT: ability.can("view", "EmployeeTimeTracking") && ability.can("create", "EmployeeTimeTracking") && ability.can("create", "PersonalEmployeeTimeTracking")

Zweck

Auf jeder Modul-Detailseite (Auftrag, Verkaufsbeleg, Kunde, Lieferant, Mitarbeiter, ...) sind am linken unteren Bildschirmrand drei vertikale Floating-Tabs verfuegbar:

  • KAL. (teal/cyan, #319795) — Mini-Kalender als Schnellzugriff auf das Kalender-Modul
  • ZEIT (gruen) — Persoenlicher Wochen-Arbeitszeit-Tracker (Kommen/Gehen)
  • ARBEIT (lila/violett, #805AD5) — Liste der eigenen bevorstehenden Aufträge

Stack-Position auf dem Bildschirm (von oben nach unten):

  • KAL. bei bottom: 125px
  • ZEIT bei bottom: 90px (zwischen den anderen)
  • ARBEIT bei bottom: 50px

Diese Drawer beziehen sich nicht auf den aktuell geoeffneten Datensatz, sondern auf den angemeldeten Mitarbeiter. Sie sind eine persoenliche Schnellzugriff-Leiste, die überall mitlaeuft.

KAL. — Mini-Kalender

Klick auf den teal-/cyan-farbigen Tab öffnet einen Mini-Datepicker als Floating-Drawer am unteren Rand:

ElementFunktion
Monatsanzeige (z. B. „April 2026")Aktueller Monat.
Pfeile ‹/›Vor/zurück-Navigation.
Wochen-Spalte „WO"Kalenderwoche je Zeile.
Tageszellen Mo–So (mit Sonderkennzeichnung Heute, Wochenende)Datums-Auswahl.
Footer mit Kalender-Icon„Zum vollen Kalender springen" — Navigation auf /calendar.

Wirkung: Der Mini-Kalender ist ein reiner Schnellzugriff — er erstellt keine Termine. Klick auf einen Tag oder das Footer-Icon springt zur Vollansicht des Kalenders.

ZEIT — Persoenliche Arbeitszeit

Klick auf den gruenen Tab öffnet einen Wochen-Arbeitszeit-Drawer:

ElementFunktion
Headline „ARBEITSZEIT"Modal-Titel.
KW-Navigation (z. B. „KW 18 (27.04. – 03.05.)")Wochenwechsel mit Pfeilen.
Wochensumme (z. B. „0h 0m")Aggregierte Stunden der Kalenderwoche.
Mini-Wochengrid (Mo–So)Tagessummen unter jedem Wochentag.
Grosser Play-/Stop-Button + Timer (00:00:00)Persoenlicher Timer — startet einen EmployeeTimeTracking-Datensatz ohne Auftragsbezug (workorderId = null). Geeignet für Kommen/Gehen-Erfassung.
Footer Stift-IconManuelles Editieren — Zeitspanne nachträglich erfassen.

Wirkung: Erfasst persoenliche Arbeitszeit für Lohnabrechnung, Arbeitszeitkonten, Pausenkontrolle. Einträge erscheinen im Modul Zeiterfassungen und in der Zeit-Uebersicht.

**Wichtig — Unterschied zum Auftrags-Zeit-Tracker:** Der gruene **TIME**-Quick-Button rechts in der Auftrags-Detailseite erfasst Zeit **mit** Auftragsbezug (Stempelt Vor-Ort-Arbeit auf einen konkreten Auftrag). Der gruene **ZEIT**-Floating-Drawer hier links erfasst Zeit **ohne** Auftragsbezug (Kommen/Gehen, Buerozeit).

ARBEIT — Eigene Auftragsliste

Klick auf den lila Tab öffnet einen „Bevorstehende Arbeitsaufträge"-Drawer:

ElementFunktion
Headline „Bevorstehende Arbeitsaufträge"Modal-Titel.
„Alle anzeigen" (rechts)Sprung zur Auftragsliste mit Filter employeeId = me.
Tabelle: Arbeitsauftrag, Standort, FristListe der eigenen Aufträge mit Frist in der Zukunft.
PaginationSeitenweise Navigation.
Footer Datei-IconModal-Footer-Aktion.

Wirkung: Schnelle Übersicht über die eigene Aufgabenliste ohne zur Auftrags-Liste wechseln zu muessen. Klick auf einen Eintrag springt direkt auf den jeweiligen Auftrag.

Filter-Logik (Code-verifiziert, UpcomingWorkorder.tsx): Workorder.listWorkorders mit Filter deadline >= heute (ISO-Datum). Page-Size: 10. Pagination und Sortierung kommen aus dem Standard-Listings-Verhalten der WorkorderService.listWorkorders-API.

Der Drawer zeigt also alle künftigen Aufträge im System (nicht ausschließlich die eigenen). CASL-Filter durch das BE schränkt die Sicht implizit ein — Anwender sehen nur Aufträge, für die sie view:Workorder haben.

Verknuepfungen

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung — die drei Floating-Drawer Kal./Zeit/Arbeit dokumentiert.