Skip to content

Commit d5062b2

Browse files
committed
minor fixes and remove debug line
1 parent b81a44f commit d5062b2

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
# Dependency directories (remove the comment below to include it)
1515
# vendor/
1616
.idea/
17+
example

form.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ func (f *Form) formRender(v interface{}, errs []FieldError, kv ...any) (template
7474

7575
return subhtml
7676
},
77+
"errors": func() []string {
78+
if errs, ok := fieldErrors[field.Name]; ok {
79+
return errs
80+
}
81+
return nil
82+
},
7783
})
7884

7985
fMap := copyMap(data)

transformer.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ func NewTransformer(model interface{}) (*Transformer, error) {
6969

7070
tr.Fields = fields
7171

72-
fmt.Printf("tr: %+v\n", tr.Fields)
73-
7472
return tr, nil
7573
}
7674

@@ -88,12 +86,12 @@ func (t *Transformer) scanModel(rValue reflect.Value, rType reflect.Type, names
8886
tags := rType.Field(i).Tag
8987

9088
name := tags.Get(tagName)
89+
fieldName := rType.Field(i).Name
9190
if name == "" {
92-
name = rType.Field(i).Name
91+
name = fieldName
9392
}
9493

9594
nname := append(names, name)
96-
9795
field := FormField{
9896
Label: tags.Get(tagLabel),
9997
Placeholder: tags.Get(tagPlaceholder),
@@ -228,7 +226,17 @@ func (t *Transformer) scanModel(rValue reflect.Value, rType reflect.Type, names
228226
field.Step = "any"
229227
}
230228
case reflect.Bool:
231-
field.Type = FieldTypeCheckbox
229+
fieldType := FieldTypeCheckbox
230+
if len(names) > 0 && names[len(names)-1] == name {
231+
// radio-options use the same 'name' as their parent for grouping
232+
fieldType = FieldTypeRadios
233+
}
234+
235+
field.Type = fieldType
236+
237+
// replace last slice element with the field name
238+
nname[len(nname)-1] = fieldName
239+
field.Id = strings.Join(nname, ".")
232240
case reflect.Slice, reflect.Array:
233241
case reflect.Map:
234242
case reflect.Struct:

0 commit comments

Comments
 (0)