Mercurial > libervia-templates
view sat_templates/templates/default/input/field.html @ 359:16b3a2988afd
massive refactoring from camelCase -> snake_case. See backend commit log for more details
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 08 Apr 2023 13:59:12 +0200 |
parents | aa37750c2617 |
children |
line wrap: on
line source
{# macros to create form fields #} {% macro field(type, name, label="", required=false) %} {# generic field "class" keyword can be used to add classes additional kwargs will be passed as attributes #} <span class="form_input {{kwargs.pop('class', '')}}"> {% set cur_id = name|next_gidx %} {% if label %} <label for="{{cur_id}}" {{'class="required"'|safe if required}}>{{label}}</label> {% endif %} <input id="{{cur_id}}" type="{{type}}" name="{{name}}" {{"required" if required}} {{kwargs|xmlattr}}> </span> {% endmacro %} {% macro select(name, options_list, selected=none, required=false, multiple=false) %} {# selection of elements with <select> @param name: name of the field @param options_list(list[str, str]): list of name, label of options @param selected(none, list): list of select elements @param required(bool): true this field is required @param multiple(bool): true is multiple selection is possible #} <select name="{{name}}" class="form_input {{kwargs.pop('class', '')}}" {{"required" if required}}> {% for value, label in options_list %} <option value="{{value}}" {{'selected' if selected and value in selected}}>{{label}}</option> {% endfor %} </select> {% endmacro %} {% macro choices(name, choices_list, checked=none) %} {% for choice, label in choices_list %} <div class="form_input {{kwargs.pop('class', '')}}"> <input id="{{name|next_gidx}}" type="radio" name="{{name}}" value="{{choice}}"{{" checked" if checked==choice}}><label for="{{name|cur_gidx}}">{{label}}</label> </div> {% endfor %} {% endmacro %} {% macro int(name, label="", init=0) %} {{ field("number", name=name, label=label, value=init, step=1, min=0, **kwargs) }} {% endmacro %} {% macro checkbox(name, label="", checked=false) %} {% if checked %} {{ field("checkbox", name=name, label=label, checked="checked", **kwargs) }} {% else %} {{ field("checkbox", name=name, label=label, **kwargs) }} {% endif %} {% endmacro %} {% macro text(name, label="", placeholder="", required=false) %} {{ field("text", name=name, label=label, required=required, placeholder=placeholder, **kwargs) }} {% endmacro %} {% macro password(name, label="", required=false) %} {{ field("password", name=name, label=label, required=required, **kwargs) }} {% endmacro %} {% macro email(name, label="", required=false) %} {{ field("email", name=name, label=label, required=required, **kwargs) }} {% endmacro %} {% macro date(name, label="", required=false) %} {{ field("date", name=name, label=label, required=required, **kwargs) }} {% endmacro %} {% macro url(name, label="", required=false) %} {{ field("url", name=name, label=label, required=required, **kwargs) }} {% endmacro %} {% macro file(name, label="", required=false) %} {{ field("file", name=name, label=label, required=required, **kwargs) }} {% endmacro %} {% macro textarea(name, label="", rows=10, cols=50, placeholder='', required=false) %} <div class="form_input {{kwargs.pop('class', '')}}"> {% set cur_id = name|next_gidx %} {% if label %} <label for="{{cur_id}}" {{'class="required"'|safe if required}}>{{label}}</label> {% endif %} <textarea id="{{cur_id}}" name="{{name}}" rows="{{rows}}" cols="{{cols}}" placeholder="{{placeholder}}" {{"required" if required}} class="{{kwargs.pop('class', '')}}"></textarea> </div> {% endmacro %} {% macro meta(name, value) %} <input type="hidden" name="{{name}}" value="{{value}}"> {% endmacro %} {% macro submit(text=_("Send"), id=none) %} {# submit button @param text(str): label of the button @param id(none, str): id of the element #} <input {{ 'id="{id}"'.format(id=id)|safe if id }} class="form_submit btn {{kwargs.pop('class', '')}}" type="submit" value="{{text}}"> {% endmacro %}