Skip to content

feat(dashboard): replace free-text key inputs with dropdowns in PM integration form#499

Merged
zbigniewsobiecki merged 1 commit intodevfrom
feature/constrained-key-value-editor
Feb 23, 2026
Merged

feat(dashboard): replace free-text key inputs with dropdowns in PM integration form#499
zbigniewsobiecki merged 1 commit intodevfrom
feature/constrained-key-value-editor

Conversation

@aaight
Copy link
Copy Markdown
Collaborator

@aaight aaight commented Feb 23, 2026

Summary

  • Add ConstrainedKeyValueEditor component with a <select> dropdown for the key column, replacing free-text key inputs for known CASCADE PM integration keys
  • Define 4 key constant sets: TRELLO_LIST_KEYS (9 keys), TRELLO_LABEL_KEYS (4 keys), JIRA_STATUS_KEYS (7 keys), JIRA_LABEL_KEYS (4 keys)
  • Replace Trello Lists, Trello Labels, JIRA Status Mappings, and JIRA Labels KeyValueEditor usages with ConstrainedKeyValueEditor; JIRA Issue Types stays as free-text

Details

  • Key column: Native <select> matching existing selects in the file; already-used keys are filtered from other rows
  • Add button: Disabled when all allowed keys are used
  • Unknown/custom keys: Existing configs with keys not in the allowed set are preserved and shown with (custom) suffix — no data loss
  • Single file change: web/src/components/projects/integration-form.tsx only — no backend changes

Test plan

  • Trello Lists dropdown shows 9 options; used keys filtered from other rows; Add disabled when all used; Save works
  • Trello Labels dropdown shows 4 options; same behavior
  • JIRA Status Mappings dropdown shows 7 options; JIRA Labels shows 4 options
  • JIRA Issue Types remains free-text KeyValueEditor
  • Existing project configs with known keys load correctly into constrained editors
  • Existing configs with unknown keys show them with (custom) label and are preserved on save

Card: https://trello.com/c/IhnqywCu/86-status-mappings-and-labels-in-dashboard-in-projects-integrations-configuration-for-project-management-tools-should-feature-the-i

🤖 Generated with Claude Code

@nhopeatall
Copy link
Copy Markdown
Collaborator

🔍 Reviewing PR...

Copy link
Copy Markdown
Collaborator

@nhopeatall nhopeatall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — clean, well-scoped change. Key constants match backend usage exactly (verified against src/pm/trello/integration.ts, src/pm/jira/integration.ts, and src/config/schema.ts). Custom-key preservation ensures no data loss for existing configs. Duplicate-key prevention via otherUsedKeys filtering is correct. The disabled-add-button-when-all-used logic is sound.

@zbigniewsobiecki zbigniewsobiecki merged commit a5f9b9c into dev Feb 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants