diff --git a/paperless-frontend/src/components/DocumentEditModal.tsx b/paperless-frontend/src/components/DocumentEditModal.tsx index dde6890..02382a7 100644 --- a/paperless-frontend/src/components/DocumentEditModal.tsx +++ b/paperless-frontend/src/components/DocumentEditModal.tsx @@ -294,28 +294,51 @@ export default function DocumentEditModal({ documentId, document, open, onClose, } }; + const runSave = async (values: any, isNext: boolean) => { + // Kontonummer-Logik (unverändert): neue Kontonummer ggf. bestätigen lassen. + const kontonummerReq = requirements.find(r => r.customFieldIndex === 5); + if (kontonummerReq && values['cf_5'] && values.correspondent) { + const kNummer = values['cf_5']; + const knData = await posteingangApi.getKontonummern(values.correspondent); + const exists = knData.some(k => k.Nummer === kNummer); + if (!exists) { + // Prompt user to save kontonummer + setKontonummerMissing({ correspondentId: values.correspondent, nummer: kNummer }); + return; // Stop saving, wait for confirmation + } + } + await handleSaveDocument(values, isNext); + }; + const handleSubmit = async (isNext: boolean = false) => { try { - const values = await form.validateFields(); - - // Kontonummer Logic - const kontonummerReq = requirements.find(r => r.customFieldIndex === 5); - if (kontonummerReq && values[`cf_5`] && values.correspondent) { - const kNummer = values[`cf_5`]; - const knData = await posteingangApi.getKontonummern(values.correspondent); - const exists = knData.some(k => k.Nummer === kNummer); - - if (!exists) { - // Prompt user to save kontonummer - setKontonummerMissing({ correspondentId: values.correspondent, nummer: kNummer }); - return; // Stop saving, wait for confirmation - } - } - - await handleSaveDocument(values, isNext); + const values = await form.validateFields(); + await runSave(values, isNext); } catch (e) { - // Validation failed + const errorFields = + (e as { errorFields?: { name: unknown; errors: string[] }[] })?.errorFields ?? []; + + // Kein Validierungsfehler, oder Posteingang → bisheriges Verhalten (stiller Abbruch). + if (errorFields.length === 0 || isPosteingang) { console.error("Form validation failed:", e); + return; + } + + // "Manuell bearbeiten": Speichern trotz fehlender Pflichtfelder mit Hinweis anbieten. + const missing = Array.from(new Set(errorFields.flatMap((f) => f.errors))); + Modal.confirm({ + title: 'Pflichtfelder unvollständig', + okText: 'Trotzdem speichern', + cancelText: 'Abbrechen', + content: ( +
Nicht alle Pflichtfelder sind ausgefüllt:
+Möchtest du trotzdem speichern?
+