[pdm-devel] [PATCH datacenter-manager 2/3] ui: make NodeStatusPanel available as a widget
Shannon Sterz
s.sterz at proxmox.com
Thu Nov 6 13:43:33 CET 2025
Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
ui/src/administration/mod.rs | 4 +++-
ui/src/dashboard/types.rs | 1 +
ui/src/dashboard/view.rs | 15 ++++++++++++++-
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/ui/src/administration/mod.rs b/ui/src/administration/mod.rs
index a9f7ac6..72a4ffa 100644
--- a/ui/src/administration/mod.rs
+++ b/ui/src/administration/mod.rs
@@ -16,7 +16,9 @@ use pwt_macros::builder;
//mod services;
//pub use services::Services;
-use proxmox_yew_comp::{AptPackageManager, AptRepositories, ExistingProduct, Syslog, Tasks};
+use proxmox_yew_comp::{
+ AptPackageManager, AptRepositories, ExistingProduct, NodeStatusPanel, Syslog, Tasks,
+};
#[derive(Clone, PartialEq, Properties)]
#[builder]
diff --git a/ui/src/dashboard/types.rs b/ui/src/dashboard/types.rs
index c79c38a..ce4bbb7 100644
--- a/ui/src/dashboard/types.rs
+++ b/ui/src/dashboard/types.rs
@@ -61,6 +61,7 @@ pub enum WidgetType {
TaskSummary {
grouping: TaskSummaryGrouping,
},
+ NodeStatus,
}
#[derive(Serialize, Deserialize, PartialEq, Clone, Copy)]
diff --git a/ui/src/dashboard/view.rs b/ui/src/dashboard/view.rs
index c781d99..b5cd722 100644
--- a/ui/src/dashboard/view.rs
+++ b/ui/src/dashboard/view.rs
@@ -3,6 +3,7 @@ use std::rc::Rc;
use anyhow::Error;
use futures::join;
use js_sys::Date;
+use proxmox_yew_comp::NodeStatusPanel;
use serde_json::json;
use yew::virtual_dom::{VComp, VNode};
@@ -123,6 +124,11 @@ fn render_widget(
let (hours, since) = get_task_options(refresh_config.task_last_hours);
create_task_summary_panel(statistics, remotes, hours, since)
}
+ WidgetType::NodeStatus => {
+ return NodeStatusPanel::new()
+ .status_base_url("/nodes/localhost/status")
+ .into()
+ }
};
if let Some(title) = &item.title {
@@ -215,6 +221,9 @@ fn required_api_calls(layout: &ViewLayout) -> (bool, bool, bool) {
}
WidgetType::Leaderboard { .. } => top_entities = true,
WidgetType::TaskSummary { .. } => task_statistics = true,
+ WidgetType::NodeStatus => {
+ // widget handles this by itself
+ }
}
}
}
@@ -465,7 +474,11 @@ async fn load_template() -> Result<ViewTemplate, Error> {
\"widget-type\": \"pbs-datastores\"
},
{
- \"flex\": 5.0,
+ \"flex\": 2.0,
+ \"widget-type\": \"node-status\"
+ },
+ {
+ \"flex\": 3.0,
\"widget-type\": \"subscription\"
}
],
--
2.47.3
More information about the pdm-devel
mailing list