[pdm-devel] [PATCH datacenter-manager 05/11] ui: pve: tree: refactor rendering the tree column

Dominik Csapak d.csapak at proxmox.com
Fri Sep 26 09:20:25 CEST 2025


so we can reuse it for PBS

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 ui/src/pve/tree.rs | 15 ++-------------
 ui/src/renderer.rs | 17 ++++++++++++++++-
 2 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/ui/src/pve/tree.rs b/ui/src/pve/tree.rs
index 299fd895..2d631048 100644
--- a/ui/src/pve/tree.rs
+++ b/ui/src/pve/tree.rs
@@ -26,7 +26,7 @@ use pdm_api_types::{
     RemoteUpid,
 };
 
-use crate::{get_deep_url, widget::MigrateWindow};
+use crate::{get_deep_url, renderer::render_tree_column, widget::MigrateWindow};
 
 use super::{
     utils::{self, render_guest_tags, render_lxc_name, render_qemu_name},
@@ -595,18 +595,7 @@ fn columns(
                     }
                 };
 
-                Row::new()
-                    .min_width(0)
-                    .class(AlignItems::Center)
-                    .gap(2)
-                    .with_child(icon)
-                    .with_child(
-                        Container::new()
-                            .with_child(text)
-                            .style("text-overflow", "ellipsis")
-                            .style("overflow", "hidden"),
-                    )
-                    .into()
+                render_tree_column(icon.into(), text).into()
             })
             .into(),
         DataTableColumn::new(tr!("Tags"))
diff --git a/ui/src/renderer.rs b/ui/src/renderer.rs
index 2383c44d..5f7c6589 100644
--- a/ui/src/renderer.rs
+++ b/ui/src/renderer.rs
@@ -1,9 +1,10 @@
 use pdm_api_types::resource::PveSdnResource;
 use proxmox_yew_comp::MeterLabel;
 use pwt::{
+    css::AlignItems,
     prelude::*,
     props::ContainerBuilder,
-    widget::{Container, Fa},
+    widget::{Container, Fa, Row},
 };
 
 use proxmox_human_byte::HumanByte;
@@ -87,3 +88,17 @@ pub(crate) fn memory_status_row(used: u64, total: u64) -> MeterLabel {
 pub(crate) fn separator() -> Container {
     Container::new().with_child(html! {<hr />}).padding_y(2)
 }
+
+pub(crate) fn render_tree_column(icon: Html, text: String) -> Row {
+    Row::new()
+        .min_width(0)
+        .class(AlignItems::Center)
+        .gap(2)
+        .with_child(icon)
+        .with_child(
+            Container::new()
+                .with_child(text)
+                .style("text-overflow", "ellipsis")
+                .style("overflow", "hidden"),
+        )
+}
-- 
2.47.3





More information about the pdm-devel mailing list