From 4e43b77da2ea05859c334ab1d24530bfe79f8f91 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Jun 2023 12:55:21 +0200 Subject: [PATCH] Add custom error messages for events. Co-authored-by: maeckes --- .../ContributionForm/ContributionForm.vue | 23 ++++++++++++++++++- webapp/locales/de.json | 4 ++++ webapp/locales/en.json | 4 ++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 31ff849a3..ae1a7654b 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -286,11 +286,32 @@ export default { }, }, eventStart: { required: !!this.createEvent }, - eventVenue: { required: !!this.createEvent, min: 3, max: 100 }, + eventVenue: { + required: !!this.createEvent, + min: 3, + max: 100, + validator: (_, value = '') => { + if (!value.trim()) { + return [new Error(this.$t('common.validations.eventVenueNotEmpty'))] + } + if (value.length < 3 || value.length > 100) { + return [new Error(this.$t('common.validations.eventVenueLength', { min: 3, max: 100 }))] + } + return [] + }, }, eventLocationName: { required: !!this.createEvent && !this.formData.eventIsOnline, min: 3, max: 100, + validator: (_, value = '') => { + if (!value.trim()) { + return [new Error(this.$t('common.validations.eventLocationNameNotEmpty'))] + } + if (value.length < 3 || value.length > 100) { + return [new Error(this.$t('common.validations.eventLocationNameLength', { min: 3, max: 100 }))] + } + return [] + }, }, } }, diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 1b57fb0dc..5acab107e 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -115,6 +115,10 @@ "validations": { "categories": "es müssen eine bis drei Themen ausgewählt werden", "email": "muss eine gültige E-Mail-Adresse sein", + "eventLocationNameLength": "Mindestens {min} Maximal {max}", + "eventLocationNameNotEmpty": "es dürfen nicht nur Freizeichen eingetragen werden", + "eventVenueLength": "Mindestens {min} Maximal {max}", + "eventVenueNotEmpty": "es dürfen nicht nur Freizeichen eingetragen werden", "url": "muss eine gültige URL sein" }, "versus": "Versus" diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 0f0b9c6b4..565f4b80a 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -115,6 +115,10 @@ "validations": { "categories": "at least one and at most three topics must be selected", "email": "must be a valid e-mail address", + "eventLocationNameLength": "minimal {min} maximal {max}", + "eventLocationNameNotEmpty": "only empty characters are not allowed", + "eventVenueLength": "minimal {min} maximal {max}", + "eventVenueNotEmpty": "only empty characters are not allowed", "url": "must be a valid URL" }, "versus": "Versus"