]> saetta.ns0.it Git - rust/zakform/commitdiff
macro_rules now return the created FormField. validators
authorAndrea Zagli <azagli@libero.it>
Fri, 16 Oct 2026 09:03:53 +0000 (11:03 +0200)
committerAndrea Zagli <azagli@libero.it>
Fri, 16 Oct 2026 09:03:53 +0000 (11:03 +0200)
src/macros.rs

index ac8d8b20ecd6b4909c37bb019a5a3aa02c5820c6..e7174129783995083724433c20598c4e3bcb57eb 100644 (file)
@@ -14,12 +14,13 @@ macro_rules! form_field_text_new {
         $name: expr,
         $label: expr,
         $maxlen: expr,
-        $dbtype: path) => {
+        $dbtype: path) => {{
                let mut fi = zakform::fields::FieldText::new($name);
                zakform::form_field_new!(fi, $label, $dbtype);
                fi.set_maxlen($maxlen);
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field($name).unwrap()
+        }};
 }
 
 #[macro_export]
@@ -29,13 +30,14 @@ macro_rules! form_field_text_area_new {
         $label: expr,
         $maxlen: expr,
         $rows: expr,
-        $dbtype: path) => {
+        $dbtype: path) => {{
                let mut fi = zakform::fields::FieldText::new($name);
                zakform::form_field_new!(fi, $label, $dbtype);
                fi.set_maxlen($maxlen);
                fi.set_rows($rows);
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field($name).unwrap()
+        }};
 }
 
 #[macro_export]
@@ -44,12 +46,13 @@ macro_rules! form_field_check_new {
         $name: expr,
         $label: expr,
         $text: expr,
-        $dbtype: path) => {
+        $dbtype: path) => {{
                let mut fi = zakform::fields::FieldText::new($name);
                zakform::form_field_new!(fi, $label, $dbtype);
                fi.set_text($text);
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field($name).unwrap()
+        }};
 }
 
 #[macro_export]
@@ -58,12 +61,13 @@ macro_rules! form_field_radio_new {
         $name: expr,
         $label: expr,
         $dbtype: path,
-        $($opt_value: expr, $opt_label: expr),*,) => {
+        $($opt_value: expr, $opt_label: expr),*,) => {{
                let mut fi = zakform::fields::FieldRadio::new($name);
                zakform::form_field_new!(fi, $label, $dbtype);
                $(fi.add_option(zakform::fields::FOption{ value: String::from($opt_value), label: String::from($opt_label) });)*
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field($name).unwrap()
+        }};
 }
 
 #[macro_export]
@@ -72,12 +76,13 @@ macro_rules! form_field_select_new {
         $name: expr,
         $label: expr,
         $dbtype: path,
-        $($opt_value: expr, $opt_label: expr),*,) => {
+        $($opt_value: expr, $opt_label: expr),*,) => {{
                let mut fi = zakform::fields::FieldSelect::new($name);
                zakform::form_field_new!(fi, $label, $dbtype);
                $(fi.add_option(zakform::fields::FOption{ value: String::from($opt_value), label: String::from($opt_label) });)*
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field($name).unwrap()
+        }};
 }
 
 #[macro_export]
@@ -85,14 +90,15 @@ macro_rules! form_field_button_new {
     ($form: ident,
         $name: expr,
         $label: expr,
-        $class: expr) => {
+        $class: expr) => {{
                let mut fi = zakform::fields::FieldButton::new($name);
                fi.set_label($label);
                fi.set_class($class);
                fi.set_to_load(false);
                fi.set_to_save(false);
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field($name).unwrap()
+        }};
 }
 
 #[macro_export]
@@ -101,7 +107,7 @@ macro_rules! form_field_file_new {
         $name: expr,
         $label: expr,
         $accept: expr,
-        $size_max: expr) => {
+        $size_max: expr) => {{
                let mut fi = zakform::fields::FieldText::new(&format!("{}_file_tmp_id", $name));
                fi.set_label("");
                fi.set_to_load(false);
@@ -124,5 +130,6 @@ macro_rules! form_field_file_new {
                fi.set_accept($accept);
                fi.set_size_max($size_max);
                $form.add_field(Box::new(fi));
-       };
+               $form.get_field(&format!("{}_file", $name)).unwrap()
+       }};
 }