feat: redesign Clients admin — drag-and-drop, inline edit, tags

Schema:
- Client model: add tags String[] field
- Shared types + Zod schemas updated for tags

API:
- client.create/update: accept tags array
- client.delete: with safety checks (no projects, no children)
- client.batchUpdateSortOrder: batch reorder in transaction

UI (complete redesign of ClientsAdminClient):
- Drag-and-drop reordering via @dnd-kit (sortable)
- Inline editing: click name/sortOrder to edit in-place
- Tag pills: auto-colored by hash, add/remove inline
- Tag auto-suggest from existing tags across all clients
- Sticky "Add Client" input row at top
- Search/filter by name, code, or tag
- Delete with inline confirmation
- Optimistic reorder (instant UI update)
- Full dark theme support

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-03-22 21:04:20 +01:00
parent a9a8a13424
commit 03922764db
7 changed files with 731 additions and 217 deletions
+1
View File
@@ -602,6 +602,7 @@ model Client {
children Client[] @relation("ClientTree")
isActive Boolean @default(true)
sortOrder Int @default(0)
tags String[] @default([])
projects Project[]
resourceClientUnits Resource[] @relation("resource_client_unit")