templates/includes/form_elements/form-control.html.twig line 1

Open in your IDE?
  1. {% set id = id|default('') %}
  2. {% set name = name|default('') %}
  3. {% set label = label|default('') %}
  4. {% set styleModifier = styleModifier|default('') %}
  5. {% set className = className|default('') %}
  6. {% set classNames = {
  7.     input: inputModifier|default(''),
  8.     inputWrapper: inputWrapperModifier|default(''),
  9.     label: labelModifier|default(''),
  10.     error: errorModifier|default(''),
  11.     helpText: ''
  12. }|merge(classNames|default({})) %}
  13. {% set required = required|default(false) %}
  14. {% set type = type|default('text') %}
  15. {% set disabled = disabled|default(false) %}
  16. {% set readonly = readonly|default(false) %}
  17. {% set inputAttributes = inputAttributes|default({}) %}
  18. {% if errors[name]|default(false) %}
  19.     {% set errors = [errors[name]] %}
  20. {% else %}
  21.     {% set errors = [] %}
  22. {% endif %}
  23. {% set inputAttributes = inputAttributes
  24.     |merge(id is defined ? {id: id} : {})
  25.     |merge({type: type})
  26.     |merge(name is defined ? {name: name} : {})
  27.     |merge(placeholder is defined ? {placeholder: placeholder} : {})
  28.     |merge(value is defined ? {value: value} : {})
  29.     |merge(required ? {required: ''} : {})
  30.     |merge(disabled ? {disabled: ''} : {})
  31.     |merge(readonly ? {readonly: ''} : {})
  32.     |merge(helpText is defined ? {'aria-describedby': id ~ '-help-block'} : {}) %}
  33. <div class="js-form-validation__group {{ (errors|length > 0) ? 'has-error' : '' }} {{ type == "file" ? 'form-file' : '' }} {{ styleModifier }} {{ className }}">
  34.     <div class="form-group {{ attribute(classNames, 'inputWrapper') }} ">
  35.         {% if type != "file" %}
  36.             {% block label %}
  37.                 {{ include('includes/form_elements/includes/form-control-label.html.twig', {
  38.                     className: 'form-label ' ~ classNames.label
  39.                 }) }}
  40.             {% endblock %}
  41.             {% block input %}
  42.                 <input class=" form-control {{ (errors|length > 0) ? 'is-invalid' : '' }} {{ attribute(classNames, 'input') }}"
  43.                 {% for key, value in inputAttributes %}
  44.                     {{ key }}="{{ value }}"
  45.                 {% endfor %}
  46.                 >
  47.             {% endblock %}
  48.         {% else %}
  49.             <input class=" form-control border-0 {{ (errors|length > 0) ? 'is-invalid' : '' }} {{ attribute(classNames, 'input') }}"
  50.             {% for key, value in inputAttributes %}
  51.                 {{ key }}="{{ value }}"
  52.             {% endfor %}
  53.             >
  54.             {{ include('includes/form_elements/includes/form-control-label.html.twig', {
  55.                 className: 'visually-hidden form-label ' ~ classNames.label
  56.             }) }}
  57.             <div class="form-file__add"><span class="icon icon-download icon-rotate-180" aria-hidden="true"></span>
  58.                 {{ 'form.file-select'|trans }}</div>
  59.         {% endif %}
  60.     </div>
  61.     {% block erros %}
  62.         {{ include('includes/form_elements/includes/form-errors.html.twig', {
  63.             className: classNames.error
  64.         }) }}
  65.     {% endblock %}
  66.     {% block help %}
  67.         {{ include('includes/form_elements/includes/form-control-help-text.html.twig', {
  68.             className: classNames.helpText
  69.         }) }}
  70.     {% endblock %}
  71. </div>