diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezbinaryfile.js b/src/bundle/Resources/public/js/scripts/fieldType/ezbinaryfile.js
index 7c9d798aa0..47fcf0ef7c 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezbinaryfile.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezbinaryfile.js
@@ -35,6 +35,7 @@
eventName: 'change',
callback: 'validateInput',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
isValueValidator: false,
@@ -42,6 +43,7 @@
eventName: 'ibexa-invalid-file-size',
callback: 'showFileSizeError',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
isValueValidator: false,
@@ -49,6 +51,7 @@
eventName: 'ibexa-invalid-file-type',
callback: 'showFileTypeError',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezboolean.js b/src/bundle/Resources/public/js/scripts/fieldType/ezboolean.js
index cfabda9083..5deb052a06 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezboolean.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezboolean.js
@@ -1,6 +1,7 @@
(function (global, doc, ibexa) {
const SELECTOR_FIELD = '.ibexa-field-edit--ezboolean';
const SELECTOR_ERROR_NODE = '.ibexa-form-error';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
class EzBooleanValidator extends ibexa.BaseFieldValidator {
/**
@@ -13,7 +14,7 @@
*/
validateInput(event) {
const isError = !event.target.checked && event.target.required;
- const label = event.target.closest(SELECTOR_FIELD).querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = event.target.closest(SELECTOR_FIELD).querySelector(SELECTOR_LABEL).innerText;
const errorMessage = ibexa.errors.emptyField.replace('{fieldName}', label);
return {
@@ -32,6 +33,7 @@
eventName: 'change',
callback: 'validateInput',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezemail.js b/src/bundle/Resources/public/js/scripts/fieldType/ezemail.js
index 4d2749842d..d85188344f 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezemail.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezemail.js
@@ -1,6 +1,7 @@
(function (global, doc, ibexa) {
const SELECTOR_FIELD = '.ibexa-field-edit--ezemail';
const SELECTOR_ERROR_NODE = '.ibexa-form-error';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
class EzEmailValidator extends ibexa.BaseFieldValidator {
/**
@@ -17,7 +18,7 @@
const isEmpty = !input.value.trim();
const isValid = ibexa.errors.emailRegexp.test(input.value);
const isError = (isRequired && isEmpty) || (!isEmpty && !isValid);
- const label = input.closest(SELECTOR_FIELD).querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = input.closest(SELECTOR_FIELD).querySelector(SELECTOR_LABEL).innerText;
const result = { isError };
if (isRequired && isEmpty) {
@@ -39,6 +40,7 @@
eventName: 'blur',
callback: 'validateInput',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezfloat.js b/src/bundle/Resources/public/js/scripts/fieldType/ezfloat.js
index 11d66b6b00..695dc1b15f 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezfloat.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezfloat.js
@@ -1,6 +1,7 @@
(function (global, doc, ibexa) {
const SELECTOR_FIELD = '.ibexa-field-edit--ezfloat';
const SELECTOR_ERROR_NODE = `${SELECTOR_FIELD} .ibexa-form-error`;
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
class EzFloatValidator extends ibexa.BaseFieldValidator {
/**
@@ -19,7 +20,7 @@
const isLess = value < parseFloat(event.target.getAttribute('min'));
const isGreater = value > parseFloat(event.target.getAttribute('max'));
const isError = (isEmpty && isRequired) || (!isEmpty && (!isFloat || isLess || isGreater));
- const label = event.target.closest(SELECTOR_FIELD).querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = event.target.closest(SELECTOR_FIELD).querySelector(SELECTOR_LABEL).innerText;
const result = { isError };
if (isEmpty) {
@@ -49,6 +50,7 @@
eventName: 'blur',
callback: 'validateFloat',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezgmaplocation.js b/src/bundle/Resources/public/js/scripts/fieldType/ezgmaplocation.js
index e69f330dd4..af50a8f60b 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezgmaplocation.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezgmaplocation.js
@@ -303,7 +303,7 @@
if (validationResult.isError) {
const errorMessage = Translator.trans(
- /* @Desc("Area below needs correction") */ 'ezmaplocation.create.message.error',
+ /* @Desc("Area above needs correction") */ 'ezmaplocation.create.message.error',
{},
'ibexa_fieldtypes_edit',
);
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezimage.js b/src/bundle/Resources/public/js/scripts/fieldType/ezimage.js
index e8a402cad4..b6ad45f904 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezimage.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezimage.js
@@ -95,7 +95,7 @@
const alreadyIsError = this.fieldContainer.classList.contains(this.classInvalid);
const isEmpty = !event.target.value;
const isError = alreadyIsError || (isEmpty && isRequired && !isFileFieldEmpty);
- const label = event.target.closest(SELECTOR_ALT_WRAPPER).querySelector('.ibexa-data-source__label').innerHTML;
+ const label = event.target.closest(SELECTOR_ALT_WRAPPER).querySelector('.ibexa-data-source__label').innerText;
const result = { isError };
if (isEmpty) {
@@ -116,12 +116,13 @@
eventName: 'change',
callback: 'validateInput',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
selector: SELECTOR_INPUT_ALT,
eventName: 'blur',
callback: 'validateAltInput',
- invalidStateSelectors: ['.ibexa-data-source__field--alternativeText'],
+ invalidStateSelectors: ['.ibexa-data-source__field--alternativeText', '.ibexa-field-edit__label'],
errorNodeSelectors: [`${SELECTOR_ALT_WRAPPER} .ibexa-form-error`],
},
{
@@ -130,6 +131,7 @@
eventName: 'ibexa-invalid-file-size',
callback: 'showFileSizeError',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
isValueValidator: false,
@@ -137,13 +139,14 @@
eventName: 'ibexa-invalid-file-type',
callback: 'showFileTypeError',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
isValueValidator: false,
selector: SELECTOR_INPUT_ALT,
eventName: EVENT_CANCEL_ERROR,
callback: 'cancelErrors',
- invalidStateSelectors: ['.ibexa-data-source__field--alternativeText'],
+ invalidStateSelectors: ['.ibexa-data-source__field--alternativeText', '.ibexa-field-edit__label'],
errorNodeSelectors: [`${SELECTOR_ALT_WRAPPER} .ibexa-form-error`],
},
],
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezimageasset.js b/src/bundle/Resources/public/js/scripts/fieldType/ezimageasset.js
index d2afae1776..cba5dfa670 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezimageasset.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezimageasset.js
@@ -254,6 +254,7 @@
eventName: 'change',
callback: 'validateInput',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
isValueValidator: false,
@@ -261,6 +262,7 @@
eventName: 'ibexa-invalid-file-size',
callback: 'showFileSizeError',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
{
isValueValidator: false,
@@ -268,6 +270,7 @@
eventName: 'ibexa-invalid-file-type',
callback: 'showFileTypeError',
errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: ['.ibexa-field-edit__label'],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezkeyword.js b/src/bundle/Resources/public/js/scripts/fieldType/ezkeyword.js
index cd8123aa9e..b9f033fc10 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezkeyword.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezkeyword.js
@@ -2,6 +2,7 @@
const SELECTOR_FIELD = '.ibexa-field-edit--ezkeyword';
const SELECTOR_TAGGIFY_CONTAINER = '.ibexa-data-source__taggify';
const SELECTOR_TAGGIFY = '.ibexa-data-source__taggify .ibexa-taggify';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
const SELECTOR_ERROR_NODE = '.ibexa-form-error';
class EzKeywordValidator extends ibexa.BaseFieldValidator {
@@ -16,7 +17,7 @@
validateKeywords(event) {
const fieldContainer = event.currentTarget.closest(SELECTOR_FIELD);
const input = fieldContainer.querySelector('.ibexa-data-source__input-wrapper .ibexa-data-source__input');
- const label = fieldContainer.querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = fieldContainer.querySelector(SELECTOR_LABEL).innerText;
const isRequired = input.required;
const isEmpty = !input.value.trim().length;
const isError = isEmpty && isRequired;
@@ -57,14 +58,14 @@
eventName: 'blur',
callback: 'validateKeywords',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
- invalidStateSelectors: [SELECTOR_TAGGIFY],
+ invalidStateSelectors: [SELECTOR_TAGGIFY, SELECTOR_LABEL],
},
{
selector: `${SELECTOR_FIELD} .ibexa-data-source__input.form-control`,
eventName: 'change',
callback: 'validateKeywords',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
- invalidStateSelectors: [SELECTOR_TAGGIFY],
+ invalidStateSelectors: [SELECTOR_TAGGIFY, SELECTOR_LABEL],
},
],
});
@@ -86,7 +87,7 @@
acceptKeys: ['Enter', ','],
});
const updateKeywords = updateValue.bind(this, keywordInput);
- const taggifyInput = taggifyContainer.querySelector('.taggify__input');
+ const taggifyInput = taggifyContainer.querySelector('.ibexa-taggify__input');
if (keywordInput.required) {
taggifyInput.setAttribute('required', true);
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezmedia.js b/src/bundle/Resources/public/js/scripts/fieldType/ezmedia.js
index 79c1ed7287..ae63b1207a 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezmedia.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezmedia.js
@@ -5,6 +5,7 @@
const SELECTOR_INFO_WRAPPER = '.ibexa-field-edit-preview__info';
const SELECTOR_MEDIA_WRAPPER = '.ibexa-field-edit-preview__media-wrapper';
const SELECTOR_INPUT_FILE = 'input[type="file"]';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label-wrapper .ibexa-field-edit__label';
const CLASS_MEDIA_WRAPPER_LOADING = 'ibexa-field-edit-preview__media-wrapper--loading';
class EzMediaValidator extends ibexa.BaseFileFieldValidator {
@@ -23,7 +24,7 @@
const isEmpty = isNaN(value);
const isInteger = Number.isInteger(value);
const isError = (isEmpty && isRequired) || (!isEmpty && !isInteger);
- const label = input.closest(SELECTOR_INFO_WRAPPER).querySelector('.ibexa-field-edit-preview__label').innerHTML;
+ const label = input.closest(SELECTOR_INFO_WRAPPER).querySelector('.ibexa-field-edit-preview__label').innerText;
const result = { isError };
if (isEmpty) {
@@ -133,6 +134,8 @@
const validator = new EzMediaValidator({
classInvalid: 'is-invalid',
fieldContainer,
+ fieldSelector: SELECTOR_FIELD,
+ labelSelector: SELECTOR_LABEL,
eventsMap: [
{
isValueValidator: false,
@@ -140,6 +143,7 @@
eventName: 'ibexa-invalid-file-size',
callback: 'showFileSizeError',
errorNodeSelectors: ['.ibexa-field-edit--ezmedia .ibexa-form-error'],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
{
isValueValidator: false,
@@ -147,18 +151,21 @@
eventName: 'ibexa-invalid-file-type',
callback: 'showFileTypeError',
errorNodeSelectors: ['.ibexa-field-edit--ezmedia .ibexa-form-error'],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
{
selector: '.ibexa-field-edit-preview__dimensions .form-control',
eventName: 'blur',
callback: 'validateDimensions',
errorNodeSelectors: [`${SELECTOR_INFO_WRAPPER} .ibexa-form-error`],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
{
selector: SELECTOR_INPUT_FILE,
eventName: 'change',
callback: 'validateInput',
errorNodeSelectors: ['.ibexa-field-edit--ezmedia .ibexa-form-error'],
+ invalidStateSelectors: [SELECTOR_LABEL],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js b/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js
index 5bcc818ad4..f071e9e11a 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js
@@ -6,6 +6,7 @@
const SELECTOR_FIELD_MULTIPLE = '.ibexa-field-edit--ezobjectrelationlist';
const SELECTOR_FIELD_SINGLE = '.ibexa-field-edit--ezobjectrelation';
const SELECTOR_INPUT = '.ibexa-data-source__input';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
const SELECTOR_BTN_ADD = '.ibexa-relations__table-action--create';
const SELECTOR_ROW = '.ibexa-relations__item';
const EVENT_CUSTOM = 'validateInput';
@@ -24,7 +25,7 @@
const isEmpty = !currentTarget.value.length;
const hasCorrectValues = currentTarget.value.split(',').every((id) => !isNaN(parseInt(id, 10)));
const fieldContainer = currentTarget.closest(SELECTOR_FIELD_MULTIPLE) || currentTarget.closest(SELECTOR_FIELD_SINGLE);
- const label = fieldContainer.querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = fieldContainer.querySelector(SELECTOR_LABEL).innerText;
const result = { isError: false };
if (isRequired && isEmpty) {
@@ -48,6 +49,7 @@
selector: SELECTOR_INPUT,
eventName: 'blur',
callback: 'validateInput',
+ invalidStateSelectors: [SELECTOR_LABEL],
errorNodeSelectors: ['.ibexa-form-error'],
},
{
@@ -55,6 +57,7 @@
selector: SELECTOR_INPUT,
eventName: EVENT_CUSTOM,
callback: 'validateInput',
+ invalidStateSelectors: [SELECTOR_LABEL],
errorNodeSelectors: ['.ibexa-form-error'],
},
],
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezselection.js b/src/bundle/Resources/public/js/scripts/fieldType/ezselection.js
index 2caf3571cd..4f1ec9ab9c 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezselection.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezselection.js
@@ -3,6 +3,7 @@
const SELECTOR_SELECTED = '.ibexa-dropdown__selection-info';
const SELECTOR_ERROR_NODE = '.ibexa-form-error';
const EVENT_VALUE_CHANGED = 'change';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
class EzSelectionValidator extends ibexa.BaseFieldValidator {
/**
@@ -18,7 +19,7 @@
const hasSelectedOptions = !!fieldContainer.querySelector('.ibexa-data-source__input').value;
const isRequired = fieldContainer.classList.contains('ibexa-field-edit--required');
const isError = isRequired && !hasSelectedOptions;
- const label = fieldContainer.querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = fieldContainer.querySelector(SELECTOR_LABEL).innerText;
const errorMessage = ibexa.errors.emptyField.replace('{fieldName}', label);
return {
@@ -37,7 +38,7 @@
eventName: EVENT_VALUE_CHANGED,
callback: 'validateInput',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
- invalidStateSelectors: [SELECTOR_SELECTED],
+ invalidStateSelectors: [SELECTOR_SELECTED, SELECTOR_LABEL],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezstring.js b/src/bundle/Resources/public/js/scripts/fieldType/ezstring.js
index cbc3e1fe52..dedf2e1923 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezstring.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezstring.js
@@ -1,6 +1,7 @@
(function (global, doc, ibexa) {
const SELECTOR_FIELD = '.ibexa-field-edit--ezstring';
const SELECTOR_SOURCE_INPUT = '.ibexa-data-source__input';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
class EzStringValidator extends ibexa.BaseFieldValidator {
/**
@@ -17,7 +18,7 @@
const isTooShort = event.target.value.length < parseInt(event.target.dataset.min, 10);
const isTooLong = event.target.value.length > parseInt(event.target.dataset.max, 10);
const isError = (isEmpty && isRequired) || (!isEmpty && (isTooShort || isTooLong));
- const label = event.target.closest(SELECTOR_FIELD).querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = event.target.closest(SELECTOR_FIELD).querySelector(SELECTOR_LABEL).innerText;
const result = { isError };
if (isEmpty) {
@@ -41,7 +42,7 @@
eventName: 'blur',
callback: 'validateInput',
errorNodeSelectors: ['.ibexa-form-error'],
- invalidStateSelectors: [SELECTOR_SOURCE_INPUT],
+ invalidStateSelectors: [SELECTOR_SOURCE_INPUT, SELECTOR_LABEL],
},
],
});
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/eztext.js b/src/bundle/Resources/public/js/scripts/fieldType/eztext.js
index d0c80f124d..ada64c38f3 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/eztext.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/eztext.js
@@ -1,5 +1,6 @@
(function (global, doc, ibexa) {
const SELECTOR_FIELD = '.ibexa-field-edit--eztext';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
class EzTextValidator extends ibexa.BaseFieldValidator {
/**
@@ -12,7 +13,7 @@
*/
validateInput(event) {
const isError = event.target.required && !event.target.value.trim();
- const label = event.target.closest(SELECTOR_FIELD).querySelector('.ibexa-field-edit__label').innerHTML;
+ const label = event.target.closest(SELECTOR_FIELD).querySelector(SELECTOR_LABEL).innerText;
const errorMessage = ibexa.errors.emptyField.replace('{fieldName}', label);
return {
@@ -30,6 +31,7 @@
selector: '.ibexa-field-edit--eztext textarea',
eventName: 'blur',
callback: 'validateInput',
+ invalidStateSelectors: [SELECTOR_LABEL],
errorNodeSelectors: ['.ibexa-form-error'],
},
],
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezurl.js b/src/bundle/Resources/public/js/scripts/fieldType/ezurl.js
index 9ef70b12c3..0bdbdb0aeb 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezurl.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezurl.js
@@ -15,7 +15,7 @@
const urlValue = input.value.trim();
const isRequired = input.required;
const isEmpty = !urlValue;
- const label = input.closest(SELECTOR_FIELD_LINK).querySelector(SELECTOR_LABEL).innerHTML;
+ const label = input.closest(SELECTOR_FIELD_LINK).querySelector(SELECTOR_LABEL).innerText;
if (isRequired && isEmpty) {
result.isError = true;
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_isbn.js b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_isbn.js
new file mode 100644
index 0000000000..1b68c85a64
--- /dev/null
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_isbn.js
@@ -0,0 +1,44 @@
+(function (global, doc, ibexa) {
+ const SELECTOR_FIELD = '.ibexa-field-edit--ezisbn';
+ const SELECTOR_SOURCE_INPUT = '.ibexa-data-source__input';
+ const SELECTOR_LABEL = '.ibexa-field-edit__label';
+
+ class IbexaIsbnValidator extends ibexa.BaseFieldValidator {
+ /**
+ * Validates the input
+ *
+ * @method validateInput
+ * @param {Event} event
+ * @returns {Object}
+ * @memberof IbexaIsbnValidator
+ */
+ validateInput(event) {
+ const isError = event.target.required && !event.target.value.trim();
+ const label = event.target.closest(SELECTOR_FIELD).querySelector(SELECTOR_LABEL).innerText;
+ const errorMessage = ibexa.errors.emptyField.replace('{fieldName}', label);
+
+ return {
+ isError,
+ errorMessage,
+ };
+ }
+ }
+
+ const validator = new IbexaIsbnValidator({
+ classInvalid: 'is-invalid',
+ fieldSelector: SELECTOR_FIELD,
+ eventsMap: [
+ {
+ selector: `${SELECTOR_FIELD} input`,
+ eventName: 'blur',
+ callback: 'validateInput',
+ errorNodeSelectors: ['.ibexa-form-error'],
+ invalidStateSelectors: [SELECTOR_SOURCE_INPUT, SELECTOR_LABEL],
+ },
+ ],
+ });
+
+ validator.init();
+
+ ibexa.addConfig('fieldTypeValidators', [validator], true);
+})(window, window.document, window.ibexa);
diff --git a/src/bundle/Resources/translations/ibexa_fieldtypes_edit.en.xliff b/src/bundle/Resources/translations/ibexa_fieldtypes_edit.en.xliff
index 52b9b42ecd..67a6b445d3 100644
--- a/src/bundle/Resources/translations/ibexa_fieldtypes_edit.en.xliff
+++ b/src/bundle/Resources/translations/ibexa_fieldtypes_edit.en.xliff
@@ -32,8 +32,8 @@
key: ezimageasset.empty_data.message.error
- Area below needs correction
- Area below needs correction
+ Area above needs correction
+ Area above needs correction
key: ezmaplocation.create.message.error