diff --git a/flask_bootstrap/templates/bootstrap/wtf4.html b/flask_bootstrap/templates/bootstrap/wtf4.html new file mode 100644 index 00000000..87adc440 --- /dev/null +++ b/flask_bootstrap/templates/bootstrap/wtf4.html @@ -0,0 +1,311 @@ +{% set global={} %} +{%- macro get_form_class(type, extra=None) -%} + {%- if True %} class="form + {%- if extra %} {{ extra }}{% endif -%} + {%- if type == "horizontal" %} form-horizontal + {%- elif type == "inline" %} form-inline + {%- endif %}{%- if form.was_validated %} was-validated{% endif -%}" + {%- endif -%} +{%- endmacro -%} + +{%- macro get_field_div_class(default, type, extra=None) -%} + {%- if True %} class="{{- default -}} + {%- if type == "horizontal" %} row{% endif -%} + {%- if extra and extra[0] %} {{ extra[0] }}{% endif -%}" + {%- endif -%} +{%- endmacro -%} + +{%- macro get_field_input_class(default, type, extra=None) -%} + {%- if True %} class="{{- default -}} + {%- if extra and extra[1] %} {{ extra[1] }}{% endif -%} + {%- if form.form_type == "horizontal" and form.horizontal_columns %} + {{- " col-{0}-{1}".format(form.horizontal_columns[0], form.horizontal_columns[2]) -}} + {% elif form.form_type == "inline" %} mr-sm-2 + {%- endif -%}" + {%- endif -%} +{%- endmacro -%} + +{%- macro get_label(field) -%} + {%- if field.label.text %} + + {% elif form.form_type == "horizontal" and form.horizontal_columns %} +
+ {% endif -%} +{%- endmacro -%} + +{%- macro get_enctype(form) -%} +{# The enctype attribute specifies how the form-data should be encoded when submitting it to the server. #} + {%- if form.enctype %} enctype="{{ form.enctype }}"{% else -%} + {%- for field in form -%} + {% if field.type == 'FileField' %} enctype="multipart/form-data" + {%- set _ = global.update({'upload_file': True}) -%} + {%- break -%} + {% endif %} + {%- endfor -%} + {% endif -%} +{%- endmacro -%} + +{%- macro get_basic_info(item) -%} +{# Form field basic information #} + {%- if item.id %} id="{{ item.id }}"{% endif -%} + {%- if item.name %} name="{{ item.name }}"{% endif -%} + {%- if item.description %} aria-describedby="{{ item.name|safe + '_helper' }}"{% endif -%} + {%- if item.render_kw %}{{ item.render_kw|xmlattr }}{% endif -%} + {%- if item.data and item.type != 'PasswordField' %} value="{{- item.data -}}"{% endif -%} +{%- endmacro -%} + +{%- macro init_form_group(field) -%} +{# Initial form group layout -#} + {%- if form.form_type != "inline" -%} +{{ error }}
+ {%- endfor %} + {%- endif %} + {%- endfor %} + {%- endif %} +{%- endmacro -%} + +{%- macro form_field(field) -%} +{# Get form field #} + {%- if field.type in ['TextField', 'SearchField', 'PasswordField', + 'TelField', 'URLField', 'EmailField', 'TimeField', 'DateField', + 'DateTimeField', 'DateTimeLocalField', 'ColorField'] -%} + {{- generate_input_field(field, field.widget.input_type) -}} + {%- elif field.type == 'TextAreaField' -%} + {{- generate_textarea_field(field) -}} + {%- elif field.type in ['IntegerField', 'IntegerRangeField'] -%} + {{- generate_number_field(field, field.widget.input_type, '1') -}} + {%- elif field.type in ['DecimalField', 'DecimalRangeField'] -%} + {{- generate_number_field(field, field.widget.input_type, 'any') -}} + {%- elif field.type == 'SelectField' -%} + {{- generate_select_field(field) -}} + {%- elif field.type == 'SelectMultipleField' -%} + {{- generate_select_field(field, True) -}} + {%- elif field.type == 'RadioField' -%} + {{- generate_radio_field(field) -}} + {%- elif field.type == 'BooleanField' -%} + {{- generate_checkbox_field(field) -}} + {%- elif field.type == 'FileField' -%} + {{- generate_file_field(field) -}} + {%- elif field.type == 'SubmitField' -%} + {{- generate_submit_field(field) -}} + {% endif -%} +{%- endmacro -%} + +{%- block form %} +{% endblock form %} \ No newline at end of file