diff --git a/paperless-frontend/src/components/MailImportWizard.tsx b/paperless-frontend/src/components/MailImportWizard.tsx index ca2685a..55d948b 100644 --- a/paperless-frontend/src/components/MailImportWizard.tsx +++ b/paperless-frontend/src/components/MailImportWizard.tsx @@ -5,6 +5,7 @@ import { } from 'antd'; import type { ColumnsType } from 'antd/es/table'; import { emailImportApi, type AttachmentImportData } from '../api/email-import'; +import { emailsApi } from '../api/emails'; import { paperlessApi, type PaperlessCorrespondent } from '../api/paperless'; import dayjs from 'dayjs'; import { @@ -328,8 +329,32 @@ export default function MailImportWizard({ visible, onClose, onSuccess, email, a setCurrentStep(currentStep - 1); }; + // Alle Dokumente stehen auf "Ignorieren" (Duplikat oder vom Benutzer + // gewählt): Es gibt nichts zu importieren, die E-Mail wird ignoriert. + const ignoreEmail = async () => { + setLoading(true); + try { + await emailsApi.ignore(email.Id); + message.info( + importData.every(i => i.isDuplicate) + ? 'Alle Dokumente dieser E-Mail sind bereits vorhanden – die E-Mail wird als ignoriert markiert.' + : 'Alle Dokumente stehen auf „Ignorieren“ – die E-Mail wird als ignoriert markiert.' + ); + (onSuccess ?? onClose)(); + } catch (e) { + const err = e as { response?: { data?: { message?: string } }; message?: string }; + message.error(`E-Mail konnte nicht als ignoriert markiert werden: ${err.response?.data?.message ?? err.message}`); + } finally { + setLoading(false); + } + }; + const nextStep = async () => { if (currentStep === 0) { + if (importData.length > 0 && importData.every(i => i.type === 'IGNORE')) { + await ignoreEmail(); + return; + } await loadBelegnummern(); } else if (currentStep === 1) { // Vor dem Abrufen der Belegnummern erneut prüfen, damit für ein