this repo has no description
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

process fieldsets in sub_forms

+46 -23
+42 -23
formz/src/formz/string_generator/simple.gleam
··· 7 7 pub fn generate_form(form) -> String { 8 8 { 9 9 form 10 - |> formz.get_inputs 11 - |> list.filter(fn(f) { !f.hidden }) 12 - |> list.map(generate_visible_field) 10 + |> formz.get_items 11 + |> list.map(generate_visible_item) 13 12 |> string.join("\n") 14 13 } 15 14 <> { ··· 21 20 } 22 21 } 23 22 24 - pub fn generate_visible_field(f: Input(String)) -> String { 25 - let label_el = "<label for=\"" <> f.name <> "\">" <> f.label <> ": </label>" 26 - let description_el = case string.is_empty(f.help_text) { 27 - True -> "" 28 - False -> "<span class=\"description\">" <> f.help_text <> "</span>" 29 - } 30 - let widget_el = 31 - "<span class=\"widget\">" 32 - <> f.widget(f, input.WidgetArgs(f.name, input.Element)) 33 - <> "</span>" 23 + pub fn generate_visible_item(item: formz.FormItem(String)) -> String { 24 + case item { 25 + formz.Item(f) -> 26 + case f.hidden { 27 + True -> "" 28 + False -> { 29 + let label_el = 30 + "<label for=\"" <> f.name <> "\">" <> f.label <> ": </label>" 31 + let description_el = case string.is_empty(f.help_text) { 32 + True -> "" 33 + False -> "<span class=\"description\">" <> f.help_text <> "</span>" 34 + } 35 + let widget_el = 36 + "<span class=\"widget\">" 37 + <> f.widget(f, input.WidgetArgs(f.name, input.Element)) 38 + <> "</span>" 39 + 40 + let errors_el = case f { 41 + Input(..) -> "<span class=\"error-placeholder\"></span>" 42 + InvalidInput(error:, ..) -> 43 + "<span class=\"errors\">" <> error <> "</span>" 44 + } 34 45 35 - let errors_el = case f { 36 - Input(..) -> "<span class=\"error-placeholder\"></span>" 37 - InvalidInput(error:, ..) -> "<span class=\"errors\">" <> error <> "</span>" 46 + "<p class=\"simple_field\">" 47 + <> label_el 48 + <> widget_el 49 + <> description_el 50 + <> errors_el 51 + <> "</p>" 52 + } 53 + } 54 + formz.Fieldset(name, items) -> { 55 + "<fieldset><legend>" 56 + <> name 57 + <> "</legend>" 58 + <> { 59 + list.map(items, generate_visible_item) 60 + |> string.join("\n") 61 + } 62 + <> "</fieldset>" 63 + } 38 64 } 39 - 40 - "<p class=\"simple_field\">" 41 - <> label_el 42 - <> widget_el 43 - <> description_el 44 - <> errors_el 45 - <> "</p>" 46 65 } 47 66 48 67 pub fn generate_hidden_field(f: Input(String)) -> String {
+4
formz_demo/priv/static/stylesheet.css
··· 78 78 padding: 0 13px; 79 79 background: #f3f3f3; 80 80 margin: 0 7px 15px; 81 + 82 + fieldset { 83 + margin: 15px 0; 84 + } 81 85 } 82 86 83 87 .code {