From: Dominik Csapak <d.csapak@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [PATCH datacenter-manager v3 9/9] ui: pve: node: show ha maintenance badge
Date: Fri, 21 Aug 2026 14:30:21 +0200 [thread overview]
Message-ID: <20260821123201.3035643-10-d.csapak@proxmox.com> (raw)
In-Reply-To: <20260821123201.3035643-1-d.csapak@proxmox.com>
in the title of the node panel, so it's visible on all tabs, including
the shell, where admins might do the maintenance.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
ui/src/pve/mod.rs | 11 ++++++++++-
ui/src/pve/node/mod.rs | 15 +++++++++++----
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/ui/src/pve/mod.rs b/ui/src/pve/mod.rs
index 340fc731..3513a814 100644
--- a/ui/src/pve/mod.rs
+++ b/ui/src/pve/mod.rs
@@ -216,7 +216,16 @@ impl LoadableComponent for PveRemoteComp {
PveTreeNode::Root => remote::PveRemotePanel::new(remote.clone()).into(),
PveTreeNode::Resource(r) => match r {
PveResource::Node(node) => {
- node::PveNodePanel::new(remote.clone(), node.node.clone())
+ let info = self
+ .resources
+ .iter()
+ .find_map(|r: &PveResource| match r {
+ PveResource::Node(info) if node.id == info.id => Some(info),
+ _ => None,
+ })
+ .unwrap_or(node)
+ .clone();
+ node::PveNodePanel::new(remote.clone(), node.node.clone(), info)
.pve_manager_version(self.get_pve_manager_version(&node.node))
.into()
}
diff --git a/ui/src/pve/node/mod.rs b/ui/src/pve/node/mod.rs
index 056f15cd..55e28a81 100644
--- a/ui/src/pve/node/mod.rs
+++ b/ui/src/pve/node/mod.rs
@@ -13,13 +13,15 @@ use pwt::{
};
use pwt_macros::builder;
+use pdm_api_types::resource::{PveNodeResource, ResourceView};
+
mod overview;
use overview::PveNodeOverviewPanel;
-use crate::get_deep_url;
+use crate::{get_deep_url, renderer::render_resource_extra_info};
-#[derive(Clone, Debug, Eq, PartialEq, Properties)]
+#[derive(Clone, Debug, PartialEq, Properties)]
#[builder]
pub struct PveNodePanel {
/// The remote to show
@@ -28,6 +30,8 @@ pub struct PveNodePanel {
/// The node to show
pub node: String,
+ info: PveNodeResource,
+
#[prop_or_default]
#[builder]
/// The nodes pve-manager version, used to feature gate some entries.
@@ -35,8 +39,8 @@ pub struct PveNodePanel {
}
impl PveNodePanel {
- pub fn new(remote: String, node: String) -> Self {
- yew::props!(Self { remote, node })
+ pub fn new(remote: String, node: String, info: PveNodeResource) -> Self {
+ yew::props!(Self { remote, node, info })
}
}
@@ -64,6 +68,9 @@ impl yew::Component for PveNodePanelComp {
.class(AlignItems::Baseline)
.with_child(Fa::new("building"))
.with_child(tr! {"Node '{0}'", props.node})
+ .with_optional_child(render_resource_extra_info(ResourceView::PveNode(
+ &props.info,
+ )))
.into();
TabPanel::new()
--
2.47.3
prev parent reply other threads:[~2026-08-21 12:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-21 12:30 [PATCH datacenter-manager v3 0/9] refactor and partially fix #7371 Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 1/9] lib: api types: add new ResourceView type and move accessors there Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 2/9] lib: api types: resource: add 'node' helper to ResourceView Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 3/9] lib: api types: add guest specific getter " Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 4/9] ui: pve: factor out the pve-manager version extraction Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 5/9] ui: renderer: use ResourceView for rendering Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 6/9] ui: pve: tree: reuse `PveResource` for `PveTreeNode` Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 7/9] ui: pve: show ha maintenance mode for nodes Dominik Csapak
2026-08-21 12:30 ` [PATCH datacenter-manager v3 8/9] ui: pve: node selector: show maintenance badge with node name Dominik Csapak
2026-08-21 12:30 ` Dominik Csapak [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260821123201.3035643-10-d.csapak@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pdm-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.