# HG changeset patch # User Goffi # Date 1529536140 -7200 # Node ID b84d20af0ed30d94b4cff3179ff8b3f9f6d353fe # Parent da2c0dc7c1ff02cf16cc79811e13faa171e9ae25 macros (field, form, textbox): general improvments: - use a generic "field" macro for most fields - added "required" class on input labels if suitable - extra kw args are used as input field attributes. Same thing for forms - better handling of id if label is missing - added blog_text macro in textbox for basic text blog input - textbox is more customisable (class and textarea class can be specified) diff -r da2c0dc7c1ff -r b84d20af0ed3 sat_templates/default/input/field.html --- a/sat_templates/default/input/field.html Thu Jun 21 01:02:33 2018 +0200 +++ b/sat_templates/default/input/field.html Thu Jun 21 01:09:00 2018 +0200 @@ -1,43 +1,70 @@ +{# 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 #} + + {% set cur_id = name|next_gidx %} + {% if label %} + + {% endif %} + + +{% endmacro %} + {% macro choices(name, choices_list, checked=none) %} {% 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, **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) %} - {# single line text field - additional kwargs will be passed as attributes #} - - - + {{ field("text", name=name, label=label, required=required, placeholder=placeholder, **kwargs) }} {% endmacro %} {% macro password(name, label="", required=false) %} - {# password field - additional kwargs will be passed as attributes #} - - - + {{ field("password", name=name, label=label, required=required, **kwargs) }} {% endmacro %} {% macro email(name, label="", required=false) %} - {# email field - additional kwargs will be passed as attributes #} - - - + {{ 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 textarea(name, rows=10, cols=50, placeholder='', required=false) %} - +{% 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) %} +
+ {% set cur_id = name|next_gidx %} + {% if label %} + + {% endif %} + +
{% endmacro %} {% macro meta(name, value) %} @@ -45,5 +72,5 @@ {% endmacro %} {% macro submit(text=_("Send")) %} - + {% endmacro %} diff -r da2c0dc7c1ff -r b84d20af0ed3 sat_templates/default/input/form.html --- a/sat_templates/default/input/form.html Thu Jun 21 01:02:33 2018 +0200 +++ b/sat_templates/default/input/form.html Thu Jun 21 01:09:00 2018 +0200 @@ -1,5 +1,5 @@ {% macro form(action='', class='') %} -
+ {% if csrf_token is defined %} {% endif %} diff -r da2c0dc7c1ff -r b84d20af0ed3 sat_templates/default/input/textbox.html --- a/sat_templates/default/input/textbox.html Thu Jun 21 01:02:33 2018 +0200 +++ b/sat_templates/default/input/textbox.html Thu Jun 21 01:09:00 2018 +0200 @@ -1,5 +1,5 @@ {% import 'input/form.html' as form with context %} -{% import 'input/field.html' as field %} +{% import 'input/field.html' as field with context %} {% macro head(service, node, type="textbox") %} {# include data needed to identify the node to use for commenting #} @@ -12,22 +12,30 @@ {% endmacro %} -{% macro textbox(service, node, action='', placeholder='', submit_label=_("Send"), type="textbox") %} - {# generic content area for comments/blog posts/etc. Only a body by default, but new elements can be +{% macro textbox(service, node, action='', placeholder='', + submit_label=_("Send"), type="textbox", + class='', ta_class='') %} + {# generic content area for comments/blog posts/etc. + Only a body by default, but new elements can be added by using this macro with call #} {% set extra_content = caller() if caller is defined else '' %} - {% call form.form(action=action, class="textbox") %} + {% call form.form(action=action, class="textbox " + class) %} {{ head(service, node, type) }} {{ extra_content }} - {{ field.textarea("body", placeholder=placeholder, required=True) }} + {{ field.textarea("body", placeholder=placeholder, required=True, + class=ta_class) }} {{ submit(label=submit_label) }} {% endcall %} {% endmacro %} -{% macro comment(service, node, action='', placeholder=_("Your comment")) %} +{% macro blog_text(service, node, action='', placeholder=_("Your comment")) %} {{ textbox(service, node, action=action, placeholder=placeholder, type="comment") }} {% endmacro %} +{% macro comment(service, node, action='', placeholder=_("Your comment"), class='box--medium') %} + {{ textbox(service, node, action=action, placeholder=placeholder, type="comment", class=class) }} +{% endmacro %} + {% macro comment_or_login(service, node, action='', placeholder=none) %} {# show comment form a a message asking to log in login is checked using profile #}