diff --git a/src/components/FormGroup.vue b/src/components/FormGroup.vue index 830cc3f..b2afe7a 100644 --- a/src/components/FormGroup.vue +++ b/src/components/FormGroup.vue @@ -4,7 +4,7 @@ label-cols-lg="3" :label="field.name" :label-for="`field-${field.name}`" - :invalid-feedback="error.content" + :invalid-feedback="errorMessage" valid-feedback="Ce champ est valide" :state="isValid" :label-class="{'required': isRequired}" @@ -26,6 +26,16 @@ export default { mixins: [ValidateField], components: { VueMarkdown + }, + computed: { + errorMessage() { + // Test order matters. + // legacy report error contains 'content' (fr) and 'message' (en) properties + // New validation report only contains 'message' (fr) property + return this.error.content + ? this.error.content // legacy validation report + : this.error.message // new validation report + } } } diff --git a/src/views/SchemaForm.vue b/src/views/SchemaForm.vue index cce28ea..77416f6 100644 --- a/src/views/SchemaForm.vue +++ b/src/views/SchemaForm.vue @@ -180,7 +180,9 @@ export default { return factory(StringField, field) }, dispatchError(error) { - let index = error['column-number'] + let index = error.fieldNumber + ? error.fieldNumber // new validation report + : error['column-number'] // legacy validation report this.faultyFields.push(this.fieldNames[index-1]) EventBus.$emit('field-error', this.fieldNames[index-1], error) }, @@ -207,7 +209,9 @@ export default { .then(data => { this.formValidated = true this.faultyFields = [] - const errors = data.report.tables[0].errors + const errors = data.report.tasks + ? data.report.tasks[0].errors // new validation report + : data.report.tables[0].errors // legacy validation report if (errors && errors.length > 0) { errors.forEach((error) => { this.dispatchError(error)