feat: Improved UX in the Coordinator Dynamic Config form for server selection in Decommissioning servers and Turbo Loading servers#19254
Conversation
| customDialog: ({ value, onValueChange, onClose }) => ( | ||
| <ServerMultiSelectDialog | ||
| title="Decommissioning nodes" | ||
| servers={servers} |
There was a problem hiding this comment.
[P2] Server picker can stay stuck loading
If the operator clicks edit for decommissioningNodes before the server-list query finishes, AutoForm stores this custom dialog JSX in its own state with servers still undefined. When serversState.data later arrives, the stored dialog element is not recreated, so the dialog keeps showing the Loader until the user closes and reopens it. Pass a live query state into the dialog or prevent opening the picker until the server list has resolved.
FrankChen021
left a comment
There was a problem hiding this comment.
I have reviewed the latest update for correctness, edge cases, UI state handling, and integration risks; no issues found.
This is an automated review by Codex GPT-5
FrankChen021
left a comment
There was a problem hiding this comment.
I have reviewed the code for correctness, edge cases, concurrency, and integration risks; no issues found.
Reviewed 11 of 11 changed files.
This is an automated review by Codex GPT-5.5
Description
Broken out from #19250 due to that PR getting too large and difficult to review. This PR focuses on improving the UX for an operator working with two of the fields in the coordinator dynamic config form via web console. These fields are the decommissioning servers field and the turbo loading servers field. Each was formerly a string array where the operator was responsible for modifying a text block basically, making sure to properly format the change and not mistype, etc. I've replaced this behavior with a new dialog within the form where the console serves up lists of historicals split by tier for you to check/uncheck to modify the underlying lists of servers. There is also search filtering and tier level select/unselect. If the list contains servers(s) not announced in the cluster, you get a warning and can click to remove them as a convenience.
Note that this removes the possibility of filling in the text box with servers not in the cluster at that moment. However, this ability is not outright gone in the console, you can still click through to the raw json form and do whatever you please with the list.
Release note
Improve the UX for cluster operators when modifying the list of servers in decommissioning nodes and/or turbo loading nodes in the web console coordinator dynamic config form.
Key changed/added classes in this PR
web-console/src/dialogs/coordinator-dynamic-config-dialog/coordinator-dynamic-config-dialog.tsxweb-console/src/dialogs/coordinator-dynamic-config-dialog/server-multi-select-dialog.tsxweb-console/src/dialogs/coordinator-dynamic-config-dialog/tiered-servers.tsweb-console/src/druid-models/coordinator-dynamic-config/coordinator-dynamic-config.tsxThis PR has: