* [pdm-devel] [PATCH datacenter-manager 0/3] ui: pve: improve route navigation
@ 2025-12-15 15:18 Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 1/3] ui: pve remote panels: enable router function Dominik Csapak
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Dominik Csapak @ 2025-12-15 15:18 UTC (permalink / raw)
To: pdm-devel
these 3 patches are independent of eachother, but all improve the
routing behavior for the pve remote ui.
Dominik Csapak (3):
ui: pve remote panels: enable router function
ui: pve: properly name route for 'datacenter' node
ui: pve tree: prevent from pushing unnecessary route
ui/src/pve/remote/mod.rs | 1 +
ui/src/pve/tree.rs | 13 ++++++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
--
2.47.3
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] [PATCH datacenter-manager 1/3] ui: pve remote panels: enable router function
2025-12-15 15:18 [pdm-devel] [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dominik Csapak
@ 2025-12-15 15:18 ` Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 2/3] ui: pve: properly name route for 'datacenter' node Dominik Csapak
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Dominik Csapak @ 2025-12-15 15:18 UTC (permalink / raw)
To: pdm-devel
so the tabs for the 'datacenter' panel are also visible and reachable
via the router.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
ui/src/pve/remote/mod.rs | 1 +
1 file changed, 1 insertion(+)
diff --git a/ui/src/pve/remote/mod.rs b/ui/src/pve/remote/mod.rs
index 60ea4ade..5d30deaa 100644
--- a/ui/src/pve/remote/mod.rs
+++ b/ui/src/pve/remote/mod.rs
@@ -49,6 +49,7 @@ impl yew::Component for PveRemotePanelComp {
.into();
TabPanel::new()
+ .router(true)
.class(pwt::css::FlexFit)
.title(title)
.class(ColorScheme::Neutral)
--
2.47.3
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] [PATCH datacenter-manager 2/3] ui: pve: properly name route for 'datacenter' node
2025-12-15 15:18 [pdm-devel] [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 1/3] ui: pve remote panels: enable router function Dominik Csapak
@ 2025-12-15 15:18 ` Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 3/3] ui: pve tree: prevent from pushing unnecessary route Dominik Csapak
2025-12-16 9:14 ` [pdm-devel] applied: [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dietmar Maurer
3 siblings, 0 replies; 5+ messages in thread
From: Dominik Csapak @ 2025-12-15 15:18 UTC (permalink / raw)
To: pdm-devel
If we don't give a proper string here, the default is '_' which looks a
bit weird in the url bar. Instead, name it 'datacenter'.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
ui/src/pve/tree.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ui/src/pve/tree.rs b/ui/src/pve/tree.rs
index 7a55dd12..a496f930 100644
--- a/ui/src/pve/tree.rs
+++ b/ui/src/pve/tree.rs
@@ -58,7 +58,7 @@ impl ExtractPrimaryKey for PveTreeNode {
impl PveTreeNode {
fn get_path(&self) -> String {
match self {
- PveTreeNode::Root => String::new(),
+ PveTreeNode::Root => "datacenter".to_string(),
PveTreeNode::Node(node) => format!("node+{}", node.node),
PveTreeNode::Lxc(lxc) => format!("guest+{}", lxc.vmid),
PveTreeNode::Qemu(qemu) => format!("guest+{}", qemu.vmid),
@@ -394,7 +394,7 @@ impl LoadableComponent for PveTreeComp {
}
}
Msg::RouteChanged(path) => {
- let key = if path == "_" {
+ let key = if path == "_" || path == "datacenter" || path == "" {
Key::from("__root__")
} else {
Key::from(format!(
--
2.47.3
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] [PATCH datacenter-manager 3/3] ui: pve tree: prevent from pushing unnecessary route
2025-12-15 15:18 [pdm-devel] [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 1/3] ui: pve remote panels: enable router function Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 2/3] ui: pve: properly name route for 'datacenter' node Dominik Csapak
@ 2025-12-15 15:18 ` Dominik Csapak
2025-12-16 9:14 ` [pdm-devel] applied: [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dietmar Maurer
3 siblings, 0 replies; 5+ messages in thread
From: Dominik Csapak @ 2025-12-15 15:18 UTC (permalink / raw)
To: pdm-devel
In the tree, a route is pushed when the data table selection changes.
When the route changes externally (e.g. the browser back button), we
manually select the correct entry afterwards, which triggers a selection
change, which currently triggers another route push of the same route
that's already active.
This means that on back button click, there will be always a new route
pushed to the same path the user is already on.
Prevent that by comparing the path we want to push with what we're
currently on, and only push it when they differ.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
ui/src/pve/tree.rs | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/ui/src/pve/tree.rs b/ui/src/pve/tree.rs
index a496f930..bd60ecc5 100644
--- a/ui/src/pve/tree.rs
+++ b/ui/src/pve/tree.rs
@@ -389,7 +389,14 @@ impl LoadableComponent for PveTreeComp {
if let Some(node) = root.find_node_by_key(&key) {
let record = node.record().clone();
- ctx.link().push_relative_route(&record.get_path());
+ if let Some(nav) = ctx.link().nav_context() {
+ let new_path = record.get_path();
+ let current_path = nav.path();
+ if current_path != new_path {
+ ctx.link().push_relative_route(&new_path);
+ }
+ }
+
ctx.props().on_select.emit(record);
}
}
--
2.47.3
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] applied: [PATCH datacenter-manager 0/3] ui: pve: improve route navigation
2025-12-15 15:18 [pdm-devel] [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dominik Csapak
` (2 preceding siblings ...)
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 3/3] ui: pve tree: prevent from pushing unnecessary route Dominik Csapak
@ 2025-12-16 9:14 ` Dietmar Maurer
3 siblings, 0 replies; 5+ messages in thread
From: Dietmar Maurer @ 2025-12-16 9:14 UTC (permalink / raw)
To: Proxmox Datacenter Manager development discussion, Dominik Csapak
applied
On 12/15/25 4:18 PM, Dominik Csapak wrote:
> these 3 patches are independent of eachother, but all improve the
> routing behavior for the pve remote ui.
>
> Dominik Csapak (3):
> ui: pve remote panels: enable router function
> ui: pve: properly name route for 'datacenter' node
> ui: pve tree: prevent from pushing unnecessary route
>
> ui/src/pve/remote/mod.rs | 1 +
> ui/src/pve/tree.rs | 13 ++++++++++---
> 2 files changed, 11 insertions(+), 3 deletions(-)
>
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-12-16 9:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-15 15:18 [pdm-devel] [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 1/3] ui: pve remote panels: enable router function Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 2/3] ui: pve: properly name route for 'datacenter' node Dominik Csapak
2025-12-15 15:18 ` [pdm-devel] [PATCH datacenter-manager 3/3] ui: pve tree: prevent from pushing unnecessary route Dominik Csapak
2025-12-16 9:14 ` [pdm-devel] applied: [PATCH datacenter-manager 0/3] ui: pve: improve route navigation Dietmar Maurer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.