public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal