From 376f197dcc528441fcb2ba3e0dd91f4b098cb491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Adamczyk?= Date: Mon, 18 Jun 2018 12:46:08 +0200 Subject: [PATCH] EZP-29119: Fixed form errors and label for all fieldtypes --- .../js/scripts/fieldType/base/base-file-field.js | 2 +- .../js/scripts/fieldType/base/base-preview-field.js | 1 + .../Resources/views/content/form_fields.html.twig | 12 +++++++++++- .../views/fieldtypes/edit/binary_base.html.twig | 10 +++++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/bundle/Resources/public/js/scripts/fieldType/base/base-file-field.js b/src/bundle/Resources/public/js/scripts/fieldType/base/base-file-field.js index a80735ffeb..64fb08eede 100644 --- a/src/bundle/Resources/public/js/scripts/fieldType/base/base-file-field.js +++ b/src/bundle/Resources/public/js/scripts/fieldType/base/base-file-field.js @@ -1,6 +1,6 @@ (function (global) { const eZ = global.eZ = global.eZ || {}; - const SELECTOR_FIELD_LABEL = '.ez-field-edit__label-wrapper .col-form-label'; + const SELECTOR_FIELD_LABEL = '.ez-field-edit__label-wrapper .form-control-label'; class BaseFileFieldValidator extends global.eZ.BaseFieldValidator { /** diff --git a/src/bundle/Resources/public/js/scripts/fieldType/base/base-preview-field.js b/src/bundle/Resources/public/js/scripts/fieldType/base/base-preview-field.js index add62ea42f..f8dd226857 100644 --- a/src/bundle/Resources/public/js/scripts/fieldType/base/base-preview-field.js +++ b/src/bundle/Resources/public/js/scripts/fieldType/base/base-preview-field.js @@ -179,6 +179,7 @@ this.fieldContainer.querySelector(SELECTOR_DATA).removeAttribute('hidden'); this.fieldContainer.querySelector(SELECTOR_PREVIEW).setAttribute('hidden', true); this.fieldContainer.classList.remove('is-invalid'); + [...this.fieldContainer.querySelectorAll('.ez-field-edit__error')].forEach(element => element.remove()); btnRemove.removeEventListener('click', this.handleRemoveFile); diff --git a/src/bundle/Resources/views/content/form_fields.html.twig b/src/bundle/Resources/views/content/form_fields.html.twig index 013b44cddb..fcfe40bf3b 100644 --- a/src/bundle/Resources/views/content/form_fields.html.twig +++ b/src/bundle/Resources/views/content/form_fields.html.twig @@ -70,6 +70,14 @@ {% set widget_wrapper_attr = widget_wrapper_attr|default({})|merge({'class': (widget_wrapper_attr.class|default('') ~ ' ez-field-edit__data')|trim}) %} {% set wrapper_class = 'ez-field-edit ez-field-edit--' ~ fieldtype_identifier %} + + {# BC: to maintain BC we have to map errors which orginated from compound fieldtypes #} + {% for error in form.parent.parent.parent.vars.errors %} + {% if error.origin == form.vars.errors.form %} + {% set errors = errors|default([])|merge([error]) %} + {% endif %} + {% endfor %} + {% if required %}{% set wrapper_class = (wrapper_class|default('') ~ ' ez-field-edit--required')|trim %}{% endif %} {% if errors|length > 0 %}{% set wrapper_class = (wrapper_class|default('') ~ ' is-invalid')|trim %}{% endif %} {% if fieldtype_is_not_translatable %} @@ -89,7 +97,7 @@
- {{ block('form_label') }} + {% with { 'compound': false } %}{{- block('form_label') }}{% endwith %} {{ block('form_errors') }}
@@ -121,3 +129,5 @@ {%- set type = type|default('number') -%} {{ block('form_widget_simple') }} {%- endblock number_widget -%} + +{% block form_label_errors %}{% endblock %} diff --git a/src/bundle/Resources/views/fieldtypes/edit/binary_base.html.twig b/src/bundle/Resources/views/fieldtypes/edit/binary_base.html.twig index bb63561d7b..44bdc586c6 100644 --- a/src/bundle/Resources/views/fieldtypes/edit/binary_base.html.twig +++ b/src/bundle/Resources/views/fieldtypes/edit/binary_base.html.twig @@ -6,7 +6,15 @@ {% set wrapper_attr = wrapper_attr|default({})|merge({'class': (wrapper_attr.class|default('') ~ ' ez-field-edit--with-preview')|trim}) %} {% set preview_attr = preview_attr|default({})|merge({'class': (preview_attr.class|default('') ~ ' ez-field-edit__preview')|trim}) %} {% set widget_wrapper_attr = widget_wrapper_attr|default({})|merge({'class': (widget_wrapper_attr.class|default('') ~ ' ez-field-edit__data')|trim}) %} - {% if file_is_empty %} + + {% set has_error = false %} + {% for error in form.parent.parent.parent.vars.errors %} + {% if error.origin == form.vars.errors.form %} + {% set has_error = true %} + {% endif %} + {% endfor %} + + {% if file_is_empty or has_error %} {% set preview_attr = preview_attr|default({})|merge({'hidden': 'hidden'}) %} {% else %} {% set widget_wrapper_attr = widget_wrapper_attr|merge({'hidden': 'hidden'}) %}