From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 35DA41FF16E for ; Mon, 20 Jan 2025 10:30:15 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 22101160CA; Mon, 20 Jan 2025 10:30:11 +0100 (CET) From: Dominik Csapak To: pdm-devel@lists.proxmox.com Date: Mon, 20 Jan 2025 10:29:54 +0100 Message-Id: <20250120093006.927014-5-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250120093006.927014-1-d.csapak@proxmox.com> References: <20250120093006.927014-1-d.csapak@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.017 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] [PATCH yew-comp 4/7] running tasks: make TaskListItem renderer configurable X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" we currently don't have all types here (e.g. RemoteUpid), so simply make it generally configurable, so the downstream user of this can format the task the way it's necessary there. Signed-off-by: Dominik Csapak --- src/running_tasks.rs | 17 ++++++++++++++++- src/running_tasks_button.rs | 7 +++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/running_tasks.rs b/src/running_tasks.rs index 8ddc73c..b0b63af 100644 --- a/src/running_tasks.rs +++ b/src/running_tasks.rs @@ -4,6 +4,7 @@ use yew::html::IntoEventCallback; use yew::virtual_dom::{VComp, VNode}; use pwt::prelude::*; +use pwt::props::{IntoOptionalRenderFn, RenderFn}; use pwt::state::{Loader, LoaderState, SharedStateObserver, Store}; use pwt::widget::data_table::{DataTable, DataTableColumn, DataTableHeader}; use pwt::widget::{ActionIcon, Button, Container, Panel, Toolbar, Tooltip}; @@ -22,6 +23,11 @@ pub struct RunningTasks { #[prop_or_default] pub on_show_task: Option)>>, + #[builder_cb(IntoOptionalRenderFn, into_optional_render_fn, TaskListItem)] + #[prop_or_default] + /// Render function for the [`TaskListItem`] + pub render: Option>, + #[builder_cb(IntoEventCallback, into_event_callback, ())] #[prop_or_default] pub on_close: Option>, @@ -71,7 +77,16 @@ impl ProxmoxRunningTasks { Rc::new(vec![ DataTableColumn::new(tr!("Task")) .flex(1) - .render(|item: &TaskListItem| html! {format_upid(&item.upid)}) + .render({ + let render = props.render.clone(); + move |item: &TaskListItem| { + if let Some(render) = &render { + render.apply(item) + } else { + html! {format_upid(&item.upid)} + } + } + }) .into(), DataTableColumn::new(tr!("Start Time")) .width("130px") diff --git a/src/running_tasks_button.rs b/src/running_tasks_button.rs index 43ca6f3..e0e1062 100644 --- a/src/running_tasks_button.rs +++ b/src/running_tasks_button.rs @@ -8,6 +8,7 @@ use yew::virtual_dom::{VComp, VNode}; use pwt::dom::align::{align_to, AlignOptions, GrowDirection, Point}; use pwt::prelude::*; +use pwt::props::{IntoOptionalRenderFn, RenderFn}; use pwt::state::{Loader, LoaderState, SharedStateObserver}; use pwt::widget::{Button, Container}; @@ -24,6 +25,11 @@ pub struct RunningTasksButton { #[builder_cb(IntoEventCallback, into_event_callback, (String, Option))] #[prop_or_default] on_show_task: Option)>>, + + #[builder_cb(IntoOptionalRenderFn, into_optional_render_fn, TaskListItem)] + #[prop_or_default] + /// Render function for the [`TaskListItem`] + pub render: Option>, } impl RunningTasksButton { @@ -152,6 +158,7 @@ impl Component for ProxmoxRunningTasksButton { RunningTasks::new(props.running_tasks.clone()) .as_dropdown(true) .on_show_task(props.on_show_task.clone()) + .render(props.render.clone()) .on_close(ctx.link().callback(|_| Msg::CloseMenu)), ) }); -- 2.39.5 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel