Mail: redesign profile UI around server and credential split #10

Closed
opened 2026-07-11 03:46:50 +02:00 by zemion · 2 comments
Owner

Context

The mail backend now separates server configuration from credentials, but the profile creation/editing UI still behaves as if every edit button opens the same combined dialog.

Requested behavior

Change the mail profile creation and editing flow to reflect the server/credential split.

Acceptance criteria

  • Editing an IMAP server, SMTP server, and credentials opens the appropriate focused dialog.
  • The UI makes it clear that IMAP and SMTP can be different servers and server types.
  • Credentials are visibly attached to the server/profile they belong to.
  • Creation flow guides the user through server selection/creation and credential assignment without duplicating fields.
  • Existing profile policies remain compatible.
  • WebUI tests cover the new dialog routing and at least one create/edit path.

Folded Scope From #12: Mail Profile / Transport Complexity

The structural debt from govoplan-mail#12 is part of this redesign work and must not be lost while implementing the server/credential split.

Additional acceptance notes:

  • Extract mail profile policy merge and validation into smaller focused helpers with fixture-style tests.
  • Keep server configuration, credential inheritance, and policy enforcement visibly separate in the UI and backend service boundaries.
  • Split transport request preparation from execution/response handling where SMTP/IMAP behavior is touched.
  • Preserve existing policy compatibility while simplifying _merge_policy, update_mail_server_profile, _validate_policy_against_parent, list_imap_messages, and _send_smtp_payload over follow-up slices.

Source: folded from govoplan-mail#12 (source/security-audit, audit complexity baseline codex-audit-full-2026-07-11:mail-complexity-baseline).

## Context The mail backend now separates server configuration from credentials, but the profile creation/editing UI still behaves as if every edit button opens the same combined dialog. ## Requested behavior Change the mail profile creation and editing flow to reflect the server/credential split. ## Acceptance criteria - Editing an IMAP server, SMTP server, and credentials opens the appropriate focused dialog. - The UI makes it clear that IMAP and SMTP can be different servers and server types. - Credentials are visibly attached to the server/profile they belong to. - Creation flow guides the user through server selection/creation and credential assignment without duplicating fields. - Existing profile policies remain compatible. - WebUI tests cover the new dialog routing and at least one create/edit path. ## Folded Scope From #12: Mail Profile / Transport Complexity The structural debt from `govoplan-mail#12` is part of this redesign work and must not be lost while implementing the server/credential split. Additional acceptance notes: - Extract mail profile policy merge and validation into smaller focused helpers with fixture-style tests. - Keep server configuration, credential inheritance, and policy enforcement visibly separate in the UI and backend service boundaries. - Split transport request preparation from execution/response handling where SMTP/IMAP behavior is touched. - Preserve existing policy compatibility while simplifying `_merge_policy`, `update_mail_server_profile`, `_validate_policy_against_parent`, `list_imap_messages`, and `_send_smtp_payload` over follow-up slices. Source: folded from `govoplan-mail#12` (`source/security-audit`, audit complexity baseline `codex-audit-full-2026-07-11:mail-complexity-baseline`).
zemion added the
type
task
status
ready
priority
p2
area/webui
module/mail
codex/ready
labels 2026-07-11 03:46:50 +02:00
Author
Owner

Codex State: progress

Summary

  • Split the mail profile tree so SMTP/IMAP server settings and SMTP/IMAP credentials are visible as separate child rows, with edit actions opening the corresponding MailServerSettingsPanel section.
  • Added a WebUI package lock so the module-local test script can install and run TypeScript consistently.

Changed Files

  • webui/src/features/mail/MailProfileManagement.tsx
  • webui/package-lock.json

Verification

  • /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run test:mail-ui
  • /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run build in govoplan-core/webui

Next / Blocked

  • Keep this open for full guided creation/edit UX and any backend schema split work that is still intended for this issue.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Split the mail profile tree so SMTP/IMAP server settings and SMTP/IMAP credentials are visible as separate child rows, with edit actions opening the corresponding MailServerSettingsPanel section. - Added a WebUI package lock so the module-local test script can install and run TypeScript consistently. ### Changed Files - `webui/src/features/mail/MailProfileManagement.tsx` - `webui/package-lock.json` ### Verification - `/home/zemion/.nvm/versions/node/v22.22.3/bin/npm run test:mail-ui` - `/home/zemion/.nvm/versions/node/v22.22.3/bin/npm run build in govoplan-core/webui` ### Next / Blocked - Keep this open for full guided creation/edit UX and any backend schema split work that is still intended for this issue. Suggested status label: `status/in-progress`
Author
Owner

Codex State: done

Summary

  • Mail profile UI now separates profile metadata, SMTP/IMAP server settings, and SMTP/IMAP credentials into focused edit targets.
  • The shared core MailServerSettingsPanel supports full, server-only, and credentials-only modes without duplicating fields.
  • Existing policy handling remains compatible; IMAP add/edit no longer treats credentials-only input as a configured IMAP server.

Changed Files

  • govoplan-core/webui/src/components/mail/MailServerSettingsPanel.tsx
  • govoplan-mail/webui/src/features/mail/MailProfileManagement.tsx
  • govoplan-mail/webui/src/features/mail/mailProfileEditorModel.ts

Verification

  • npm run test:mail-components (core WebUI)
  • npm run test:mail-ui (mail WebUI)
  • python -m unittest discover -s tests (govoplan-mail)
## Codex State: done ### Summary - Mail profile UI now separates profile metadata, SMTP/IMAP server settings, and SMTP/IMAP credentials into focused edit targets. - The shared core MailServerSettingsPanel supports full, server-only, and credentials-only modes without duplicating fields. - Existing policy handling remains compatible; IMAP add/edit no longer treats credentials-only input as a configured IMAP server. ### Changed Files - `govoplan-core/webui/src/components/mail/MailServerSettingsPanel.tsx` - `govoplan-mail/webui/src/features/mail/MailProfileManagement.tsx` - `govoplan-mail/webui/src/features/mail/mailProfileEditorModel.ts` ### Verification - `npm run test:mail-components (core WebUI)` - `npm run test:mail-ui (mail WebUI)` - `python -m unittest discover -s tests (govoplan-mail)`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: add-ideas/govoplan-mail#10
No description provided.