[pdm-devel] [PATCH yew-comp 1/2] utils/user_panel: factor out epoch_to_input_value helper

Shannon Sterz s.sterz at proxmox.com
Wed Sep 24 16:51:33 CEST 2025


being able to convert an epoch to a timestamp string that is
compatible with input fields is generally useful. so move it to the
utils module and expose it publicly.

Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
 src/user_panel.rs | 21 +--------------------
 src/utils.rs      | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/user_panel.rs b/src/user_panel.rs
index 14c43c4..6e55b63 100644
--- a/src/user_panel.rs
+++ b/src/user_panel.rs
@@ -20,7 +20,7 @@ use pwt::widget::form::{delete_empty_values, Checkbox, Field, FormContext, Input
 use pwt::widget::{Button, Dialog, InputPanel, Toolbar};
 
 use crate::percent_encoding::percent_encode_component;
-use crate::utils::render_epoch_short;
+use crate::utils::{epoch_to_input_value, render_epoch_short};
 use crate::{
     EditWindow, LoadableComponent, LoadableComponentContext, LoadableComponentMaster,
     PermissionPanel, RealmSelector, SchemaValidation,
@@ -537,22 +537,3 @@ fn edit_user_input_panel(_form_ctx: &FormContext) -> Html {
         .with_large_field(tr!("Comment"), Field::new().name("comment").autofocus(true))
         .into()
 }
-
-fn epoch_to_input_value(epoch: i64) -> String {
-    let date = js_sys::Date::new_0();
-    date.set_time((epoch * 1000) as f64);
-
-    if date.get_date() == 0 {
-        // invalid data (clear field creates this)
-        String::new()
-    } else {
-        format!(
-            "{:04}-{:02}-{:02}T{:02}:{:02}",
-            date.get_full_year(),
-            date.get_month() + 1,
-            date.get_date(),
-            date.get_hours(),
-            date.get_minutes(),
-        )
-    }
-}
diff --git a/src/utils.rs b/src/utils.rs
index 544ed76..79b7ad7 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -132,6 +132,25 @@ pub fn render_url(url: &str) -> Html {
     }
 }
 
+pub fn epoch_to_input_value(epoch: i64) -> String {
+    let date = js_sys::Date::new_0();
+    date.set_time((epoch * 1000) as f64);
+
+    if date.get_date() == 0 {
+        // invalid data (clear field creates this)
+        String::new()
+    } else {
+        format!(
+            "{:04}-{:02}-{:02}T{:02}:{:02}",
+            date.get_full_year(),
+            date.get_month() + 1,
+            date.get_date(),
+            date.get_hours(),
+            date.get_minutes(),
+        )
+    }
+}
+
 // todo: we want to use Fn(&str, Option<&str>),
 #[allow(clippy::type_complexity)]
 static TASK_DESCR_TABLE: Mutex<
-- 
2.47.3





More information about the pdm-devel mailing list