[Feature] Replace recipient entry form with a full recipient-data editing panel #67

Closed
opened 2026-07-14 20:08:41 +02:00 by zemion · 7 comments
Owner

Problem / User Need

Recipient entering/editing should become a structured editing panel that can edit sender and recipient address data in one place: from, to, cc, bcc, multiple addresses, merge toggles, and row fields.

Acceptance Criteria

  • A recipient-data editing panel exposes the same editing logic as one row in Recipients.
  • The panel supports from, to, cc, bcc, multiple addresses, and merge/toggle behavior.
  • Sender and recipient dataset editing becomes one coherent page/table rather than split forms.
  • Changes remain auditable and validation errors are attached to the exact edited field.

Notes / Decisions

Needs UX/data-model design before implementation because it changes the recipient editing surface substantially.

## Problem / User Need Recipient entering/editing should become a structured editing panel that can edit sender and recipient address data in one place: from, to, cc, bcc, multiple addresses, merge toggles, and row fields. ## Acceptance Criteria - A recipient-data editing panel exposes the same editing logic as one row in Recipients. - The panel supports from, to, cc, bcc, multiple addresses, and merge/toggle behavior. - Sender and recipient dataset editing becomes one coherent page/table rather than split forms. - Changes remain auditable and validation errors are attached to the exact edited field. ## Notes / Decisions Needs UX/data-model design before implementation because it changes the recipient editing surface substantially.
Author
Owner

Okay, we have now tow pages, one "Sender & Recipients", and one "Recipient data". The top panels for "Campaign sender" and "Global recipient headers" can stay; after that, the two tables from the two pages become merged. For that, the second column "Recipient(s)" is changed so that it displays one recipient address, plus indicators for +1, +2 CC, +1 BCC, and so on. This column gets an editing pen that opens an overlay where recipients (addresses for now) can be added to the available fields (From, To ,CC, ...), the availability of which is determined by the campaign global toggles. Usually, multiple entries are allowed, and they can merge with a global value or overwrite it (the toggle usually usde might be extended as to provide two labels - one describing the meaning of "off/no/false", in our case overwrite, the other "on/yes/true", meaning in our case merge). The modelling is similar to the now existing recipient table from "Sender & Recipients", just not displayed as columns, but rather rows in the overlay.

Okay, we have now tow pages, one "Sender & Recipients", and one "Recipient data". The top panels for "Campaign sender" and "Global recipient headers" can stay; after that, the two tables from the two pages become merged. For that, the second column "Recipient(s)" is changed so that it displays one recipient address, plus indicators for +1, +2 CC, +1 BCC, and so on. This column gets an editing pen that opens an overlay where recipients (addresses for now) can be added to the available fields (From, To ,CC, ...), the availability of which is determined by the campaign global toggles. Usually, multiple entries are allowed, and they can merge with a global value or overwrite it (the toggle usually usde might be extended as to provide two labels - one describing the meaning of "off/no/false", in our case overwrite, the other "on/yes/true", meaning in our case merge). The modelling is similar to the now existing recipient table from "Sender & Recipients", just not displayed as columns, but rather rows in the overlay.
Author
Owner

Codex State: ready

Summary

  • Consolidated the sender/global-recipient controls and inline recipient table into one recipient-data editing surface.
  • Added a selected-recipient editor panel for ID, name, email, active state, from, reply-to, to, cc, bcc, and merge toggles, reusing the existing draft update path.
  • Fixed the WebUI fallback so per-recipient To editing is enabled when allow_individual_to is omitted, matching generated campaign defaults.

Changed Files

  • webui/src/features/campaigns/RecipientDataPage.tsx
  • webui/src/styles/campaign-workspace.css

Verification

  • GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.

Next / Blocked

  • Visual/UX review in the running app before closing; the issue is intentionally left open.

Suggested status label: status/ready

## Codex State: ready ### Summary - Consolidated the sender/global-recipient controls and inline recipient table into one recipient-data editing surface. - Added a selected-recipient editor panel for ID, name, email, active state, from, reply-to, to, cc, bcc, and merge toggles, reusing the existing draft update path. - Fixed the WebUI fallback so per-recipient To editing is enabled when allow_individual_to is omitted, matching generated campaign defaults. ### Changed Files - `webui/src/features/campaigns/RecipientDataPage.tsx` - `webui/src/styles/campaign-workspace.css` ### Verification - `GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.` ### Next / Blocked - Visual/UX review in the running app before closing; the issue is intentionally left open. Suggested status label: `status/ready`
Author
Owner

Codex State: ready

Summary

  • Restored the two collapsible global sender/header cards and moved per-recipient address editing into a Recipient(s) column overlay.

Changed Files

  • webui/src/features/campaigns/RecipientDataPage.tsx
  • webui/src/styles/campaign-workspace.css

Verification

  • GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.

Next / Blocked

  • Visual review in the running app; issue left open until confirmed.

Suggested status label: status/ready

## Codex State: ready ### Summary - Restored the two collapsible global sender/header cards and moved per-recipient address editing into a Recipient(s) column overlay. ### Changed Files - `webui/src/features/campaigns/RecipientDataPage.tsx` - `webui/src/styles/campaign-workspace.css` ### Verification - `GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.` ### Next / Blocked - Visual review in the running app; issue left open until confirmed. Suggested status label: `status/ready`
Author
Owner

Codex State: ready

Summary

  • Merged recipient field values and attachment editing into the Sender & Recipients table after the Active column, removed the separate Recipient data navigation/page, and replaced the overlay merge segmented control with the standard toggle.

Changed Files

  • webui/src/features/campaigns/RecipientDataPage.tsx
  • webui/src/styles/campaign-workspace.css
  • webui/src/features/campaigns/CampaignWorkspace.tsx
  • webui/src/layout/SectionSidebar.tsx
  • webui/src/features/campaigns/RecipientDetailsPage.tsx

Verification

  • GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.

Next / Blocked

  • Visual review in the running app; issue left open until confirmed.

Suggested status label: status/ready

## Codex State: ready ### Summary - Merged recipient field values and attachment editing into the Sender & Recipients table after the Active column, removed the separate Recipient data navigation/page, and replaced the overlay merge segmented control with the standard toggle. ### Changed Files - `webui/src/features/campaigns/RecipientDataPage.tsx` - `webui/src/styles/campaign-workspace.css` - `webui/src/features/campaigns/CampaignWorkspace.tsx` - `webui/src/layout/SectionSidebar.tsx` - `webui/src/features/campaigns/RecipientDetailsPage.tsx` ### Verification - `GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.` ### Next / Blocked - Visual review in the running app; issue left open until confirmed. Suggested status label: `status/ready`
Author
Owner

Codex State: ready

Summary

  • Fixed the recipient address overlay row actions to reuse colored DataGrid action buttons, removed the redundant edit action, kept newly added blank address rows visible while editing, and extended the shared ToggleSwitch with active/inactive state labels used for Overwrite/Merge.

Changed Files

  • webui/src/features/campaigns/RecipientDataPage.tsx
  • webui/src/styles/campaign-workspace.css
  • ../govoplan-core/webui/src/components/ToggleSwitch.tsx

Verification

  • GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.

Next / Blocked

  • Visual review in the running app; issue left open until confirmed.

Suggested status label: status/ready

## Codex State: ready ### Summary - Fixed the recipient address overlay row actions to reuse colored DataGrid action buttons, removed the redundant edit action, kept newly added blank address rows visible while editing, and extended the shared ToggleSwitch with active/inactive state labels used for Overwrite/Merge. ### Changed Files - `webui/src/features/campaigns/RecipientDataPage.tsx` - `webui/src/styles/campaign-workspace.css` - `../govoplan-core/webui/src/components/ToggleSwitch.tsx` ### Verification - `GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.` ### Next / Blocked - Visual review in the running app; issue left open until confirmed. Suggested status label: `status/ready`
Author
Owner

Codex State: ready

Summary

  • Filtered merged recipient-data columns so only editable recipient-specific columns are shown: field columns now require can_override, and the attachments column is only shown when an individual attachment source exists.

Changed Files

  • webui/src/features/campaigns/RecipientDataPage.tsx

Verification

  • GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.

Next / Blocked

  • Visual review in the running app; issue left open until confirmed.

Suggested status label: status/ready

## Codex State: ready ### Summary - Filtered merged recipient-data columns so only editable recipient-specific columns are shown: field columns now require can_override, and the attachments column is only shown when an individual attachment source exists. ### Changed Files - `webui/src/features/campaigns/RecipientDataPage.tsx` ### Verification - `GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui passed.` ### Next / Blocked - Visual review in the running app; issue left open until confirmed. Suggested status label: `status/ready`
Author
Owner

Codex State: done

Summary

  • Confirmed by user; merged recipient editing implementation accepted.

Verification

  • Previously verified with GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui.
## Codex State: done ### Summary - Confirmed by user; merged recipient editing implementation accepted. ### Verification - `Previously verified with GOVOPLAN_WEBUI_MODULE_PACKAGES=@govoplan/campaign-webui npm run build in govoplan-core/webui.`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: add-ideas/govoplan-campaign#67
No description provided.