feat(#282): Dokument-Detail + PDF-Viewer (web) #316

Merged
admin-mrrm merged 1 commit from feat/282-archiv-detail-web into main 2026-05-16 18:27:15 +02:00
Owner

Closes #282

Summary

  • API: PATCH /documents/:id (Metadaten/Tag-Update über Paperless-Proxy), GET /documents/:id/download (Original-Datei mit Content-Disposition).
  • api-client: DocumentsResource.update / previewBlob / downloadBlob und neuer HttpClient.requestBlob für authentifizierte Binär-Downloads.
  • web: Neue Route /archiv/:documentId mit Metadaten-Panel (Titel, Korrespondent, Typ, Daten), inline Tag-Editor (Chips + Select), PDF-Vorschau (Blob → iframe für authentifizierten Stream) und Download-Button.
  • Archiv-Liste verlinkt jetzt in die Detail-Route.

Notizen

  • TDD: 12 neue API-Tests (PaperlessClient.updateDocument/getDownloadStream, DocumentsService, Controller).
  • Notiz-Feld ist als optional im Issue markiert und wird in einem Follow-up nachgereicht — Scope dieses PR ist Metadaten + Viewer + Download.
  • Mobile-Pendant kommt in #283.

Test plan

  • pnpm --filter @mrrmlab/api test → grün (345 Tests)
  • pnpm --filter @mrrmlab/web typecheck && pnpm --filter @mrrmlab/web lint → clean
  • In der Web-App ein Dokument im Archiv öffnen: PDF-Vorschau lädt, Tag hinzufügen + entfernen persistiert, Download triggert Browser-Save mit korrektem Dateinamen.
Closes #282 ## Summary - **API**: `PATCH /documents/:id` (Metadaten/Tag-Update über Paperless-Proxy), `GET /documents/:id/download` (Original-Datei mit Content-Disposition). - **api-client**: `DocumentsResource.update / previewBlob / downloadBlob` und neuer `HttpClient.requestBlob` für authentifizierte Binär-Downloads. - **web**: Neue Route `/archiv/:documentId` mit Metadaten-Panel (Titel, Korrespondent, Typ, Daten), inline Tag-Editor (Chips + Select), PDF-Vorschau (Blob → iframe für authentifizierten Stream) und Download-Button. - Archiv-Liste verlinkt jetzt in die Detail-Route. ## Notizen - TDD: 12 neue API-Tests (PaperlessClient.updateDocument/getDownloadStream, DocumentsService, Controller). - Notiz-Feld ist als optional im Issue markiert und wird in einem Follow-up nachgereicht — Scope dieses PR ist Metadaten + Viewer + Download. - Mobile-Pendant kommt in #283. ## Test plan - [ ] `pnpm --filter @mrrmlab/api test` → grün (345 Tests) - [ ] `pnpm --filter @mrrmlab/web typecheck && pnpm --filter @mrrmlab/web lint` → clean - [ ] In der Web-App ein Dokument im Archiv öffnen: PDF-Vorschau lädt, Tag hinzufügen + entfernen persistiert, Download triggert Browser-Save mit korrektem Dateinamen.
feat(#282): Dokument-Detail + PDF-Viewer (web)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
96c6cf72e4
- API: PATCH /documents/:id (Metadaten-Update über Paperless-Proxy)
- API: GET /documents/:id/download (Original-Datei mit Content-Disposition)
- api-client: DocumentsResource.update / previewBlob / downloadBlob
- web: /archiv/:documentId mit Metadaten-Panel, inline Tag-Editor,
  PDF-Vorschau (Blob + iframe für authentifizierten Stream) und Download

Tests: paperless.client + service + controller (12 neue Cases, TDD).
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp!316
No description provided.