[pdm-devel] [PATCH yew-comp v2 1/1] tasks: add loading animation for running tasks
Dominik Csapak
d.csapak at proxmox.com
Thu Mar 20 10:34:12 CET 2025
when there is no endtime and the status is either empty or "RUNNING"
(for PVE), render a spinning loading icon, like we do in the ExtJS UI.
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
* use justifycontent instead of 2 flex spacers
* move match one level up
src/tasks.rs | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/tasks.rs b/src/tasks.rs
index 9a36bb3..61c06a6 100644
--- a/src/tasks.rs
+++ b/src/tasks.rs
@@ -4,6 +4,7 @@ use std::rc::Rc;
use anyhow::Error;
+use pwt::css::JustifyContent;
use pwt::widget::form::{Field, Form, FormContext, InputType};
use gloo_timers::callback::Timeout;
@@ -17,7 +18,7 @@ use pwt::state::{PersistentState, Selection, Store};
use pwt::widget::data_table::{
DataTable, DataTableColumn, DataTableHeader, DataTableRowRenderCallback,
};
-use pwt::widget::{Button, Column, Toolbar};
+use pwt::widget::{Button, Column, Fa, Row, Toolbar};
use crate::utils::{format_upid, render_epoch_short};
@@ -122,7 +123,10 @@ impl ProxmoxTasks {
.width("130px")
.render(|item: &TaskListItem| match item.endtime {
Some(endtime) => render_epoch_short(endtime).into(),
- None => html! {},
+ None => Row::new()
+ .class(JustifyContent::Center)
+ .with_child(Fa::new("").class("pwt-loading-icon"))
+ .into(),
})
.into(),
DataTableColumn::new(tr!("User name"))
@@ -137,9 +141,12 @@ impl ProxmoxTasks {
.into(),
DataTableColumn::new(tr!("Status"))
.width("200px")
- .render(|item: &TaskListItem| {
- let text = item.status.as_deref().unwrap_or("");
- html! {text}
+ .render(|item: &TaskListItem| match item.status.as_deref() {
+ Some("" | "RUNNING") | None => Row::new()
+ .class(JustifyContent::Center)
+ .with_child(Fa::new("").class("pwt-loading-icon"))
+ .into(),
+ Some(text) => html! {text},
})
.into(),
])
--
2.39.5
More information about the pdm-devel
mailing list