[pdm-devel] [PATCH datacenter-manager] ui: fix navigate_to route paths

Dominik Csapak d.csapak at proxmox.com
Wed Sep 10 14:04:42 CEST 2025


routes must start with a '/' and we need the '/remote-' prefix to route
to the correct panel

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 ui/src/lib.rs | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/ui/src/lib.rs b/ui/src/lib.rs
index e591a9e..77b1d3a 100644
--- a/ui/src/lib.rs
+++ b/ui/src/lib.rs
@@ -152,32 +152,32 @@ pub(crate) fn navigate_to<C: yew::Component>(
                 Some(match resource {
                     pdm_client::types::Resource::PveQemu(PveQemuResource { vmid, .. })
                     | pdm_client::types::Resource::PveLxc(PveLxcResource { vmid, .. }) => {
-                        (Some(remote), format!("guest+{vmid}"))
+                        (true, format!("guest+{vmid}"))
                     }
                     pdm_client::types::Resource::PveNode(node) => {
-                        (Some(remote), format!("node+{}", node.node))
+                        (true, format!("node+{}", node.node))
                     }
                     pdm_client::types::Resource::PveStorage(storage) => (
-                        Some(remote),
+                        true,
                         format!("storage+{}+{}", storage.node, storage.storage),
                     ),
                     pdm_client::types::Resource::PveSdn(PveSdnResource::Zone(_)) => {
-                        (None, "sdn/zones".to_string())
-                    }
-                    pdm_client::types::Resource::PbsDatastore(store) => {
-                        (Some(remote), store.name.clone())
+                        (false, "sdn/zones".to_string())
                     }
+                    pdm_client::types::Resource::PbsDatastore(store) => (true, store.name.clone()),
                     // FIXME: implement
                     _ => return None,
                 })
             })
-            .unwrap_or_default();
+            .unwrap_or_else(|| (true, String::new()));
 
-        let prefix = prefix
-            .map(|prefix| format!("{prefix}/"))
-            .unwrap_or_default();
+        let prefix = if prefix {
+            format!("remote-{remote}/")
+        } else {
+            String::new()
+        };
 
-        nav.push(&yew_router::AnyRoute::new(format!("{prefix}{id}")));
+        nav.push(&yew_router::AnyRoute::new(format!("/{prefix}{id}")));
     }
 }
 
-- 
2.47.3





More information about the pdm-devel mailing list