feat(upload): bulk drag-and-drop upload on home page (#66) #74
Reference in New Issue
Block a user
Delete Branch "feature/66-bulk-upload-drop-zone"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
POST /api/documents/quick-upload— accepts multiple files in one multipart request, creates one document per file (title = filename without extension, status = UPLOADED), returns{ created: [...], errors: [...] }for partial-success handlingstoreDocument()to strip the file extension from the title (was previously storing e.g."scan001.pdf"as title)invalidateAll()after uploadTest plan
./mvnw test— all 179 tests pass (new tests cover 401/403/200/invalid-type for quick-upload endpoint, and title stripping in storeDocument)npm run check— no new errorsCloses #66
🤖 Generated with Claude Code
- Switch errors from plain strings to { filename, code } objects so the frontend can show translated messages instead of raw exception text - Add UNSUPPORTED_FILE_TYPE error code end-to-end (Java enum → errors.ts → de/en/es messages) - Fix IncorrectResultSizeDataAccessException when a filename exists more than once in the DB: use findFirstByOriginalFilename instead of findByOriginalFilename in storeDocument() Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>- DELETE /api/documents/{id} endpoint (204 No Content, WRITE_ALL required) - DocumentService.deleteDocument() — throws 404 if not found, cascades via DB foreign keys (versions, annotations, comments all ON DELETE CASCADE) - Delete form action in edit page server: redirects to / on success - Two-step confirmation in the save bar: first click reveals inline "Wirklich löschen?" + confirm/cancel, avoiding native browser dialogs - i18n key doc_delete_confirm added to de/en/es Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>