Anpassung (Customization)
Zweck
Die Customization-Page-Gruppe steuert das Branding, die Login-Praesentation und das Beleg-/Mail-Erscheinungsbild des Mandanten. Sie besteht aus acht Sub-Routen mit gemeinsamem CustomizationTabList-Layout:
| Sub-Route | Inhalt |
|---|---|
/customization/general | Allgemeine Marken-Tokens — Primaer-/Sekundaerfarbe, Logo, Favicon. |
/customization/login-banner | Login-Banner (Bild oben in der Login-Maske). |
/customization/login | Login-Hintergrundbild und -Texte. |
/customization/qr-code | Layout-Token für QR-Code-Aufkleber (z. B. Lager-Spots, Anlagen). |
/customization/profile-buttons | Konfigurierbare Profil-Buttons in der Top-Bar. |
/customization/print | Briefpapier — Kopf-/Fußbereich und Layout für gedruckte Belege/Briefe (im UI „Briefpapier"). |
/customization/stamp | Stempel — Firmen-/Freigabe-Stempel für Belege. |
/customization/mail-signature | Mail-Signatur — Standard-Signatur für ausgehende E-Mails. |
Hinter den Kulissen werden alle Werte als PublicAttribute-Einträge gespeichert — Schlüssel-Werte mit Typ (color, document, ...) und Gruppe (general, loginBanner, ...). Diese sind „public" im Sinne von „auch für noch nicht angemeldete Anwender lesbar" — z. B. für den Login-Bildschirm.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_Customization, PublicAttribute | Tabs aufrufbar | — |
update | PublicAttribute | Werte speichern | APP_SPEAMCORE_UPDATE_PUBLIC_ATTRIBUTE |
Schritt-für-Schritt-Anleitung
Branding ändern
- Anpassung — Allgemein (
/customization/general). - Primaerfarbe / Sekundaerfarbe als Hex pflegen — wirkt sofort auf das ganze UI über die CSS-Tokens.
- Logo und Favicon als Document-Upload bereitstellen.
Login-Banner
/customization/login-banner — Bild für das Banner in der Login-Maske. Format: PNG/JPG, 16:9 empfohlen.
Login-Hintergrund
/customization/login — Hintergrundbild und ggf. Welcome-Texte für die Login-Page.
QR-Code-Layout
/customization/qr-code — Token für Aufkleber-Layout (Hintergrundfarbe, Logo-Platzierung, Text). Wird in QR-IDs, Lager-Spots und Anlagen gerendert.
Profile-Buttons
/customization/profile-buttons — Anzeige-Reihenfolge und Sichtbarkeit der Top-Bar-Profile-Buttons (z. B. Sprachwechsler, Logout, eigene Buttons).

Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
UI-Elemente
Komponente: CustomizationTabList
Tab-Leiste, die zwischen den acht Sub-Routen wechselt.
Komponente: PublicAttributeDataProvider
Generischer Loader für PublicAttribute-Werte — pro Page mit keyType- und keyGroup-Filter.
Komponente: CustomizationGeneralTab
Konkretes Tab-Inhalt für /customization/general. Analog CustomizationLoginBannerTab, CustomizationLoginTab, CustomizationQRCodeTab, CustomizationProfileButtonsTab sowie die eigenständigen Seiten CustomizationPrintPage (Briefpapier), CustomizationStampPage (Stempel) und CustomizationMailSignaturePage (Mail-Signatur).
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Setup-Wizard — Schritt 7 (Branding) setzt erste Werte über dieselben PublicAttribute-Einträge.
- Document-Center — Logo, Favicon, Banner-Bilder als Documents.
- QR-IDs, Lager-Spots — verwenden QR-Code-Layout-Token.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Änderung wirkt nicht sofort | Public-Attribute werden nach Auto-Save sofort übernommen; harter Browser-Reload kann helfen. |
| Logo wird nicht angezeigt | Document-Upload fehlgeschlagen; in /document-center prüfen. |
| Login-Banner zerschnitten | Empfohlene Bildgroesse beachten (16:9). |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/public-attributes?filter[keyGroup=general/loginBanner/...] | Werte laden | view PublicAttribute |
PATCH | /api/public-attributes/:id | Wert aktualisieren | update PublicAttribute |
Versionshinweise
- 2026-06-02: Drift-Korrektur — Customization hat acht statt fünf Sub-Tabs. Ergänzt:
/customization/print(Briefpapier),/customization/stamp(Stempel),/customization/mail-signature(Mail-Signatur). Quelle: routes.tsx:1883-1885. - 2026-04-30: Initiale Veroeffentlichung.