Organigramm
Zweck
/organigramm rendert die Aufbau-Organisation des Mandanten als interaktives Canvas. Standardmaessig im View-Mode roles, der die Hierarchie über Rollen aufbaut. Filter erlauben das Eingrenzen auf eine Niederlassung, eine Abteilung und einen Suchbegriff (Mitarbeitername).
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_Organigramm | Seite aufrufbar | — |
view | Branch, Department, Role, Employee | Datenquellen für die Visualisierung | APP_SPEAMCORE_VIEW_BRANCH, DEPARTMENT, ROLE, EMPLOYEE |
Schritt-für-Schritt-Anleitung
- Organigramm (
/organigramm) öffnen. - View-Mode wählen (
rolesals Default; weitere Modi je nach Implementierung). - Filter-Panel oben:
status— Defaultactive. Aufinactiveumschalten zeigt ausgeschiedene Mitarbeiter.branchId— Filter auf eine Niederlassung.departmentId— Filter auf eine Abteilung.searchTerm— Volltext-Suche im Canvas.
- Canvas rendert Knoten und Verbindungen. Hover und Zoom interaktiv.

UI-Elemente
Komponente: OrganigrammFilterPanel
Filter-Header mit View-Switch, Status-Toggle, Niederlassungs-/Abteilungs-Selectors und Suchfeld.
Komponente: OrganigrammCanvas
Render-Komponente für den Hierarchie-Graph. Reagiert auf viewMode und searchTerm.
Hook: useOrganigrammData
Lädt aggregierte Daten (Branches + Departments + Roles + Employees) aus den API-Endpoints und transformiert sie für die Canvas.
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Niederlassungen — oberste Ebene.
- Abteilungen — zweite Ebene mit Rollen.
- Rollen — Verbinden Abteilungen mit Mitarbeitern.
- Mitarbeiter — unterste Ebene.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Canvas leer | Filter zu eng, oder Berechtigungen für Branches/Departments/Roles/Employees fehlen. |
| Mitarbeiter erscheint nicht | status = active und passender branchId/departmentId-Filter aktiv. |
| Hierarchie wirkt umgekehrt | View-Mode gewechselt. roles ist Default; andere Modi haben andere Wurzel-Definition. |
API/Schnittstellen
Die Seite konsumiert mehrere Stamm-Listen über den Hook useOrganigrammData:
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/branches | Niederlassungen | view Branch |
GET | /api/departments | Abteilungen | view Department |
GET | /api/roles | Rollen | view Role |
GET | /api/employees | Mitarbeiter | view Employee |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.