123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476 |
- {# Widgets #}
- {%- block form_widget -%}
- {% if compound %}
- {{- block('form_widget_compound') -}}
- {% else %}
- {{- block('form_widget_simple') -}}
- {% endif %}
- {%- endblock form_widget -%}
- {%- block form_widget_simple -%}
- {%- set type = type|default('text') -%}
- {%- if type == 'range' or type == 'color' -%}
- {# Attribute "required" is not supported #}
- {%- set required = false -%}
- {%- endif -%}
- <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
- {%- endblock form_widget_simple -%}
- {%- block form_widget_compound -%}
- <div {{ block('widget_container_attributes') }}>
- {%- if form is rootform -%}
- {{ form_errors(form) }}
- {%- endif -%}
- {{- block('form_rows') -}}
- {{- form_rest(form) -}}
- </div>
- {%- endblock form_widget_compound -%}
- {%- block collection_widget -%}
- {% if prototype is defined and not prototype.rendered %}
- {%- set attr = attr|merge({'data-prototype': form_row(prototype) }) -%}
- {% endif %}
- {{- block('form_widget') -}}
- {%- endblock collection_widget -%}
- {%- block textarea_widget -%}
- <textarea {{ block('widget_attributes') }}>{{ value }}</textarea>
- {%- endblock textarea_widget -%}
- {%- block choice_widget -%}
- {% if expanded %}
- {{- block('choice_widget_expanded') -}}
- {% else %}
- {{- block('choice_widget_collapsed') -}}
- {% endif %}
- {%- endblock choice_widget -%}
- {%- block choice_widget_expanded -%}
- <div {{ block('widget_container_attributes') }}>
- {%- for child in form %}
- {{- form_widget(child) -}}
- {{- form_label(child, null, {translation_domain: choice_translation_domain}) -}}
- {% endfor -%}
- </div>
- {%- endblock choice_widget_expanded -%}
- {%- block choice_widget_collapsed -%}
- {%- if required and placeholder is none and not placeholder_in_choices and not multiple and (attr.size is not defined or attr.size <= 1) -%}
- {% set required = false %}
- {%- endif -%}
- <select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
- {%- if placeholder is not none -%}
- <option value=""{% if required and value is empty %} selected="selected"{% endif %}>{{ placeholder != '' ? (translation_domain is same as(false) ? placeholder : placeholder|trans({}, translation_domain)) }}</option>
- {%- endif -%}
- {%- if preferred_choices|length > 0 -%}
- {% set options = preferred_choices %}
- {% set render_preferred_choices = true %}
- {{- block('choice_widget_options') -}}
- {%- if choices|length > 0 and separator is not none -%}
- <option disabled="disabled">{{ separator }}</option>
- {%- endif -%}
- {%- endif -%}
- {%- set options = choices -%}
- {%- set render_preferred_choices = false -%}
- {{- block('choice_widget_options') -}}
- </select>
- {%- endblock choice_widget_collapsed -%}
- {%- block choice_widget_options -%}
- {% for group_label, choice in options %}
- {%- if choice is iterable -%}
- <optgroup label="{{ choice_translation_domain is same as(false) ? group_label : group_label|trans({}, choice_translation_domain) }}">
- {% set options = choice %}
- {{- block('choice_widget_options') -}}
- </optgroup>
- {%- else -%}
- <option value="{{ choice.value }}"{% if choice.attr %}{% with { attr: choice.attr } %}{{ block('attributes') }}{% endwith %}{% endif %}{% if not render_preferred_choices|default(false) and choice is selectedchoice(value) %} selected="selected"{% endif %}>{{ choice_translation_domain is same as(false) ? choice.label : choice.label|trans(choice.labelTranslationParameters, choice_translation_domain) }}</option>
- {%- endif -%}
- {% endfor %}
- {%- endblock choice_widget_options -%}
- {%- block checkbox_widget -%}
- <input type="checkbox" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
- {%- endblock checkbox_widget -%}
- {%- block radio_widget -%}
- <input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
- {%- endblock radio_widget -%}
- {%- block datetime_widget -%}
- {% if widget == 'single_text' %}
- {{- block('form_widget_simple') -}}
- {%- else -%}
- <div {{ block('widget_container_attributes') }}>
- {{- form_errors(form.date) -}}
- {{- form_errors(form.time) -}}
- {{- form_widget(form.date) -}}
- {{- form_widget(form.time) -}}
- </div>
- {%- endif -%}
- {%- endblock datetime_widget -%}
- {%- block date_widget -%}
- {%- if widget == 'single_text' -%}
- {{ block('form_widget_simple') }}
- {%- else -%}
- <div {{ block('widget_container_attributes') }}>
- {{- date_pattern|replace({
- '{{ year }}': form_widget(form.year),
- '{{ month }}': form_widget(form.month),
- '{{ day }}': form_widget(form.day),
- })|raw -}}
- </div>
- {%- endif -%}
- {%- endblock date_widget -%}
- {%- block time_widget -%}
- {%- if widget == 'single_text' -%}
- {{ block('form_widget_simple') }}
- {%- else -%}
- {%- set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} -%}
- <div {{ block('widget_container_attributes') }}>
- {{ form_widget(form.hour, vars) }}{% if with_minutes %}:{{ form_widget(form.minute, vars) }}{% endif %}{% if with_seconds %}:{{ form_widget(form.second, vars) }}{% endif %}
- </div>
- {%- endif -%}
- {%- endblock time_widget -%}
- {%- block dateinterval_widget -%}
- {%- if widget == 'single_text' -%}
- {{- block('form_widget_simple') -}}
- {%- else -%}
- <div {{ block('widget_container_attributes') }}>
- {{- form_errors(form) -}}
- <table class="{{ table_class|default('') }}" role="presentation">
- <thead>
- <tr>
- {%- if with_years %}<th>{{ form_label(form.years) }}</th>{% endif -%}
- {%- if with_months %}<th>{{ form_label(form.months) }}</th>{% endif -%}
- {%- if with_weeks %}<th>{{ form_label(form.weeks) }}</th>{% endif -%}
- {%- if with_days %}<th>{{ form_label(form.days) }}</th>{% endif -%}
- {%- if with_hours %}<th>{{ form_label(form.hours) }}</th>{% endif -%}
- {%- if with_minutes %}<th>{{ form_label(form.minutes) }}</th>{% endif -%}
- {%- if with_seconds %}<th>{{ form_label(form.seconds) }}</th>{% endif -%}
- </tr>
- </thead>
- <tbody>
- <tr>
- {%- if with_years %}<td>{{ form_widget(form.years) }}</td>{% endif -%}
- {%- if with_months %}<td>{{ form_widget(form.months) }}</td>{% endif -%}
- {%- if with_weeks %}<td>{{ form_widget(form.weeks) }}</td>{% endif -%}
- {%- if with_days %}<td>{{ form_widget(form.days) }}</td>{% endif -%}
- {%- if with_hours %}<td>{{ form_widget(form.hours) }}</td>{% endif -%}
- {%- if with_minutes %}<td>{{ form_widget(form.minutes) }}</td>{% endif -%}
- {%- if with_seconds %}<td>{{ form_widget(form.seconds) }}</td>{% endif -%}
- </tr>
- </tbody>
- </table>
- {%- if with_invert %}{{ form_widget(form.invert) }}{% endif -%}
- </div>
- {%- endif -%}
- {%- endblock dateinterval_widget -%}
- {%- block number_widget -%}
- {# type="number" doesn't work with floats in localized formats #}
- {%- set type = type|default('text') -%}
- {{ block('form_widget_simple') }}
- {%- endblock number_widget -%}
- {%- block integer_widget -%}
- {%- set type = type|default('number') -%}
- {{ block('form_widget_simple') }}
- {%- endblock integer_widget -%}
- {%- block money_widget -%}
- {{ money_pattern|form_encode_currency(block('form_widget_simple')) }}
- {%- endblock money_widget -%}
- {%- block url_widget -%}
- {%- set type = type|default('url') -%}
- {{ block('form_widget_simple') }}
- {%- endblock url_widget -%}
- {%- block search_widget -%}
- {%- set type = type|default('search') -%}
- {{ block('form_widget_simple') }}
- {%- endblock search_widget -%}
- {%- block percent_widget -%}
- {%- set type = type|default('text') -%}
- {{ block('form_widget_simple') }}{% if symbol %} {{ symbol|default('%') }}{% endif %}
- {%- endblock percent_widget -%}
- {%- block password_widget -%}
- {%- set type = type|default('password') -%}
- {{ block('form_widget_simple') }}
- {%- endblock password_widget -%}
- {%- block hidden_widget -%}
- {%- set type = type|default('hidden') -%}
- {{ block('form_widget_simple') }}
- {%- endblock hidden_widget -%}
- {%- block email_widget -%}
- {%- set type = type|default('email') -%}
- {{ block('form_widget_simple') }}
- {%- endblock email_widget -%}
- {%- block range_widget -%}
- {% set type = type|default('range') %}
- {{- block('form_widget_simple') -}}
- {%- endblock range_widget %}
- {%- block button_widget -%}
- {%- if label is empty -%}
- {%- if label_format is not empty -%}
- {% set label = label_format|replace({
- '%name%': name,
- '%id%': id,
- }) %}
- {%- elseif label is not same as(false) -%}
- {% set label = name|humanize %}
- {%- endif -%}
- {%- endif -%}
- <button type="{{ type|default('button') }}" {{ block('button_attributes') }}>
- {%- if translation_domain is same as(false) -%}
- {%- if label_html is same as(false) -%}
- {{- label -}}
- {%- else -%}
- {{- label|raw -}}
- {%- endif -%}
- {%- else -%}
- {%- if label_html is same as(false) -%}
- {{- label|trans(label_translation_parameters, translation_domain) -}}
- {%- else -%}
- {{- label|trans(label_translation_parameters, translation_domain)|raw -}}
- {%- endif -%}
- {%- endif -%}
- </button>
- {%- endblock button_widget -%}
- {%- block submit_widget -%}
- {%- set type = type|default('submit') -%}
- {{ block('button_widget') }}
- {%- endblock submit_widget -%}
- {%- block reset_widget -%}
- {%- set type = type|default('reset') -%}
- {{ block('button_widget') }}
- {%- endblock reset_widget -%}
- {%- block tel_widget -%}
- {%- set type = type|default('tel') -%}
- {{ block('form_widget_simple') }}
- {%- endblock tel_widget -%}
- {%- block color_widget -%}
- {%- set type = type|default('color') -%}
- {{ block('form_widget_simple') }}
- {%- endblock color_widget -%}
- {%- block week_widget -%}
- {%- if widget == 'single_text' -%}
- {{ block('form_widget_simple') }}
- {%- else -%}
- {%- set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} -%}
- <div {{ block('widget_container_attributes') }}>
- {{ form_widget(form.year, vars) }}-{{ form_widget(form.week, vars) }}
- </div>
- {%- endif -%}
- {%- endblock week_widget -%}
- {# Labels #}
- {%- block form_label -%}
- {% if label is not same as(false) -%}
- {% if not compound -%}
- {% set label_attr = label_attr|merge({'for': id}) %}
- {%- endif -%}
- {% if required -%}
- {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
- {%- endif -%}
- {% if label is empty -%}
- {%- if label_format is not empty -%}
- {% set label = label_format|replace({
- '%name%': name,
- '%id%': id,
- }) %}
- {%- else -%}
- {% set label = name|humanize %}
- {%- endif -%}
- {%- endif -%}
- <{{ element|default('label') }}{% if label_attr %}{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}{% endif %}>
- {%- if translation_domain is same as(false) -%}
- {%- if label_html is same as(false) -%}
- {{- label -}}
- {%- else -%}
- {{- label|raw -}}
- {%- endif -%}
- {%- else -%}
- {%- if label_html is same as(false) -%}
- {{- label|trans(label_translation_parameters, translation_domain) -}}
- {%- else -%}
- {{- label|trans(label_translation_parameters, translation_domain)|raw -}}
- {%- endif -%}
- {%- endif -%}
- </{{ element|default('label') }}>
- {%- endif -%}
- {%- endblock form_label -%}
- {%- block button_label -%}{%- endblock -%}
- {# Help #}
- {% block form_help -%}
- {%- if help is not empty -%}
- {%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' help-text')|trim}) -%}
- <p id="{{ id }}_help"{% with { attr: help_attr } %}{{ block('attributes') }}{% endwith %}>
- {%- if translation_domain is same as(false) -%}
- {%- if help_html is same as(false) -%}
- {{- help -}}
- {%- else -%}
- {{- help|raw -}}
- {%- endif -%}
- {%- else -%}
- {%- if help_html is same as(false) -%}
- {{- help|trans(help_translation_parameters, translation_domain) -}}
- {%- else -%}
- {{- help|trans(help_translation_parameters, translation_domain)|raw -}}
- {%- endif -%}
- {%- endif -%}
- </p>
- {%- endif -%}
- {%- endblock form_help %}
- {# Rows #}
- {%- block repeated_row -%}
- {#
- No need to render the errors here, as all errors are mapped
- to the first child (see RepeatedTypeValidatorExtension).
- #}
- {{- block('form_rows') -}}
- {%- endblock repeated_row -%}
- {%- block form_row -%}
- {%- set widget_attr = {} -%}
- {%- if help is not empty -%}
- {%- set widget_attr = {attr: {'aria-describedby': id ~"_help"}} -%}
- {%- endif -%}
- <div{% with {attr: row_attr} %}{{ block('attributes') }}{% endwith %}>
- {{- form_label(form) -}}
- {{- form_errors(form) -}}
- {{- form_widget(form, widget_attr) -}}
- {{- form_help(form) -}}
- </div>
- {%- endblock form_row -%}
- {%- block button_row -%}
- {%- set widget_attr = {} -%}
- {{- form_widget(form, {'attr': widget_attr}) -}}
- {%- endblock button_row -%}
- {%- block hidden_row -%}
- {{ form_widget(form) }}
- {%- endblock hidden_row -%}
- {# Misc #}
- {%- block form -%}
- {{ form_start(form) }}
- {{- form_widget(form) -}}
- {{ form_end(form) }}
- {%- endblock form -%}
- {%- block form_start -%}
- {%- do form.setMethodRendered() -%}
- {% set method = method|upper %}
- {%- if method in ["GET", "POST"] -%}
- {% set form_method = method %}
- {%- else -%}
- {% set form_method = "POST" %}
- {%- endif -%}
- <form{% if name != '' %} name="{{ name }}"{% endif %} method="{{ form_method|lower }}"{% if action != '' %} action="{{ action }}"{% endif %}{{ block('attributes') }}{% if multipart %} enctype="multipart/form-data"{% endif %}>
- {%- if form_method != method -%}
- <input type="hidden" name="_method" value="{{ method }}" />
- {%- endif -%}
- {%- endblock form_start -%}
- {%- block form_end -%}
- {%- if not render_rest is defined or render_rest -%}
- {{ form_rest(form) }}
- {%- endif -%}
- </form>
- {%- endblock form_end -%}
- {%- block form_errors -%}
- {%- if errors|length > 0 -%}
- <ul>
- {%- for error in errors -%}
- <li>{{ error.message }}</li>
- {%- endfor -%}
- </ul>
- {%- endif -%}
- {%- endblock form_errors -%}
- {%- block form_rest -%}
- {% for child in form -%}
- {% if not child.rendered %}
- {{- form_row(child) -}}
- {% endif %}
- {%- endfor -%}
- {% if not form.methodRendered and form is rootform %}
- {%- do form.setMethodRendered() -%}
- {% set method = method|upper %}
- {%- if method in ["GET", "POST"] -%}
- {% set form_method = method %}
- {%- else -%}
- {% set form_method = "POST" %}
- {%- endif -%}
- {%- if form_method != method -%}
- <input type="hidden" name="_method" value="{{ method }}" />
- {%- endif -%}
- {% endif -%}
- {% endblock form_rest %}
- {# Support #}
- {%- block form_rows -%}
- {% for child in form|filter(child => not child.rendered) %}
- {{- form_row(child) -}}
- {% endfor %}
- {%- endblock form_rows -%}
- {%- block widget_attributes -%}
- id="{{ id }}" name="{{ full_name }}"
- {%- if disabled %} disabled="disabled"{% endif -%}
- {%- if required %} required="required"{% endif -%}
- {{ block('attributes') }}
- {%- endblock widget_attributes -%}
- {%- block widget_container_attributes -%}
- {%- if id is not empty %}id="{{ id }}"{% endif -%}
- {{ block('attributes') }}
- {%- endblock widget_container_attributes -%}
- {%- block button_attributes -%}
- id="{{ id }}" name="{{ full_name }}"{% if disabled %} disabled="disabled"{% endif -%}
- {{ block('attributes') }}
- {%- endblock button_attributes -%}
- {% block attributes -%}
- {%- for attrname, attrvalue in attr -%}
- {{- " " -}}
- {%- if attrname in ['placeholder', 'title'] -%}
- {{- attrname }}="{{ translation_domain is same as(false) or attrvalue is null ? attrvalue : attrvalue|trans(attr_translation_parameters, translation_domain) }}"
- {%- elseif attrvalue is same as(true) -%}
- {{- attrname }}="{{ attrname }}"
- {%- elseif attrvalue is not same as(false) -%}
- {{- attrname }}="{{ attrvalue }}"
- {%- endif -%}
- {%- endfor -%}
- {%- endblock attributes -%}
|