[pdm-devel] [PATCH datacenter-manager 5/5] ui: pve: tree: add remote tasks panel

Dominik Csapak d.csapak at proxmox.com
Wed Sep 10 13:52:54 CEST 2025


under the now visible 'Remote' root object. In the future we probably
want to add other things in the top level remote anyway so showing it
now can't hurt.

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 ui/src/pve/mod.rs     | 7 +++++--
 ui/src/pve/tree.rs    | 6 +++++-
 ui/src/remotes/mod.rs | 3 ++-
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ui/src/pve/mod.rs b/ui/src/pve/mod.rs
index 7313d5e..fcbccc4 100644
--- a/ui/src/pve/mod.rs
+++ b/ui/src/pve/mod.rs
@@ -32,7 +32,7 @@ pub mod utils;
 mod tree;
 use tree::PveTreeNode;
 
-use crate::get_deep_url;
+use crate::{get_deep_url, remotes::RemoteTaskList};
 
 #[derive(Debug, Eq, PartialEq, Properties)]
 pub struct PveRemote {
@@ -171,7 +171,10 @@ impl LoadableComponent for PveRemoteComp {
         let remote = &props.remote;
 
         let content: Html = match &self.view {
-            PveTreeNode::Root => html! {},
+            PveTreeNode::Root => Panel::new()
+                .title(tr!("Remote Tasks"))
+                .with_child(RemoteTaskList::new().remote(remote.clone()))
+                .into(),
             PveTreeNode::Node(node) => {
                 node::NodePanel::new(remote.clone(), node.node.clone()).into()
             }
diff --git a/ui/src/pve/tree.rs b/ui/src/pve/tree.rs
index c669bab..d2d920c 100644
--- a/ui/src/pve/tree.rs
+++ b/ui/src/pve/tree.rs
@@ -256,7 +256,7 @@ impl PveTreeComp {
             }
         }
         self.store.write().update_root_tree(tree);
-        self.store.write().set_view_root(false);
+        self.store.write().set_view_root(true);
         self.loaded = true;
     }
 }
@@ -557,6 +557,10 @@ fn columns(
     remote: String,
     loading: bool,
 ) -> Rc<Vec<DataTableHeader<PveTreeNode>>> {
+    let loading = match store.read().root() {
+        Some(root) => loading && root.children_count() == 0,
+        None => loading,
+    };
     Rc::new(vec![
         DataTableColumn::new("Type/ID")
             .flex(1)
diff --git a/ui/src/remotes/mod.rs b/ui/src/remotes/mod.rs
index 88e6c46..83b3331 100644
--- a/ui/src/remotes/mod.rs
+++ b/ui/src/remotes/mod.rs
@@ -22,6 +22,7 @@ mod config;
 pub use config::{create_remote, RemoteConfigPanel};
 
 mod tasks;
+pub use tasks::RemoteTaskList;
 
 use yew::{function_component, Html};
 
@@ -51,7 +52,7 @@ pub fn system_configuration() -> Html {
                 .key("tasks")
                 .label(tr!("Tasks"))
                 .icon_class("fa fa-book"),
-            |_| tasks::RemoteTaskList::new().into(),
+            |_| RemoteTaskList::new().into(),
         );
 
     NavigationContainer::new().with_child(panel).into()
-- 
2.47.3





More information about the pdm-devel mailing list