diff --git a/webui/src/features/campaigns/MailSettingsPage.tsx b/webui/src/features/campaigns/MailSettingsPage.tsx index e2150fe..3cc4e6a 100644 --- a/webui/src/features/campaigns/MailSettingsPage.tsx +++ b/webui/src/features/campaigns/MailSettingsPage.tsx @@ -1,5 +1,5 @@ import { useEffect, useMemo, useState } from "react"; -import { MailServerSettingsPanel, addressesFromValue, hasMailImapSettings, mailImapSettingsPayload, mailNumberOrDefault, mailNumberOrNull, mailServerSecurityOptions, mailSmtpSettingsPayload, mailTransportCredentialsPayloadFromRecords, usePlatformModuleInstalled, usePlatformUiCapability, type MailProfilesUiCapability, type MailServerConnectionTestResult, type MailServerCredentialSettings, type MailServerFolderLookupResult, type MailServerImapSettings, type MailServerSmtpSettings } from "@govoplan/core-webui"; +import { MailServerFolderLookupResultView, MailServerSettingsPanel, ToggleSwitch, addressesFromValue, hasMailImapSettings, mailImapSettingsPayload, mailNumberOrDefault, mailNumberOrNull, mailServerSecurityOptions, mailSmtpSettingsPayload, mailTransportCredentialsPayloadFromRecords, usePlatformModuleInstalled, usePlatformUiCapability, type MailProfilesUiCapability, type MailServerConnectionTestResult, type MailServerCredentialSettings, type MailServerFolderLookupResult, type MailServerImapSettings, type MailServerSmtpSettings } from "@govoplan/core-webui"; import type { ApiSettings } from "../../types"; import { Button } from "@govoplan/core-webui"; import { Card } from "@govoplan/core-webui"; @@ -59,7 +59,7 @@ export default function MailSettingsPage({ settings, campaignId, view = "setting const version = data.currentVersion; const locked = isAuditLockedVersion(version, data.campaign?.current_version_id); - const { draft, displayDraft, dirty, saveState, localError, setLocalError, patch, saveDraft } = useCampaignDraftEditor({ + const { draft, displayDraft, dirty, saveState, localError, setLocalError, patch, discardDraft, saveDraft } = useCampaignDraftEditor({ settings, campaignId, version, @@ -98,6 +98,7 @@ export default function MailSettingsPage({ settings, campaignId, view = "setting const imapCredentialDisabled = locked || inlineMailSettingsBlocked || imapUnavailable || usingMailProfile && imapCredentialsInherited; const imapDisabled = locked || inlineMailSettingsBlocked || imapUnavailable; const imapAppendEnabled = getBool(imapAppend, "enabled"); + const imapAppendFolder = getText(imapAppend, "folder", getText(imap, "sent_folder", "auto")); const appendTargetFolderDisabled = imapDisabled || !imapAppendEnabled; const inlinePolicyMessages = useMemo(() => { const validateMailPolicy = mailProfilesUi?.validateMailPolicy; @@ -393,7 +394,7 @@ export default function MailSettingsPage({ settings, campaignId, view = "setting
- + {!isPolicyView && }
@@ -464,6 +465,33 @@ export default function MailSettingsPage({ settings, campaignId, view = "setting } + {!isPolicyView && + +
+
+ patch(["delivery", "imap_append_sent", "enabled"], checked)} /> +
+ +
+ patch(["delivery", "imap_append_sent", "folder"], event.target.value)} + placeholder="i18n:govoplan-core.auto.0d612c12" /> + +
+
+ +
+
+ } + {!isPolicyView && {inlinePolicyMessages.length > 0 && @@ -489,25 +517,13 @@ export default function MailSettingsPage({ settings, campaignId, view = "setting imapCredentialDisabled={imapCredentialDisabled} imapPasswordSaved={Boolean(usingMailProfile && imapCredentialsInherited && selectedProfile?.imap_password_configured)} imapActionDisabled={imapDisabled || !mailModuleInstalled} - append={{ - enabled: imapAppendEnabled, - folder: getText(imapAppend, "folder", getText(imap, "sent_folder", "auto")), - disabled: imapDisabled, - folderDisabled: appendTargetFolderDisabled, - onEnabledChange: (checked) => patch(["delivery", "imap_append_sent", "enabled"], checked), - onFolderChange: (folder) => patch(["delivery", "imap_append_sent", "folder"], folder) - }} smtpTestLabel={usingMailProfile ? "i18n:govoplan-campaign.test_profile_smtp.884a0e66" : "i18n:govoplan-campaign.test_smtp_login.a1359755"} imapTestLabel={usingMailProfile ? "i18n:govoplan-campaign.test_profile_imap.e1cec0e0" : "i18n:govoplan-campaign.test_imap_login.c32e316e"} busyAction={mailActionState} onTestSmtp={runSmtpTest} onTestImap={runImapTest} - onLookupFolders={runFolderLookup} smtpTestResult={smtpTestResult} imapTestResult={imapTestResult} - folderLookupResult={folderResult} - onUseDetectedFolder={useDetectedSentFolder} - useDetectedFolderDisabled={appendTargetFolderDisabled} floatingResults />