From 8ea1db257e081917d7a134722920e724487216d5 Mon Sep 17 00:00:00 2001 From: Linrador <68631622+Linrador@users.noreply.github.com> Date: Wed, 26 Nov 2025 15:00:05 +0100 Subject: [PATCH] updated --- app/(app)/devices/DeviceDetailModal.tsx | 60 +- app/(app)/devices/LoanDeviceModal.tsx | 6 +- app/(app)/devices/[inventoryNumber]/page.tsx | 20 + app/(app)/devices/page.tsx | 94 +- app/(app)/users/ChangePasswordModal.tsx | 192 ++++ app/(app)/users/EditUserModal.tsx | 115 +++ app/(app)/users/UserRowActions.tsx | 108 +++ app/(app)/users/UsersHeaderClient.tsx | 84 +- app/(app)/users/UsersTablesClient.tsx | 913 ++++++++---------- app/(app)/users/passwordUtils.ts | 25 + app/api/me/route.ts | 42 + app/api/user-groups/route.ts | 58 +- components/DeviceQrCode.tsx | 31 +- components/ui/Card.tsx | 108 +++ components/ui/Checkbox.tsx | 155 +++ components/ui/RadioGroup.tsx | 307 ++++++ components/ui/Switch.tsx | 68 ++ generated/prisma/commonInputTypes.ts | 26 + generated/prisma/internal/class.ts | 4 +- generated/prisma/internal/prismaNamespace.ts | 10 +- .../prisma/internal/prismaNamespaceBrowser.ts | 3 +- generated/prisma/models/UserGroup.ts | 38 +- package-lock.json | 131 ++- package.json | 4 +- .../migration.sql | 2 + prisma/schema.prisma | 3 + 26 files changed, 1923 insertions(+), 684 deletions(-) create mode 100644 app/(app)/devices/[inventoryNumber]/page.tsx create mode 100644 app/(app)/users/ChangePasswordModal.tsx create mode 100644 app/(app)/users/EditUserModal.tsx create mode 100644 app/(app)/users/UserRowActions.tsx create mode 100644 app/(app)/users/passwordUtils.ts create mode 100644 app/api/me/route.ts create mode 100644 components/ui/Card.tsx create mode 100644 components/ui/Checkbox.tsx create mode 100644 components/ui/RadioGroup.tsx create mode 100644 components/ui/Switch.tsx create mode 100644 prisma/migrations/20251126102750_add_can_edit_devices_to_usergroup/migration.sql diff --git a/app/(app)/devices/DeviceDetailModal.tsx b/app/(app)/devices/DeviceDetailModal.tsx index f9922f4..6b55668 100644 --- a/app/(app)/devices/DeviceDetailModal.tsx +++ b/app/(app)/devices/DeviceDetailModal.tsx @@ -15,8 +15,15 @@ type DeviceDetailModalProps = { open: boolean; inventoryNumber: string | null; onClose: () => void; + + /** Darf der aktuelle Benutzer Geräte bearbeiten? */ + canEdit?: boolean; + + /** Wird aufgerufen, wenn im Detail-Modal "Bearbeiten" geklickt wird */ + onEdit?: (inventoryNumber: string) => void; }; + const dtf = new Intl.DateTimeFormat('de-DE', { dateStyle: 'short', timeStyle: 'short', @@ -25,9 +32,22 @@ const dtf = new Intl.DateTimeFormat('de-DE', { type DeviceDetailsGridProps = { device: DeviceDetail; onStartLoan?: () => void; + + /** Darf der aktuelle Benutzer Geräte bearbeiten? */ + canEdit?: boolean; + + /** Wird ausgelöst, wenn auf "Bearbeiten" geklickt wird */ + onEdit?: () => void; }; -function DeviceDetailsGrid({ device, onStartLoan }: DeviceDetailsGridProps) { + +function DeviceDetailsGrid({ + device, + onStartLoan, + canEdit, + onEdit, +}: DeviceDetailsGridProps) { + const [activeSection, setActiveSection] = useState<'info' | 'zubehoer'>('info'); @@ -125,7 +145,6 @@ function DeviceDetailsGrid({ device, onStartLoan }: DeviceDetailsGridProps) {