|
2 | 2 |
|
3 | 3 | {# Widgets #}
|
4 | 4 |
|
| 5 | +{% block money_widget -%} |
| 6 | + {% if not valid %} |
| 7 | + {% set group_class = ' form-control is-invalid' %} |
| 8 | + {% set valid = true %} |
| 9 | + {% endif %} |
| 10 | + {{- parent() -}} |
| 11 | +{%- endblock money_widget %} |
| 12 | + |
| 13 | +{% block datetime_widget -%} |
| 14 | + {%- if widget != 'single_text' and not valid -%} |
| 15 | + {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control is-invalid')|trim}) -%} |
| 16 | + {% set valid = true %} |
| 17 | + {%- endif -%} |
| 18 | + {{- parent() -}} |
| 19 | +{%- endblock datetime_widget %} |
| 20 | + |
| 21 | +{% block date_widget -%} |
| 22 | + {%- if widget != 'single_text' and not valid -%} |
| 23 | + {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control is-invalid')|trim}) -%} |
| 24 | + {% set valid = true %} |
| 25 | + {%- endif -%} |
| 26 | + {{- parent() -}} |
| 27 | +{%- endblock date_widget %} |
| 28 | + |
| 29 | +{% block time_widget -%} |
| 30 | + {%- if widget != 'single_text' and not valid -%} |
| 31 | + {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control is-invalid')|trim}) -%} |
| 32 | + {% set valid = true %} |
| 33 | + {%- endif -%} |
| 34 | + {{- parent() -}} |
| 35 | +{%- endblock time_widget %} |
| 36 | + |
| 37 | +{% block dateinterval_widget -%} |
| 38 | + {%- if widget != 'single_text' and not valid -%} |
| 39 | + {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control is-invalid')|trim}) -%} |
| 40 | + {% set valid = true %} |
| 41 | + {%- endif -%} |
| 42 | + {{- parent() -}} |
| 43 | +{%- endblock dateinterval_widget %} |
| 44 | + |
| 45 | +{% block percent_widget -%} |
| 46 | + <div class="input-group{{ not valid ? ' form-control is-invalid' }}"> |
| 47 | + {% set valid = true %} |
| 48 | + {{- block('form_widget_simple') -}} |
| 49 | + <span class="input-group-addon">%</span> |
| 50 | + </div> |
| 51 | +{%- endblock percent_widget %} |
| 52 | + |
5 | 53 | {% block form_widget_simple -%}
|
6 | 54 | {% if type is not defined or type != 'hidden' %}
|
7 | 55 | {%- set attr = attr|merge({class: (attr.class|default('') ~ ' form-control' ~ (type|default('') == 'file' ? '-file' : ''))|trim}) -%}
|
|
11 | 59 |
|
12 | 60 | {%- block widget_attributes -%}
|
13 | 61 | {%- if not valid %}
|
14 |
| - {% set attr = attr|merge({class: (attr.class|default('') ~ ' is-invalid')|trim}) %} |
| 62 | + {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control is-invalid')|trim}) %} |
15 | 63 | {% endif -%}
|
16 | 64 | {{ parent() }}
|
17 | 65 | {%- endblock widget_attributes -%}
|
|
27 | 75 | {%- if 'checkbox-inline' in parent_label_class -%}
|
28 | 76 | {{- form_label(form, null, { widget: parent() }) -}}
|
29 | 77 | {%- else -%}
|
30 |
| - <div class="form-check"> |
| 78 | + <div class="form-check{{ not valid ? ' form-control is-invalid' }}"> |
31 | 79 | {{- form_label(form, null, { widget: parent() }) -}}
|
32 | 80 | </div>
|
33 | 81 | {%- endif -%}
|
|
39 | 87 | {%- if 'radio-inline' in parent_label_class -%}
|
40 | 88 | {{- form_label(form, null, { widget: parent() }) -}}
|
41 | 89 | {%- else -%}
|
42 |
| - <div class="form-check"> |
| 90 | + <div class="form-check{{ not valid ? ' form-control is-invalid' }}"> |
43 | 91 | {{- form_label(form, null, { widget: parent() }) -}}
|
44 | 92 | </div>
|
45 | 93 | {%- endif -%}
|
|
55 | 103 | }) -}}
|
56 | 104 | {% endfor -%}
|
57 | 105 | {%- else -%}
|
| 106 | + {%- if not valid -%} |
| 107 | + {%- set attr = attr|merge({class: (attr.class|default('') ~ ' form-control is-invalid')|trim}) %} |
| 108 | + {%- endif -%} |
58 | 109 | <div {{ block('widget_container_attributes') }}>
|
59 | 110 | {%- for child in form %}
|
60 | 111 | {{- form_widget(child, {
|
|
0 commit comments