writeln!(output, "use zakform::fields::{{TField, FOption}};");
writeln!(output, "");
- writeln!(output, "pub fn get_form() -> (zakform::form::Form, String) {{");
+ writeln!(output, "pub fn get_form() -> (zakform::form::Form, String, String) {{");
writeln!(output, "");
writeln!(output, "let mut f = zakform::form::Form::new();");
writeln!(output, "");
writeln!(output, "let mut with_validators = String::new();");
+ writeln!(output, "let mut with_attachments = String::new();");
let mut struct_db = String::new();
let mut struct_form = String::new();
};
}
- for (i, validator) in e.validators.into_iter().enumerate() {
+ for (i, validator) in e.validators.iter().enumerate() {
match validator.vtype.as_str() {
"zak_form_element_validator_notempty" => { writeln!(output, r#"fi.add_validator(Box::new(zakform::validators::ValidatorNotEmpty::new("{}_notempty")));"#, e.id); },
"zak_form_element_validator_date" => {
}
writeln!(output, "f.add_field(Box::new(fi));");
- writeln!(output, r#"with_validators.push_str(",'{}'");"#, e.id);
+
+ if !e.validators.is_empty() {
+ writeln!(output, r#"with_validators.push_str(",'{}'");"#, e.id);
+ }
+
+ if e.etype == "zak_form_cgi_form_element_file" {
+ writeln!(output, r#"with_attachments.push_str(",'{}'");"#, e.id);
+ }
}
writeln!(output, "");
- writeln!(output, "(f, with_validators)");
+ writeln!(output, r#"if with_validators.starts_with(",") {{
+ with_validators.remove(0);
+ }}"#);
+ writeln!(output, r#"if with_attachments.starts_with(",") {{
+ with_attachments.remove(0);
+ }}"#);
+
+ writeln!(output, "");
+ writeln!(output, "(f, with_validators, with_attachments)");
writeln!(output, "}}");
/* db struct */