{% extends 'form_div_layout.html.twig' %} {% use '@Lists/form/forms.html.twig' %} {# https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig #} {# Widgets #} {%- block form_widget -%} {% if compound %} {{- block('form_widget_compound') -}} {% else %} {{- block('form_widget_simple') -}} {% endif %} {%- endblock form_widget -%} {# INPUT #} {% block form_widget_simple -%} {%- set type = type|default('text') -%} {% set attr = attr|merge({class: (attr.class|default(' ') ~ ' oka-input')}) %} {% set isDropzone = attr['data-dropzone']|default(false) %} {%- if type == 'range' or type == 'color' -%} {# Attribute "required" is not supported #} {%- set required = false -%} {%- endif -%} {%- if type == 'search' -%} {% set attr = attr|merge({class: (attr.class|default(' ') ~ ' search')}) %} {%- else -%} {%- if isDropzone -%} {% set dz_id = attr['data-dz-id']|default(false) %} {% set dz_url = attr['data-dz-url']|default(false) %} {% set dz_default = attr['data-dz-default']|default(false) %}
{%- else -%} {%- endif -%} {%- endif -%} {# BOUTON affiche PASSWORD {%- if type == 'password' -%} {%- endif -%} #} {%- endblock form_widget_simple %} {# SUBMIT #} {% block submit_widget -%} {# %- set attr = attr|merge({class: (attr.class|default('btn-primary'))|trim}) -% #} {%- set attr = attr|merge({class: (attr.class|default('') ~ ' oka-bt -primary ')|trim}) -%} {#{- parent() -}#} {%- endblock submit_widget %} {%- block textarea_widget -%} {%- endblock textarea_widget -%} {# INPUTS CHOICE : SELECT/RADIOS/CHECKBOXES #} {%- block choice_widget -%} {% if expanded %} {{- block('choice_widget_expanded') -}} {% else %} {{- block('choice_widget_collapsed') -}} {% endif %} {%- endblock choice_widget -%} {# GROUPE DE INPUT RADIOS/CHECKBOXES #} {%- block choice_widget_expanded -%} {% if 'group-inline' in label_attr.class|default(' ') %}
{%- for child in form %} {{- form_widget(child) -}} {{- form_label(child, null, {translation_domain: choice_translation_domain}) -}} {% endfor -%}
{% else %}
{%- for child in form %} {{- form_widget(child) -}} {{- form_label(child, null, {translation_domain: choice_translation_domain}) -}} {% endfor -%}
{% endif %} {%- endblock choice_widget_expanded -%} {# TIMETYPE (enleve les ":" entre minutes et secondes #} {%- block time_widget -%} {%- if widget == 'single_text' -%} {{ block('form_widget_simple') }} {%- else -%} {%- set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} -%}
{{ form_widget(form.hour, vars) }}{% if with_minutes %}{{ form_widget(form.minute, vars) }}{% endif %}{% if with_seconds %}{{ form_widget(form.second, vars) }}{% endif %}
{%- endif -%} {%- endblock time_widget -%} {# INPUT CHECKBOX #} {%- block checkbox_widget -%} {% set attr = attr|merge({class:attr.class|default(' ') ~ ' oka-checkbox'}) %} {%- endblock checkbox_widget -%} {# INPUT RADIO #} {%- block radio_widget -%} {% set attr = attr|merge({class:attr.class|default(' ') ~ ' oka-radio'}) %} {%- endblock radio_widget -%} {# INPUT FILE #} {%- block file_widget -%} {%- if required == 'true' or required == 'required' -%} {%- endif -%} {% set attr = attr|merge({class:attr.class|default(' ') ~ ' oka-inputfile'}) %} {# #} {%- endblock file_widget -%} {# LABELS #} {% block form_label -%} {% set label_attr = label_attr|merge({class: label_attr.class|default('')|replace({'hrz': ' oka-label--hrz ', 'group': '', 'group-inline': '' , 'solo': ''}) ~ ' oka-label'|trim}) %} {% if errors|length > 0 -%} {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' error')|trim}) %} {% endif %} {{- parent() -}} {%- endblock form_label %} {# ROWS #} {%- block form_row -%} {%- set widget_attr = {} -%} {%- set error = '' -%} {% if errors|length > 0 -%} {% set error = 'l-form-row--invalide' %} {% endif %} {%- if help is not empty -%} {%- set widget_attr = {attr: {'aria-describedby': id ~"_help"}} -%} {%- endif -%} {%- set group = '' -%} {% if 'group' in label_attr.class|default('') %} {%- set group = 'l-form-row-group' -%} {% endif %} {% if 'hrz' in label_attr.class|default('') %} {%- set class2 = 'l-form-row-hrz ' ~ group ~ error -%} {% else %} {%- set class2 = 'l-form-row ' ~ group ~ error -%} {% endif %} {# Ajoute class spécifique aux filtres #} {% set class2 = class2 ~ " " ~ (form.vars.attr.formRowType|default('')) %} {% if 'single-choice' in label_attr.class|default('') %}
{{- form_widget(form, widget_attr) -}} {{- form_label(form) -}} {{- form_errors(form) -}} {{- form_help(form) -}}
{% else %}
{{- form_label(form) -}} {{- form_widget(form, widget_attr) -}} {{- form_errors(form) -}} {{- form_help(form) -}}
{% endif %} {%- endblock form_row -%} {# https://github.com/symfony/twig-bridge/blob/master/Resources/views/Form/form_div_layout.html.twig #} {%- block widget_attributes -%} id="{{ id }}" name="{{ full_name }}" {%- if disabled %} disabled="disabled"{% endif -%} {%- if required %} required="required"{% endif -%} {{ block('attributes') }} {%- endblock widget_attributes -%} {% block attributes -%} {%- for attrname, attrvalue in attr -%} {{- " " -}} {%- if attrname in ['placeholder', 'title'] -%} {{- attrname }}="{{ translation_domain is same as(false) ? 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 -%} {# Errors #} {% block form_errors -%} {%- if errors|length > 0 -%} {%- for error in errors -%} {{ 'Error'|trans({}, 'validators') }} {{ error.message }} {%- endfor -%} {%- endif %} {%- endblock form_errors %}