{# macros to create form fields #} {% macro field(type, name, label="", value=none, class='', help="", required=false, icon_left=none, icon_right=none, attrs=none) %} {# generic field "class" keyword can be used to add classes additional kwargs will be passed as attributes #}
{% set cur_id = name|next_gidx %} {% if label %} {% endif %}
{% if icon_left %} {# we use with font from CSS instead of SVG, because using directly SVG doesn't play way with Bulma's control #} {% endif %} {% if icon_right %} {% endif %}
{% if help %}

{{help}}

{% endif %} {% if caller %} {{ caller() }} {% endif %}
{% endmacro %} {% macro select(name, options_list, selected=none, required=false, multiple=false, class='') %} {# selection of elements with {% for value, label in options_list %} {% endfor %} {% endmacro %} {% macro choices(name, choices_list, checked=none, class='') %}
{% for choice, label in choices_list %} {% endfor %}
{% endmacro %} {% macro int(name, label="", init=0) %} {{ field("number", name=name, label=label, value=init, step=1, min=0) }} {% endmacro %} {% macro checkbox(name, label="", checked=false) %} {% set cur_id = name|next_gidx %} {% endmacro %} {% macro text(name, label="", value=none, class='', placeholder=none, required=false, pattern=none, title=none, autocomplete=none, icon_left=none, icon_right=none) %} {{ field("text", name=name, label=label, value=value, class=class, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'placeholder': placeholder, 'pattern': pattern, 'title': title, 'autocomplete': autocomplete}, caller=caller) }} {% endmacro %} {% macro password(name, label="", value=none, required=false, minlength=none, icon_left=none, icon_right=none) %} {{ field("password", name=name, label=label, value=value, required=required, icon_left=icon_left, icon_right=icon_right, attrs={'minlength': minlength}) }} {% endmacro %} {% macro email(name, label="", required=false, value=none, icon_left=none, icon_right=none) %} {{ field("email", name=name, label=label, value=value, required=required, icon_left=icon_left, icon_right=icon_right) }} {% endmacro %} {% macro date(name, label="", required=false) %} {{ field("date", name=name, label=label, required=required) }} {% endmacro %} {% macro url(name, label="", class="", placeholder=none, required=false, title=none, pattern=none) %} {{ field("url", name=name, label=label, required=required, attrs={'placeholder': placeholder, 'title': title, 'pattern': pattern}) }} {% endmacro %} {% macro file(name, label="", required=false) %} {{ field("file", name=name, label=label, required=required) }} {% endmacro %} {% macro textarea(name, label="", rows=none, cols=50, placeholder='', help='', required=false) %}
{% set cur_id = name|next_gidx %} {% if label %} {% endif %} {% if help %}

{{help}}

{% endif %}
{% endmacro %} {% macro meta(name, value) %} {% endmacro %} {% macro submit(text=_("Send"), id=none, class='', attrs=none) %} {# submit button @param text(str): label of the button @param id(none, str): id of the element #}
{{text}}
{% endmacro %}