package builder import ( "html" "golang-fave/engine/wrapper" ) const ( DFKHidden = iota DFKText DFKEmail DFKPassword DFKTextArea DFKSubmit ) type DataFormField struct { Caption string Kind int Name string Value string Placeholder string Hint string Target string Required bool CallBack func(field *DataFormField) string } func DataForm(wrap *wrapper.Wrapper, data []DataFormField) string { result := `
` result += `` for _, field := range data { if field.Kind != DFKHidden && field.Kind != DFKSubmit { if field.CallBack != nil { result += field.CallBack(&field) } else { required := `` if field.Required { required = ` required` } result += `
` result += `
` result += `
` result += `` result += `
` result += `
` result += `
` if field.Kind == DFKText { result += `` } else if field.Kind == DFKEmail { result += `` } else if field.Kind == DFKPassword { result += `` } else if field.Kind == DFKTextArea { result += `` } result += `
` if field.Hint != "" { result += `
` + field.Hint + `
` } result += `
` result += `
` result += `
` } } } for _, field := range data { if field.Kind == DFKSubmit { if field.CallBack != nil { result += field.CallBack(&field) } else { result += `` } } } result += `
` return result }