github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/views/vpage/Args.html (about) 1 <!-- Content managed by Project Forge, see [projectforge.md] for details. --> 2 {% import ( 3 "strconv" 4 5 "github.com/kyleu/dbaudit/app" 6 "github.com/kyleu/dbaudit/app/controller/cutil" 7 "github.com/kyleu/dbaudit/views/components/edit" 8 "github.com/kyleu/dbaudit/views/layout" 9 ) %} 10 11 {% code type Args struct { 12 layout.Basic 13 URL string 14 Directions string 15 ArgRes *cutil.ArgResults 16 Hidden map[string]string 17 } %} 18 19 {% func (p *Args) Body(as *app.State, ps *cutil.PageState) %} 20 <div class="card"> 21 <h3>{% if p.Directions == "" %}Enter Data{% else %}{%s p.Directions %}{% endif %}</h3> 22 <form action="{%s p.URL %}" method="get"> 23 {%- for k, v := range p.Hidden -%} 24 <input type="hidden" name="{%s k %}" value="{%s v %}" /> 25 {%- endfor -%} 26 <div class="overflow full-width"> 27 <table class="mt min-200 expanded"> 28 <tbody> 29 {%- for _, arg := range p.ArgRes.Args -%} 30 {%- code 31 v := p.ArgRes.Values.GetStringOpt(arg.Key) 32 if v == "" { 33 v = arg.Default 34 } 35 title := arg.Title 36 if len(title) > 50 { 37 title = title[:50] + "..." 38 } 39 -%} 40 {%- switch arg.Type -%} 41 {%- case "bool" -%} 42 {%= edit.BoolTable(arg.Key, title, v == "true", 5, arg.Description) %} 43 {%- case "textarea" -%} 44 {%= edit.TextareaTable(arg.Key, "", title, 12, v, 5, arg.Description) %} 45 {%- case "number", "int" -%} 46 {%- code i, _ := strconv.ParseInt(v, 10, 32) -%} 47 {%= edit.IntTable(arg.Key, "", title, int(i), 5, arg.Description) %} 48 {%- default -%} 49 {%= edit.DatalistTable(arg.Key, "", title, v, arg.Choices, nil, 5, arg.Description) %} 50 {%- endswitch -%} 51 {%- endfor -%} 52 </tbody> 53 </table> 54 </div> 55 <button class="mt" type="submit">Submit</button> 56 </form> 57 </div> 58 {% endfunc %}