feat(delegations): UI fuer Berechtigungs-Delegationen — Modul 2/16 des UI-Backlogs
Backend existierte vollstaendig (5 Endpoints: list/create/update/delete/ active-check, delegations:read/write seit Audit-Fix im Katalog), Frontend hatte 0% Abdeckung. Modul folgt dem Approvals-Muster (Modul 1): - api/delegations.ts: TanStack-Hooks (useDelegations mit direction-Filter, useActiveDelegations, create/update/delete-Mutations mit Cache-Invalidierung) - pages/Delegations.tsx: Richtungstabs (alle/von mir/an mich), Karten mit Phasen-Badges (aktiv/geplant/abgelaufen/inaktiv), Erstellen-Dialog mit Empfaenger-Picker (useUsers, sich selbst ausschliessend), Start/Ende- Datetime, Scope-Toggle (alle Berechtigungen), Aktivieren/Deaktivieren, Loeschen mit Confirm — Aktionen hinter delegations:write gegated - Route /delegations (PermissionRoute delegations:read) — als Core-Route bewusst statisch registriert (Phase-Q-Regel: nur Plugin-Routen laufen ueber Manifeste) Sidebar-Entry order 92 (ArrowRightLeft-Icon) - i18n delegations.* + nav.delegations de/en Verifikation: Vitest 9/9 (Rendering, Tabs, Phasen, Permission-Gating, Create-Flow, Toggle, Delete) · tsc exit 0 · production build exit 0.
This commit is contained in:
@@ -22,7 +22,8 @@
|
||||
"tasks": "Aufgaben",
|
||||
"wiki": "Wiki",
|
||||
"systemDashboard": "System Dashboard",
|
||||
"approvals": "Freigaben"
|
||||
"approvals": "Freigaben",
|
||||
"delegations": "Delegationen"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Anmelden",
|
||||
@@ -1631,5 +1632,32 @@
|
||||
"requesterUser": "Benutzer",
|
||||
"requesterAgent": "Agent",
|
||||
"requesterSystem": "System"
|
||||
},
|
||||
"delegations": {
|
||||
"title": "Delegationen",
|
||||
"tabAll": "Alle",
|
||||
"tabFrom": "Von mir vergeben",
|
||||
"tabTo": "An mich vergeben",
|
||||
"create": "Delegation erstellen",
|
||||
"createTitle": "Berechtigungen delegieren",
|
||||
"createSubmit": "Delegieren",
|
||||
"recipient": "Empfaenger",
|
||||
"recipientPlaceholder": "Benutzer auswaehlen",
|
||||
"startAt": "Beginn",
|
||||
"endAt": "Ende",
|
||||
"scopeAll": "Alle Berechtigungen delegieren",
|
||||
"cardTo": "An {{user}}",
|
||||
"cardFrom": "Von {{user}}",
|
||||
"period": "Zeitraum:",
|
||||
"phase_active": "Aktiv",
|
||||
"phase_upcoming": "Geplant",
|
||||
"phase_expired": "Abgelaufen",
|
||||
"phase_inactive": "Inaktiv",
|
||||
"activate": "Aktivieren",
|
||||
"deactivate": "Deaktivieren",
|
||||
"delete": "Loeschen",
|
||||
"deleteConfirm": "Diese Delegation wirklich loeschen?",
|
||||
"empty": "Keine Delegationen in dieser Ansicht.",
|
||||
"loadError": "Delegationen konnten nicht geladen werden."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
"tasks": "Tasks",
|
||||
"wiki": "Wiki",
|
||||
"systemDashboard": "System Dashboard",
|
||||
"approvals": "Approvals"
|
||||
"approvals": "Approvals",
|
||||
"delegations": "Delegations"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Sign In",
|
||||
@@ -1631,5 +1632,32 @@
|
||||
"requesterUser": "User",
|
||||
"requesterAgent": "Agent",
|
||||
"requesterSystem": "System"
|
||||
},
|
||||
"delegations": {
|
||||
"title": "Delegations",
|
||||
"tabAll": "All",
|
||||
"tabFrom": "Given by me",
|
||||
"tabTo": "Given to me",
|
||||
"create": "Create delegation",
|
||||
"createTitle": "Delegate permissions",
|
||||
"createSubmit": "Delegate",
|
||||
"recipient": "Recipient",
|
||||
"recipientPlaceholder": "Select a user",
|
||||
"startAt": "Start",
|
||||
"endAt": "End",
|
||||
"scopeAll": "Delegate all permissions",
|
||||
"cardTo": "To {{user}}",
|
||||
"cardFrom": "From {{user}}",
|
||||
"period": "Period:",
|
||||
"phase_active": "Active",
|
||||
"phase_upcoming": "Upcoming",
|
||||
"phase_expired": "Expired",
|
||||
"phase_inactive": "Inactive",
|
||||
"activate": "Activate",
|
||||
"deactivate": "Deactivate",
|
||||
"delete": "Delete",
|
||||
"deleteConfirm": "Really delete this delegation?",
|
||||
"empty": "No delegations in this view.",
|
||||
"loadError": "Failed to load delegations."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user