[pdm-devel] [PATCH datacenter-manager v4 21/23] ui: pve wizard: connect: reset later pages when form changes
Dominik Csapak
d.csapak at proxmox.com
Fri Aug 22 10:32:39 CEST 2025
not on connect. With this, we don't reset the later pages anymore
when we change between tabs without changing anything.
The first connetion check will now only be done on the first navigation
away from the page or when the form changed afterwards.
Same for the 'Settings' panel. Only on the first change from 'Settings'
to 'Endpoints' or when the settings change will the endpoint list be
updated.
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
ui/src/remotes/wizard_page_connect.rs | 8 +++++---
ui/src/remotes/wizard_page_info.rs | 15 ++++++++++-----
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/ui/src/remotes/wizard_page_connect.rs b/ui/src/remotes/wizard_page_connect.rs
index d5d9708..6d48264 100644
--- a/ui/src/remotes/wizard_page_connect.rs
+++ b/ui/src/remotes/wizard_page_connect.rs
@@ -145,6 +145,11 @@ impl Component for PdmWizardPageConnect {
}
}
props.info.page_lock(!self.form_valid);
+ for page in ["nodes", "info"] {
+ if let Some(form_ctx) = props.info.lookup_form_context(&Key::from(page)) {
+ form_ctx.write().reset_form();
+ }
+ }
}
Msg::Connect => {
let link = ctx.link().clone();
@@ -170,9 +175,6 @@ impl Component for PdmWizardPageConnect {
}
}
- if let Some(form_ctx) = props.info.lookup_form_context(&Key::from("nodes")) {
- form_ctx.write().reset_form();
- }
props.info.reset_remaining_valid_pages();
if self.connect_info.is_some() {
props.info.go_to_next_page();
diff --git a/ui/src/remotes/wizard_page_info.rs b/ui/src/remotes/wizard_page_info.rs
index 0d77144..88c6463 100644
--- a/ui/src/remotes/wizard_page_info.rs
+++ b/ui/src/remotes/wizard_page_info.rs
@@ -214,9 +214,19 @@ impl Component for PdmWizardPageInfo {
} else {
self.credentials = None;
}
+ if let Some(form_ctx) = props.info.lookup_form_context(&Key::from("nodes")) {
+ let mut form = form_ctx.write();
+ form.set_field_value("nodes", serde_json::Value::Null);
+ form.reset_form();
+ }
props.info.page_lock(self.credentials.is_none());
}
Msg::Connect => {
+ if self.server_info.is_some() {
+ props.info.page_lock(false);
+ props.info.go_to_next_page();
+ return true;
+ }
let link = ctx.link().clone();
self.update_server_info(ctx, None);
let form_ctx = props.info.form_ctx.clone();
@@ -246,11 +256,6 @@ impl Component for PdmWizardPageInfo {
}
}
- if let Some(form_ctx) = props.info.lookup_form_context(&Key::from("nodes")) {
- let mut form = form_ctx.write();
- form.set_field_value("nodes", serde_json::Value::Null);
- form.reset_form();
- }
props.info.reset_remaining_valid_pages();
if self.last_error.is_none() {
--
2.47.2
More information about the pdm-devel
mailing list