Skip to content

UI: Add Select Recent Configurations dropdown to Trigger Dag form - #70413

Merged
bbovenzi merged 5 commits into
apache:mainfrom
josix:add-recent-config-dropdown-trigger-form
Oct 13, 2026
Merged

bbovenzi merged 5 commits into
apache:mainfrom
josix:add-recent-config-dropdown-trigger-form

Conversation

@josix

@josix josix commented Jul 24, 2026 •

Copy link
Copy Markdown
Contributor

Context

According to the #69820's description, reusing a past run's config currently requires leaving the trigger flow to hunt for the right run in the run list and use "Trigger again with this config". In this PR, I'm going to restore the Airflow 2 in-form dropdown lets users pick any distinct config from the recent runs in a scrollable list while composing a run. The dropdown reuses the existing dagRuns list endpoint and the same conf-only prefill path as the menu item, so no new API surface is added.

closes: #69820

Verification

image image
Was generative AI tooling used to co-author this PR?
  • Yes

Generated-by: Claude Code following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

@boring-cyborg boring-cyborg Bot added area:translations area:UI Related to UI/UX. For Frontend Developers. translation:default labels Jul 24, 2026
@josix
josix force-pushed the add-recent-config-dropdown-trigger-form branch from c95038e to 632e715 Compare July 24, 2026 18:48
@josix
josix marked this pull request as draft July 24, 2026 18:53
@josix
josix force-pushed the add-recent-config-dropdown-trigger-form branch from 632e715 to 1c782ec Compare July 24, 2026 19:03
@josix
josix marked this pull request as ready for review July 24, 2026 19:23

@pierrejeambrun pierrejeambrun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks a lot,

A couple suggestions before this can move forward :)

Comment thread airflow-core/src/airflow/ui/src/components/TriggerDag/RecentConfigSelect.tsx Outdated
@josix
josix force-pushed the add-recent-config-dropdown-trigger-form branch from 1c782ec to 9439987 Compare September 22, 2026 13:55
@josix

josix commented Sep 22, 2026

Copy link
Copy Markdown
Contributor Author

Hello @pierrejeambrun, thank you for the kind review. I've addressed the issues you pointed out. Please take a look when you have chance Thank you so much!

@bbovenzi bbovenzi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One last change

Comment thread airflow-core/src/airflow/ui/src/components/TriggerDag/RecentConfigSelect.tsx Outdated
Comment thread airflow-core/src/airflow/ui/src/components/TriggerDag/RecentConfigSelect.tsx Outdated
Comment thread airflow-core/src/airflow/ui/src/components/TriggerDag/RecentConfigSelect.tsx Outdated
josix added 5 commits October 10, 2026 17:43
Reusing a past run's config currently requires leaving the trigger flow
to hunt for the right run in the run list and use "Trigger again with
this config". Restoring the Airflow 2 in-form dropdown lets users pick
any distinct config from the recent runs in a scrollable list while
composing a run. The dropdown reuses the existing dagRuns list endpoint
and the same conf-only prefill path as the menu item, so no new API
surface is added.

closes: apache#69820
Main now separates React imports from third-party ones, and prettier
flags the file otherwise.
Picking a recent configuration reused the re-trigger prefill path, which
resets the whole form. A user who had already set a logical date, run id,
note or manual data interval lost all of them. The dropdown is meant to
swap only the run's conf, so it now leaves every other field untouched.
"Trigger again with this config" already fills the form with one specific
run's conf, so showing an unselected recent-configurations dropdown on top
of it is contradictory.
The dropdown rendered inside the Trigger Dag modal was clipped at the
modal edge because its content stayed inside the modal's DOM tree. The
shared Select from src/system-components portals its content and already
renders the control, indicator and positioner, so the hand-rolled Chakra
parts only duplicated those layers.

The trigger form tests also follow main, where the i18n mock returns
keys and TriggerDAGForm no longer takes dagDisplayName.
@josix
josix force-pushed the add-recent-config-dropdown-trigger-form branch from 9439987 to af7f357 Compare October 10, 2026 10:29
@josix

josix commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review @bbovenzi! Addressed all three comments in the latest push: RecentConfigSelect now uses Select from src/system-components, so the dropdown is portalled and no longer cut off by the modal. The trigger is just Select.Trigger with Select.ValueText, and the extra Select.Positioner is gone now.

@josix
josix requested a review from bbovenzi October 10, 2026 10:36
@bbovenzi

Copy link
Copy Markdown
Contributor

E2e test failure is unrelated

@bbovenzi
bbovenzi merged commit 6fc06c6 into apache:main Oct 13, 2026
87 of 88 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Backport successfully created: v3-4-test

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
✅ v3-4-test PR Link

vatsrahul1001 pushed a commit that referenced this pull request Oct 18, 2026
…Dag form (#70413) (#74977)

* UI: Add Select Recent Configurations dropdown to Trigger Dag form

Reusing a past run's config currently requires leaving the trigger flow
to hunt for the right run in the run list and use "Trigger again with
this config". Restoring the Airflow 2 in-form dropdown lets users pick
any distinct config from the recent runs in a scrollable list while
composing a run. The dropdown reuses the existing dagRuns list endpoint
and the same conf-only prefill path as the menu item, so no new API
surface is added.

closes: #69820

* UI: Regroup imports in RecentConfigSelect after rebase

Main now separates React imports from third-party ones, and prettier
flags the file otherwise.

* UI: Keep user input when selecting a recent configuration

Picking a recent configuration reused the re-trigger prefill path, which
resets the whole form. A user who had already set a logical date, run id,
note or manual data interval lost all of them. The dropdown is meant to
swap only the run's conf, so it now leaves every other field untouched.

* UI: Hide recent configurations when re-triggering with a run's config

"Trigger again with this config" already fills the form with one specific
run's conf, so showing an unselected recent-configurations dropdown on top
of it is contradictory.

* UI: Use system Select for the recent configurations dropdown

The dropdown rendered inside the Trigger Dag modal was clipped at the
modal edge because its content stayed inside the modal's DOM tree. The
shared Select from src/system-components portals its content and already
renders the control, indicator and positioner, so the hand-rolled Chakra
parts only duplicated those layers.

The trigger form tests also follow main, where the i18n mock returns
keys and TriggerDAGForm no longer takes dagDisplayName.
(cherry picked from commit 6fc06c6)

Co-authored-by: Wilson Josix Wang <josixwang@gmail.com>
vatsrahul1001 pushed a commit that referenced this pull request Oct 20, 2026
…Dag form (#70413) (#74977)

* UI: Add Select Recent Configurations dropdown to Trigger Dag form

Reusing a past run's config currently requires leaving the trigger flow
to hunt for the right run in the run list and use "Trigger again with
this config". Restoring the Airflow 2 in-form dropdown lets users pick
any distinct config from the recent runs in a scrollable list while
composing a run. The dropdown reuses the existing dagRuns list endpoint
and the same conf-only prefill path as the menu item, so no new API
surface is added.

closes: #69820

* UI: Regroup imports in RecentConfigSelect after rebase

Main now separates React imports from third-party ones, and prettier
flags the file otherwise.

* UI: Keep user input when selecting a recent configuration

Picking a recent configuration reused the re-trigger prefill path, which
resets the whole form. A user who had already set a logical date, run id,
note or manual data interval lost all of them. The dropdown is meant to
swap only the run's conf, so it now leaves every other field untouched.

* UI: Hide recent configurations when re-triggering with a run's config

"Trigger again with this config" already fills the form with one specific
run's conf, so showing an unselected recent-configurations dropdown on top
of it is contradictory.

* UI: Use system Select for the recent configurations dropdown

The dropdown rendered inside the Trigger Dag modal was clipped at the
modal edge because its content stayed inside the modal's DOM tree. The
shared Select from src/system-components portals its content and already
renders the control, indicator and positioner, so the hand-rolled Chakra
parts only duplicated those layers.

The trigger form tests also follow main, where the i18n mock returns
keys and TriggerDAGForm no longer takes dagDisplayName.
(cherry picked from commit 6fc06c6)

Co-authored-by: Wilson Josix Wang <josixwang@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:translations area:UI Related to UI/UX. For Frontend Developers. translation:default

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add in-form "Select Recent Configurations" dropdown to the Trigger DAG form (navigation QoL, coexisting with "Trigger again with this config")

3 participants