[pdm-devel] [PATCH datacenter-manager 7/7] ui: widgets: remote realm selector: support PBS remotes

Lukas Wagner l.wagner at proxmox.com
Mon Dec 29 14:44:45 CET 2025


This is achieved by adding a new 'remote_type' property.

Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
---
 ui/src/remotes/wizard_page_info.rs     |  2 +-
 ui/src/widget/remote_realm_selector.rs | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/ui/src/remotes/wizard_page_info.rs b/ui/src/remotes/wizard_page_info.rs
index 8a115b4a..fc9bfb01 100644
--- a/ui/src/remotes/wizard_page_info.rs
+++ b/ui/src/remotes/wizard_page_info.rs
@@ -331,7 +331,7 @@ impl Component for PdmWizardPageInfo {
             )
             .with_field(
                 tr!("Realm"),
-                RemoteRealmSelector::new(hostname, fingerprint)
+                RemoteRealmSelector::new(hostname, fingerprint, props.remote_type)
                     .name("realm")
                     .disabled(!self.user_mode)
                     .required(self.user_mode),
diff --git a/ui/src/widget/remote_realm_selector.rs b/ui/src/widget/remote_realm_selector.rs
index 7ba8c633..3de95568 100644
--- a/ui/src/widget/remote_realm_selector.rs
+++ b/ui/src/widget/remote_realm_selector.rs
@@ -16,6 +16,8 @@ use proxmox_yew_comp::percent_encoding::percent_encode_component;
 use pwt::props::{FieldBuilder, WidgetBuilder};
 use pwt_macros::{builder, widget};
 
+use pdm_api_types::remotes::RemoteType;
+
 #[widget(comp=RemoteRealmSelectorComp, @input)]
 #[derive(Clone, Properties, PartialEq)]
 #[builder]
@@ -30,6 +32,9 @@ pub struct RemoteRealmSelector {
 
     /// Optional fingerprint of the remote.
     pub fingerprint: Option<AttrValue>,
+
+    /// Type of the remote.
+    pub remote_type: RemoteType,
 }
 
 impl RemoteRealmSelector {
@@ -37,10 +42,12 @@ impl RemoteRealmSelector {
     pub fn new(
         hostname: impl IntoPropValue<AttrValue>,
         fingerprint: impl IntoPropValue<Option<AttrValue>>,
+        remote_type: RemoteType,
     ) -> Self {
         yew::props!(Self {
             hostname: hostname.into_prop_value(),
             fingerprint: fingerprint.into_prop_value(),
+            remote_type,
         })
     }
 }
@@ -89,7 +96,8 @@ impl Component for RemoteRealmSelectorComp {
         let props = ctx.props();
 
         let mut url = format!(
-            "/pve/realms?hostname={}",
+            "/{}/realms?hostname={}",
+            props.remote_type,
             percent_encode_component(&props.hostname)
         );
         if let Some(fp) = &props.fingerprint {
-- 
2.47.3





More information about the pdm-devel mailing list