refactor: Paperless-Dokumentrouten unter /api/paperless/documents/:id

„inbox“ war doppelt belegt (/api/inbox = Scanner, /api/paperless/inbox =
Paperless-Posteingang) und passte nicht zur Manuell-Seite, die dieselben
Routen nutzt. Umbenannt (ohne Alias, nur das eigene Frontend nutzt sie):

  PUT  paperless/inbox/:id            → PUT  paperless/documents/:id
  GET  paperless/inbox/pdf/:id        → GET  paperless/documents/:id/pdf
  GET  paperless/inbox/preview/:id    → GET  paperless/documents/:id/preview
  GET  paperless/inbox/:id/erechnung  → GET  paperless/documents/:id/erechnung

Dabei:
- Dokumentsuche (GET documents) wieder für den Posteingang (VIEW_INBOX)
  statt nur Admin – die Verknüpfungssuche im Bearbeiten-Dialog nutzt sie;
  die Einschränkung aus dem vorigen Commit hatte sie gebrochen.
- Suche und GET documents/:id liefern nur noch id, Titel, ASN, Datum
  (kein OCR-Volltext, keine Statusfelder).
- documents/:id/pdf auch für VIEW_SCANNER (Duplikatvergleich im Scanner).
- E-Rechnungs-Vorschlag prüft wie das Speichern pro Dokument (Tag 1 bzw.
  Manuell-Tag); Vorschau/PDF bewusst nicht (Suchergebnisse, Duplikate).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bjoernpoettkerandClaude Opus 5.5 committed 2026-11-04 10:46:57 +01:00
1 parent 04fca933ee
commit e0a6598b35
9 files changed
+138 -53

No files matched your search

@@ -23,3 +23,29 @@ export function darfDokumentBearbeiten(
permissions.includes(Permission.PROCESS_MANUALLY))
);
}
export interface DokumentKurzinfo {
id: number;
title: string;
archive_serial_number: number | null;
created: string;
}
/**
* Für Suche und Verknüpfungsanzeige genügen Kennung, Titel, ASN und Datum.
* Das vollständige Paperless-Dokument enthält u.a. den OCR-Volltext und
* Statusfelder – die sollen über diese Routen nicht abrufbar sein.
*/
export function dokumentKurzinfo(doc: {
id: number;
title: string;
archive_serial_number?: number | null;
created: string;
}): DokumentKurzinfo {
return {
id: doc.id,
title: doc.title,
archive_serial_number: doc.archive_serial_number ?? null,
created: doc.created,
};
}