{# Widgets #} {% block form_widget %} {% spaceless %}
{{ block('field_rows') }} {{ form_rest(form) }}
{% endspaceless %} {% endblock form_widget %} {% block collection_widget %} {% spaceless %} {% if prototype is defined %} {% set attr = attr|merge({'data-prototype': form_row(prototype) }) %} {% endif %} {{ block('form_widget') }} {% endspaceless %} {% endblock collection_widget %} {% block textarea_widget %} {% spaceless %} {% endspaceless %} {% endblock textarea_widget %} {% block choice_widget %} {% spaceless %} {% if expanded %} {% else %} {% endif %} {% endspaceless %} {% endblock choice_widget %} {% block checkbox_widget %} {% spaceless %} {% endspaceless %} {% endblock checkbox_widget %} {% block radio_widget %} {% spaceless %} {% endspaceless %} {% endblock radio_widget %} {% block datetime_widget %} {% spaceless %} {% if widget == 'single_text' %} {{ block('field_widget') }} {% else %}
{{ form_errors(form.date) }} {{ form_errors(form.time) }} {{ form_widget(form.date) }} {{ form_widget(form.time) }}
{% endif %} {% endspaceless %} {% endblock datetime_widget %} {% block date_widget %} {% spaceless %} {% if widget == 'single_text' %} {{ block('field_widget') }} {% else %}
{{ date_pattern|replace({ '{{ year }}': form_widget(form.year), '{{ month }}': form_widget(form.month), '{{ day }}': form_widget(form.day), })|raw }}
{% endif %} {% endspaceless %} {% endblock date_widget %} {% block time_widget %} {% spaceless %} {% if widget == 'single_text' %} {{ block('field_widget') }} {% else %}
{{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }}:{{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }}{% if with_seconds %}:{{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}{% endif %}
{% endif %} {% endspaceless %} {% endblock time_widget %} {% block number_widget %} {% spaceless %} {# type="number" doesn't work with floats #} {% set type = type|default('text') %} {{ block('field_widget') }} {% endspaceless %} {% endblock number_widget %} {% block integer_widget %} {% spaceless %} {% set type = type|default('number') %} {{ block('field_widget') }} {% endspaceless %} {% endblock integer_widget %} {% block money_widget %} {% spaceless %} {{ money_pattern|replace({ '{{ widget }}': block('field_widget') })|raw }} {% endspaceless %} {% endblock money_widget %} {% block url_widget %} {% spaceless %} {% set type = type|default('url') %} {{ block('field_widget') }} {% endspaceless %} {% endblock url_widget %} {% block search_widget %} {% spaceless %} {% set type = type|default('search') %} {{ block('field_widget') }} {% endspaceless %} {% endblock search_widget %} {% block percent_widget %} {% spaceless %} {% set type = type|default('text') %} {{ block('field_widget') }} % {% endspaceless %} {% endblock percent_widget %} {% block field_widget %} {% spaceless %} {% set type = type|default('text') %} {% endspaceless %} {% endblock field_widget %} {% block password_widget %} {% spaceless %} {% set type = type|default('password') %} {{ block('field_widget') }} {% endspaceless %} {% endblock password_widget %} {% block hidden_widget %} {% set type = type|default('hidden') %} {{ block('field_widget') }} {% endblock hidden_widget %} {% block email_widget %} {% spaceless %} {% set type = type|default('email') %} {{ block('field_widget') }} {% endspaceless %} {% endblock email_widget %} {# Labels #} {% block generic_label %} {% spaceless %} {% if required %} {% set attr = attr|merge({'class': attr.class|default('') ~ ' required'}) %} {% endif %} {% if in_list_checkbox is defined and in_list_checkbox and widget is defined %} {{ widget|raw }} {{ label|trans }} {% else %} {{ label|trans }} {% endif %} {% endspaceless %} {% endblock %} {% block field_label %} {% spaceless %} {% set attr = attr|merge({'for': id}) %} {{ block('generic_label') }} {% endspaceless %} {% endblock field_label %} {% block form_label %} {% spaceless %} {{ block('generic_label') }} {% endspaceless %} {% endblock form_label %} {# Rows #} {% block repeated_row %} {% spaceless %} {{ block('field_rows') }} {% endspaceless %} {% endblock repeated_row %} {% block field_row %} {% spaceless %}
{{ form_label(form, label|default(null)) }}
{{ form_widget(form) }} {{ form_errors(form) }}
{% endspaceless %} {% endblock field_row %} {% block hidden_row %} {{ form_widget(form) }} {% endblock hidden_row %} {# Misc #} {% block field_enctype %} {% spaceless %} {% if multipart %}enctype="multipart/form-data"{% endif %} {% endspaceless %} {% endblock field_enctype %} {% block field_errors %} {% spaceless %} {% if errors|length > 0 %} {% if not form.hasParent or 'repeated' in form.get('types') %}
{% endif %} {% for error in errors %} {% if loop.first %} {{ error.messageTemplate|trans(error.messageParameters, 'validators') }} {% endif %} {% endfor %} {% if not form.hasParent or 'repeated' in form.get('types') %}
{% endif %} {% endif %} {% endspaceless %} {% endblock field_errors %} {% block field_rest %} {% spaceless %} {% for child in form %} {% if not child.rendered %} {{ form_row(child) }} {% endif %} {% endfor %} {% endspaceless %} {% endblock field_rest %} {# Support #} {% block field_rows %} {% spaceless %} {{ form_errors(form) }} {% for child in form %} {{ form_row(child) }} {% endfor %} {% endspaceless %} {% endblock field_rows %} {% block widget_attributes %} {% spaceless %} id="{{ id }}" name="{{ full_name }}"{% if read_only %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %} {% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %} {% endspaceless %} {% endblock widget_attributes %} {% block widget_container_attributes %} {% spaceless %} id="{{ id }}" {% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %} {% endspaceless %} {% endblock widget_container_attributes %}