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 %}