* [pdm-devel] [PATCH datacenter-manager/yew-comp 0/2] refactor status structs and Fa interaction
@ 2025-04-30 7:29 Dominik Csapak
2025-04-30 7:29 ` [pdm-devel] [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementation Dominik Csapak
2025-04-30 7:29 ` [pdm-devel] [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon` Dominik Csapak
0 siblings, 2 replies; 5+ messages in thread
From: Dominik Csapak @ 2025-04-30 7:29 UTC (permalink / raw)
To: pdm-devel
Instead of having a 'to_fa_icon' for the status structs, implement
From. This is more idiomatic rust, and makes for nicer code.
proxmox-yew-comp:
Dominik Csapak (1):
status: replace `to_fa_icon` with From implementation
src/status.rs | 64 ++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 56 insertions(+), 8 deletions(-)
proxmox-datacenter-manager:
Dominik Csapak (1):
ui: adapt to deprecation of `to_fa_icon`
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(-)
Summary over all repositories:
11 files changed, 86 insertions(+), 46 deletions(-)
--
Generated by git-murpp 0.8.1
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementation
2025-04-30 7:29 [pdm-devel] [PATCH datacenter-manager/yew-comp 0/2] refactor status structs and Fa interaction Dominik Csapak
@ 2025-04-30 7:29 ` Dominik Csapak
2025-04-30 9:24 ` [pdm-devel] applied: [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementatio Dietmar Maurer
2025-04-30 7:29 ` [pdm-devel] [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon` Dominik Csapak
1 sibling, 1 reply; 5+ messages in thread
From: Dominik Csapak @ 2025-04-30 7:29 UTC (permalink / raw)
To: pdm-devel
this is a much nicer interface, and more idiomatic rust. To not break
all sites that use it, simply deprecate the old `to_fa_icon` for now
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/status.rs | 64 ++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 56 insertions(+), 8 deletions(-)
diff --git a/src/status.rs b/src/status.rs
index a2866d1..1004012 100644
--- a/src/status.rs
+++ b/src/status.rs
@@ -16,13 +16,25 @@ pub enum Status {
}
impl Status {
+ #[deprecated]
+ /// Deprecated, please use [`Fa::from`] or `.into()` instead.
pub fn to_fa_icon(&self) -> Fa {
- let (icon, class): (&str, Classes) = match self {
+ (*self).into()
+ }
+
+ fn get_icon_classes(&self) -> (&str, Classes) {
+ match self {
Status::Success => ("check", FontColor::Success.into()),
Status::Warning => ("exclamation-triangle", FontColor::Warning.into()),
Status::Error => ("times-circle", FontColor::Error.into()),
Status::Unknown => ("question-circle", Opacity::Quarter.into()),
- };
+ }
+ }
+}
+
+impl From<Status> for Fa {
+ fn from(value: Status) -> Self {
+ let (icon, class) = value.get_icon_classes();
Fa::new(icon).class(class)
}
}
@@ -36,12 +48,24 @@ pub enum NodeState {
}
impl NodeState {
+ #[deprecated]
+ /// Deprecated, please use [`Fa::from`] or `.into()` instead.
pub fn to_fa_icon(&self) -> Fa {
- let (icon, class) = match self {
+ (*self).into()
+ }
+
+ fn get_icon_classes(&self) -> (&str, FontColor) {
+ match self {
NodeState::Online => ("check-circle", FontColor::Success),
NodeState::Offline => ("times-circle", FontColor::Error),
NodeState::Unknown => ("question-circle", FontColor::Surface),
- };
+ }
+ }
+}
+
+impl From<NodeState> for Fa {
+ fn from(value: NodeState) -> Self {
+ let (icon, class) = value.get_icon_classes();
Fa::new(icon).class(class)
}
}
@@ -57,14 +81,26 @@ pub enum GuestState {
}
impl GuestState {
+ #[deprecated]
+ /// Deprecated, please use [`Fa::from`] or `.into()` instead.
pub fn to_fa_icon(&self) -> Fa {
- let (icon, class): (&str, Classes) = match self {
+ (*self).into()
+ }
+
+ fn get_icon_classes(&self) -> (&str, Classes) {
+ match self {
GuestState::Running => ("play", FontColor::Success.into()),
GuestState::Paused => ("pause", FontColor::Warning.into()),
GuestState::Stopped => ("stop", Opacity::Quarter.into()),
GuestState::Template => ("file-o", "".into()),
GuestState::Unknown => ("question-circle", Opacity::Quarter.into()),
- };
+ }
+ }
+}
+
+impl From<GuestState> for Fa {
+ fn from(value: GuestState) -> Self {
+ let (icon, class) = value.get_icon_classes();
Fa::new(icon).class(class)
}
}
@@ -78,12 +114,24 @@ pub enum StorageState {
}
impl StorageState {
+ #[deprecated]
+ /// Deprecated, please use [`Fa::from`] or `.into()` instead.
pub fn to_fa_icon(&self) -> Fa {
- let (icon, class) = match self {
+ (*self).into()
+ }
+
+ fn get_icon_classes(&self) -> (&str, FontColor) {
+ match self {
StorageState::Available => ("check-circle", FontColor::Success),
StorageState::Unavailable => ("times-circle", FontColor::Error),
StorageState::Unknown => ("question-circle", FontColor::Warning),
- };
+ }
+ }
+}
+
+impl From<StorageState> for Fa {
+ fn from(value: StorageState) -> Self {
+ let (icon, class) = value.get_icon_classes();
Fa::new(icon).class(class)
}
}
--
2.39.5
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon`
2025-04-30 7:29 [pdm-devel] [PATCH datacenter-manager/yew-comp 0/2] refactor status structs and Fa interaction Dominik Csapak
2025-04-30 7:29 ` [pdm-devel] [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementation Dominik Csapak
@ 2025-04-30 7:29 ` Dominik Csapak
2025-05-06 11:40 ` [pdm-devel] applied: " Dietmar Maurer
1 sibling, 1 reply; 5+ messages in thread
From: Dominik Csapak @ 2025-04-30 7:29 UTC (permalink / raw)
To: pdm-devel
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@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
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] applied: [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementatio
2025-04-30 7:29 ` [pdm-devel] [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementation Dominik Csapak
@ 2025-04-30 9:24 ` Dietmar Maurer
0 siblings, 0 replies; 5+ messages in thread
From: Dietmar Maurer @ 2025-04-30 9:24 UTC (permalink / raw)
To: Proxmox Datacenter Manager development discussion, Dominik Csapak
applied
> On 30.4.2025 09:29 CEST Dominik Csapak <d.csapak@proxmox.com> wrote:
>
>
> this is a much nicer interface, and more idiomatic rust. To not break
> all sites that use it, simply deprecate the old `to_fa_icon` for now
>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> src/status.rs | 64 ++++++++++++++++++++++++++++++++++++++++++++-------
> 1 file changed, 56 insertions(+), 8 deletions(-)
>
> diff --git a/src/status.rs b/src/status.rs
> index a2866d1..1004012 100644
> --- a/src/status.rs
> +++ b/src/status.rs
> @@ -16,13 +16,25 @@ pub enum Status {
> }
>
> impl Status {
> + #[deprecated]
> + /// Deprecated, please use [`Fa::from`] or `.into()` instead.
> pub fn to_fa_icon(&self) -> Fa {
> - let (icon, class): (&str, Classes) = match self {
> + (*self).into()
> + }
> +
> + fn get_icon_classes(&self) -> (&str, Classes) {
> + match self {
> Status::Success => ("check", FontColor::Success.into()),
> Status::Warning => ("exclamation-triangle", FontColor::Warning.into()),
> Status::Error => ("times-circle", FontColor::Error.into()),
> Status::Unknown => ("question-circle", Opacity::Quarter.into()),
> - };
> + }
> + }
> +}
> +
> +impl From<Status> for Fa {
> + fn from(value: Status) -> Self {
> + let (icon, class) = value.get_icon_classes();
> Fa::new(icon).class(class)
> }
> }
> @@ -36,12 +48,24 @@ pub enum NodeState {
> }
>
> impl NodeState {
> + #[deprecated]
> + /// Deprecated, please use [`Fa::from`] or `.into()` instead.
> pub fn to_fa_icon(&self) -> Fa {
> - let (icon, class) = match self {
> + (*self).into()
> + }
> +
> + fn get_icon_classes(&self) -> (&str, FontColor) {
> + match self {
> NodeState::Online => ("check-circle", FontColor::Success),
> NodeState::Offline => ("times-circle", FontColor::Error),
> NodeState::Unknown => ("question-circle", FontColor::Surface),
> - };
> + }
> + }
> +}
> +
> +impl From<NodeState> for Fa {
> + fn from(value: NodeState) -> Self {
> + let (icon, class) = value.get_icon_classes();
> Fa::new(icon).class(class)
> }
> }
> @@ -57,14 +81,26 @@ pub enum GuestState {
> }
>
> impl GuestState {
> + #[deprecated]
> + /// Deprecated, please use [`Fa::from`] or `.into()` instead.
> pub fn to_fa_icon(&self) -> Fa {
> - let (icon, class): (&str, Classes) = match self {
> + (*self).into()
> + }
> +
> + fn get_icon_classes(&self) -> (&str, Classes) {
> + match self {
> GuestState::Running => ("play", FontColor::Success.into()),
> GuestState::Paused => ("pause", FontColor::Warning.into()),
> GuestState::Stopped => ("stop", Opacity::Quarter.into()),
> GuestState::Template => ("file-o", "".into()),
> GuestState::Unknown => ("question-circle", Opacity::Quarter.into()),
> - };
> + }
> + }
> +}
> +
> +impl From<GuestState> for Fa {
> + fn from(value: GuestState) -> Self {
> + let (icon, class) = value.get_icon_classes();
> Fa::new(icon).class(class)
> }
> }
> @@ -78,12 +114,24 @@ pub enum StorageState {
> }
>
> impl StorageState {
> + #[deprecated]
> + /// Deprecated, please use [`Fa::from`] or `.into()` instead.
> pub fn to_fa_icon(&self) -> Fa {
> - let (icon, class) = match self {
> + (*self).into()
> + }
> +
> + fn get_icon_classes(&self) -> (&str, FontColor) {
> + match self {
> StorageState::Available => ("check-circle", FontColor::Success),
> StorageState::Unavailable => ("times-circle", FontColor::Error),
> StorageState::Unknown => ("question-circle", FontColor::Warning),
> - };
> + }
> + }
> +}
> +
> +impl From<StorageState> for Fa {
> + fn from(value: StorageState) -> Self {
> + let (icon, class) = value.get_icon_classes();
> Fa::new(icon).class(class)
> }
> }
> --
> 2.39.5
>
>
>
> _______________________________________________
> pdm-devel mailing list
> pdm-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pdm-devel] applied: [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon`
2025-04-30 7:29 ` [pdm-devel] [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon` Dominik Csapak
@ 2025-05-06 11:40 ` Dietmar Maurer
0 siblings, 0 replies; 5+ messages in thread
From: Dietmar Maurer @ 2025-05-06 11:40 UTC (permalink / raw)
To: Proxmox Datacenter Manager development discussion, Dominik Csapak
applied
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-05-06 11:40 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-30 7:29 [pdm-devel] [PATCH datacenter-manager/yew-comp 0/2] refactor status structs and Fa interaction Dominik Csapak
2025-04-30 7:29 ` [pdm-devel] [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementation Dominik Csapak
2025-04-30 9:24 ` [pdm-devel] applied: [PATCH yew-comp 1/1] status: replace `to_fa_icon` with From implementatio Dietmar Maurer
2025-04-30 7:29 ` [pdm-devel] [PATCH datacenter-manager 1/1] ui: adapt to deprecation of `to_fa_icon` Dominik Csapak
2025-05-06 11:40 ` [pdm-devel] applied: " Dietmar Maurer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal