Matthieu
|
e00c33d20b
|
feat(ui) : add Zimbra CalDAV configuration tab in admin page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-19 18:10:35 +01:00 |
|
Matthieu
|
455121132d
|
feat(frontend) : admin middleware, fix avatar upload, centralize IRI extraction, remove Nitro proxy
- Add admin middleware protecting /admin page (ROLE_ADMIN check)
- Fix useAvatarService to use useApi() with FormData detection
- Create extractIdFromIri() utility, replace manual IRI parsing
- Remove redundant Nitro devProxy (Vite proxy handles dev)
Tickets: T-014, T-015, T-017, T-021
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-03-17 15:27:16 +01:00 |
|
|
|
e4fc34b90f
|
refactor : simplify codebase and fix critical issues
Backend:
- Add MCP Serializer to centralize entity-to-array conversion (~300 lines deduped)
- Fix race condition in task/ticket number generation (SELECT FOR UPDATE + transaction)
- Add unique constraint on task (project_id, number) with migration
- Fix MIME type validation: use server-detected finfo instead of client-supplied type
- Add allowlist of permitted MIME types for uploads
- Fix TaskDocumentDownloadController: allow ROLE_CLIENT access, add priority:1
- Fix notification sent even when ticket status unchanged
- Remove redundant exception constructors
- Simplify services (BookStackApi double fetch, TokenEncryptor, GiteaApi)
- Consolidate duplicate checks in processors
Frontend:
- Fix useApi isHandlingUnauthorized scope (module-level to prevent double 401 redirect)
- Fix client-tickets toast key copy-paste bug
- Merge duplicated tasks service methods (getByProject + getByProjectArchived)
- Extract shared uploadWithRelation helper in task-documents service
- Extract formatFileSize utility from duplicated component code
- Extract status transition logic into useClientTicketHelpers composable
- Remove dead code (unused router, handleLogout, empty script blocks)
- Merge duplicate watchers and onMounted calls
- Normalize arrow functions to function declarations per convention
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-03-15 22:09:16 +01:00 |
|
|
|
afd4baed92
|
feat(avatar) : replace initials with UserAvatar component everywhere
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-03-15 21:58:46 +01:00 |
|
|
|
0d21e59023
|
feat(admin) : add client tickets tab with list, filters, status change, and delete
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-15 19:42:49 +01:00 |
|
|
|
5777e8386f
|
feat(bookstack) : add AdminBookStackTab component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-15 18:15:27 +01:00 |
|
Matthieu
|
5b204a3464
|
feat : add AdminGiteaTab component
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-13 14:01:39 +01:00 |
|
Matthieu
|
56275a9ebe
|
refactor : rename TaskType to TaskTag across the stack
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-13 08:20:21 +01:00 |
|
Matthieu
|
ae8654d9ca
|
feat(admin) : add task reassignment logic to AdminStatusTab
|
2026-03-12 11:51:15 +01:00 |
|
Matthieu
|
0bf01cfb27
|
feat(admin) : add AdminClientTab component
|
2026-03-12 11:46:19 +01:00 |
|
|
|
1efa0fa9ca
|
refactor(frontend) : reorganize components into subdirectories and fix imports
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-10 23:59:24 +01:00 |
|