[pdm-devel] [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon`
Dominik Csapak
d.csapak at proxmox.com
Wed Apr 30 09:29:36 CEST 2025
this is deprecated in proxmox-yew-comp, so use the From implementation
to convert to Fa or Classes.
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
ui/src/dashboard/guest_panel.rs | 2 +-
ui/src/dashboard/mod.rs | 15 +++++++--------
ui/src/dashboard/remote_panel.rs | 6 +++---
ui/src/dashboard/subscription_info.rs | 2 +-
ui/src/pve/remote.rs | 4 ++--
ui/src/pve/utils.rs | 12 +++++-------
ui/src/remotes/node_url_list.rs | 4 ++--
ui/src/widget/migrate_window.rs | 6 +++---
ui/src/widget/pve_node_selector.rs | 4 ++--
ui/src/widget/resource_tree.rs | 13 ++++---------
10 files changed, 30 insertions(+), 38 deletions(-)
diff --git a/ui/src/dashboard/guest_panel.rs b/ui/src/dashboard/guest_panel.rs
index d885056..8d130c3 100644
--- a/ui/src/dashboard/guest_panel.rs
+++ b/ui/src/dashboard/guest_panel.rs
@@ -63,7 +63,7 @@ fn columns(guest_type: GuestType) -> Rc<Vec<DataTableHeader<StatusRow>>> {
.width("3em")
.render(move |item: &StatusRow| {
match item {
- StatusRow::State(state, _) => state.to_fa_icon(),
+ StatusRow::State(state, _) => (*state).into(),
StatusRow::All(_) => match guest_type {
GuestType::Qemu => Fa::new("desktop"),
GuestType::Lxc => Fa::new("cubes"),
diff --git a/ui/src/dashboard/mod.rs b/ui/src/dashboard/mod.rs
index 7b7ec81..23ff6b7 100644
--- a/ui/src/dashboard/mod.rs
+++ b/ui/src/dashboard/mod.rs
@@ -81,26 +81,25 @@ impl PdmDashboard {
}
fn create_node_panel(&self, icon: &str, title: String, status: &NodeStatusCount) -> Panel {
- let (status_icon, text) = match status {
+ let (status_icon, text): (Fa, String) = match status {
NodeStatusCount {
online, offline, ..
} if *offline > 0 => (
- Status::Error.to_fa_icon(),
+ Status::Error.into(),
tr!("{0} of {1} nodes are offline", offline, online),
),
NodeStatusCount { unknown, .. } if *unknown > 0 => (
- Status::Warning.to_fa_icon(),
+ Status::Warning.into(),
tr!("{0} nodes have an unknown status", unknown),
),
// FIXME, get more detailed status about the failed remotes (name, type, error)?
NodeStatusCount { online, .. } if self.status.failed_remotes > 0 => (
- Status::Unknown.to_fa_icon(),
+ Status::Unknown.into(),
tr!("{0} of an unknown number of nodes online", online),
),
- NodeStatusCount { online, .. } => (
- Status::Success.to_fa_icon(),
- tr!("{0} nodes online", online),
- ),
+ NodeStatusCount { online, .. } => {
+ (Status::Success.into(), tr!("{0} nodes online", online))
+ }
};
Panel::new()
.flex(1.0)
diff --git a/ui/src/dashboard/remote_panel.rs b/ui/src/dashboard/remote_panel.rs
index 2c1dd75..7471fb6 100644
--- a/ui/src/dashboard/remote_panel.rs
+++ b/ui/src/dashboard/remote_panel.rs
@@ -60,17 +60,17 @@ impl Component for PdmRemotePanel {
let (remote_icon, remote_text, failure) = match (status.failed_remotes, status.remotes) {
(0, 0) => (
- Status::Warning.to_fa_icon(),
+ Fa::from(Status::Warning),
tr!("No remotes configured."),
false,
),
(0, _) => (
- Status::Success.to_fa_icon(),
+ Fa::from(Status::Success),
tr!("Could reach all remotes."),
false,
),
(failed, _) => (
- Status::Error.to_fa_icon(),
+ Fa::from(Status::Error),
tr!("{0} remotes failed to reach.", failed),
true,
),
diff --git a/ui/src/dashboard/subscription_info.rs b/ui/src/dashboard/subscription_info.rs
index 7fb26d4..9677c15 100644
--- a/ui/src/dashboard/subscription_info.rs
+++ b/ui/src/dashboard/subscription_info.rs
@@ -88,7 +88,7 @@ a list of available options. ",
.class(AlignItems::Center)
.class(FlexFit)
.padding(4)
- .with_child(status.to_fa_icon().large_4x().padding(4))
+ .with_child(Fa::from(status).large_4x().padding(4))
.with_child(
Column::new()
.class(FlexFit)
diff --git a/ui/src/pve/remote.rs b/ui/src/pve/remote.rs
index aafed5d..e9e3a84 100644
--- a/ui/src/pve/remote.rs
+++ b/ui/src/pve/remote.rs
@@ -174,9 +174,9 @@ impl yew::Component for RemotePanelComp {
.with_child(make_row(
tr!("Subscription Status"),
if status.level.is_empty() {
- Status::Error.to_fa_icon()
+ Status::Error.into()
} else {
- Status::Success.to_fa_icon()
+ Status::Success.into()
},
status.level.to_string(),
None,
diff --git a/ui/src/pve/utils.rs b/ui/src/pve/utils.rs
index bb02f56..d0c8ccc 100644
--- a/ui/src/pve/utils.rs
+++ b/ui/src/pve/utils.rs
@@ -46,8 +46,7 @@ fn render_guest_status_icon(base: &str, status: &str, template: bool) -> Contain
let (status, extra_class) = match (status, template) {
("running", false) => (
Some(
- GuestState::Running
- .to_fa_icon()
+ Fa::from(GuestState::Running)
.fixed_width()
.class("status-icon"),
),
@@ -56,15 +55,14 @@ fn render_guest_status_icon(base: &str, status: &str, template: bool) -> Contain
("stopped", false) => (None, Some(Opacity::Quarter)),
("paused", false) => (
Some(
- GuestState::Paused
- .to_fa_icon()
+ Fa::from(GuestState::Paused)
.fixed_width()
.class("status-icon"),
),
None,
),
(_, true) => (Some(Fa::new(base).fixed_width().class("status-icon")), None),
- _ => (Some(GuestState::Unknown.to_fa_icon()), None),
+ _ => (Some(GuestState::Unknown.into()), None),
};
Container::new()
.class("pve-guest-icon")
@@ -86,7 +84,7 @@ pub fn render_node_status_icon(node: &PveNodeResource) -> Container {
Container::new()
.class("pdm-type-icon")
.with_child(Fa::new("building").fixed_width())
- .with_child(extra.to_fa_icon().fixed_width().class("status-icon"))
+ .with_child(Fa::from(extra).fixed_width().class("status-icon"))
}
/// Renders the status icon for a PveStorage
@@ -98,7 +96,7 @@ pub fn render_storage_status_icon(node: &PveStorageResource) -> Container {
Container::new()
.class("pdm-type-icon")
.with_child(Fa::new("database").fixed_width())
- .with_child(extra.to_fa_icon().fixed_width().class("status-icon"))
+ .with_child(Fa::from(extra).fixed_width().class("status-icon"))
}
/// Returns a [`pwt::widget::Row`] with an element for each tag
diff --git a/ui/src/remotes/node_url_list.rs b/ui/src/remotes/node_url_list.rs
index 60f9422..54dbfb9 100644
--- a/ui/src/remotes/node_url_list.rs
+++ b/ui/src/remotes/node_url_list.rs
@@ -13,7 +13,7 @@ use pwt::widget::form::{Field, ManagedFieldContext, ManagedFieldMaster, ManagedF
use pwt::widget::{ActionIcon, Button, Column, Container, Fa, Row};
use pwt::{css, prelude::*};
-use proxmox_yew_comp::SchemaValidation;
+use proxmox_yew_comp::{SchemaValidation, Status};
use pdm_api_types::remotes::NodeUrl;
use proxmox_schema::property_string::PropertyString;
@@ -218,7 +218,7 @@ impl ManagedField for PdmNodeUrlField {
Row::new()
.class(css::AlignItems::Center)
.gap(2)
- .with_child(Fa::new("exclamation-triangle").class(css::FontColor::Error))
+ .with_child(Fa::from(Status::Warning).class(css::FontColor::Error))
.with_child(err)
}));
diff --git a/ui/src/widget/migrate_window.rs b/ui/src/widget/migrate_window.rs
index 5305084..5f2e225 100644
--- a/ui/src/widget/migrate_window.rs
+++ b/ui/src/widget/migrate_window.rs
@@ -10,7 +10,7 @@ use pwt::css;
use pwt::prelude::*;
use pwt::widget::{
form::{Checkbox, DisplayField, FormContext, Number},
- Column, Container, InputPanel, Row,
+ Column, Container, Fa, InputPanel, Row,
};
use pwt::AsyncPool;
use pwt_macros::{builder, widget};
@@ -318,7 +318,7 @@ impl PdmMigrateWindow {
warnings.push(
Row::new()
.gap(2)
- .with_child(Status::Warning.to_fa_icon())
+ .with_child(Fa::from(Status::Warning))
.with_child(tr!(
"Migration with local disk might take long: {0} ({1})",
disk.volid,
@@ -333,7 +333,7 @@ impl PdmMigrateWindow {
warnings.push(
Row::new()
.gap(2)
- .with_child(Status::Error.to_fa_icon())
+ .with_child(Fa::from(Status::Error))
.with_child(tr!("Cannot migrate with local resource: {0}", resource))
.into(),
);
diff --git a/ui/src/widget/pve_node_selector.rs b/ui/src/widget/pve_node_selector.rs
index f89db45..ca78514 100644
--- a/ui/src/widget/pve_node_selector.rs
+++ b/ui/src/widget/pve_node_selector.rs
@@ -17,7 +17,7 @@ use pwt::{
widget::{
data_table::{DataTable, DataTableColumn, DataTableHeader},
form::{Selector, SelectorRenderArgs},
- GridPicker, Row,
+ Fa, GridPicker, Row,
},
AsyncPool,
};
@@ -123,7 +123,7 @@ impl Component for PveNodeSelectorComp {
move |args: &SelectorRenderArgs<Store<ClusterNodeIndexResponse>>| {
if let Some(err) = &err {
return Row::new()
- .with_child(Status::Error.to_fa_icon())
+ .with_child(Fa::from(Status::Error))
.with_child(err)
.into();
}
diff --git a/ui/src/widget/resource_tree.rs b/ui/src/widget/resource_tree.rs
index feff308..c790a6c 100644
--- a/ui/src/widget/resource_tree.rs
+++ b/ui/src/widget/resource_tree.rs
@@ -278,7 +278,7 @@ impl Component for PdmResourceTree {
.border_top(true)
.padding(4)
.gap(2)
- .with_child(Status::Error.to_fa_icon().large())
+ .with_child(Fa::from(Status::Error).large())
.with_child(err.to_string())
})),
)
@@ -322,14 +322,9 @@ fn columns(
Container::new()
.class("pdm-type-icon")
.with_child(Fa::new("server").fixed_width())
- .with_optional_child(
- err.is_some().then_some(
- Status::Error
- .to_fa_icon()
- .fixed_width()
- .class("status-icon"),
- ),
- ),
+ .with_optional_child(err.is_some().then_some(
+ Fa::from(Status::Error).fixed_width().class("status-icon"),
+ )),
remote.clone(),
err.as_ref().map(|err| err.to_string()),
),
--
2.39.5
More information about the pdm-devel
mailing list