Merged in feature/VBV-751-kaufprozess-validierung-in-plz (pull request #406)

PLZ validieren im Onboarding

Approved-by: Christian Cueni
This commit is contained in:
Elia Bieri 2024-10-22 13:54:51 +00:00
commit dc572ad1a3
5 changed files with 18 additions and 0 deletions

View File

@ -219,6 +219,7 @@
"a.Personen, die du begleitest": "Personen, die du begleitest ", "a.Personen, die du begleitest": "Personen, die du begleitest ",
"a.Persönliche Informationen": "Persönliche Informationen", "a.Persönliche Informationen": "Persönliche Informationen",
"a.PLZ": "PLZ", "a.PLZ": "PLZ",
"a.Postleizahl hat das falsche Format": "Postleizahl hat das falsche Format",
"a.Praxisauftrag": "Praxisauftrag", "a.Praxisauftrag": "Praxisauftrag",
"a.Praxisaufträge anschauen": "Praxisaufträge anschauen", "a.Praxisaufträge anschauen": "Praxisaufträge anschauen",
"a.Praxisbildner": "Praxisbildner", "a.Praxisbildner": "Praxisbildner",

View File

@ -219,6 +219,7 @@
"a.Personen, die du begleitest": "Personnes que tu accompagnes", "a.Personen, die du begleitest": "Personnes que tu accompagnes",
"a.Persönliche Informationen": "Informations personnelles", "a.Persönliche Informationen": "Informations personnelles",
"a.PLZ": "Code postal", "a.PLZ": "Code postal",
"a.Postleizahl hat das falsche Format": "Le code postal n'a pas le bon format",
"a.Praxisauftrag": "Exercice pratique", "a.Praxisauftrag": "Exercice pratique",
"a.Praxisaufträge anschauen": "Voir les missions pratiques", "a.Praxisaufträge anschauen": "Voir les missions pratiques",
"a.Praxisbildner": "Formateur pratique", "a.Praxisbildner": "Formateur pratique",

View File

@ -219,6 +219,7 @@
"a.Personen, die du begleitest": "Persone che accompagni", "a.Personen, die du begleitest": "Persone che accompagni",
"a.Persönliche Informationen": "Informazioni personali", "a.Persönliche Informationen": "Informazioni personali",
"a.PLZ": "CAP", "a.PLZ": "CAP",
"a.Postleizahl hat das falsche Format": "Il codice postale ha un formato sbagliato",
"a.Praxisauftrag": "Lavoro pratico", "a.Praxisauftrag": "Lavoro pratico",
"a.Praxisaufträge anschauen": "Visualizzare gli incarichi pratici", "a.Praxisaufträge anschauen": "Visualizzare gli incarichi pratici",
"a.Praxisbildner": "Formatore pratico", "a.Praxisbildner": "Formatore pratico",

View File

@ -15,6 +15,7 @@ import { useEntities } from "@/services/entities";
import { getLocalSessionKey } from "@/statistics"; import { getLocalSessionKey } from "@/statistics";
import { type User, useUserStore } from "@/stores/user"; import { type User, useUserStore } from "@/stores/user";
import { normalizeSwissPhoneNumber, validatePhoneNumber } from "@/utils/phone"; import { normalizeSwissPhoneNumber, validatePhoneNumber } from "@/utils/phone";
import { validatePostalCode } from "@/utils/postalcode";
import { useTranslation } from "i18next-vue"; import { useTranslation } from "i18next-vue";
import log from "loglevel"; import log from "loglevel";
import { computed, ref, watch } from "vue"; import { computed, ref, watch } from "vue";
@ -129,6 +130,8 @@ function validateAddress() {
if (!address.value.postal_code) { if (!address.value.postal_code) {
formErrors.value.personal.push(t("a.PLZ")); formErrors.value.personal.push(t("a.PLZ"));
} else if (!validatePostalCode(address.value.postal_code)) {
formErrors.value.personal.push(t("a.Postleizahl hat das falsche Format"));
} }
if (!address.value.city) { if (!address.value.city) {
@ -172,6 +175,8 @@ function validateAddress() {
if (!address.value.organisation_postal_code) { if (!address.value.organisation_postal_code) {
formErrors.value.company.push(t("a.PLZ")); formErrors.value.company.push(t("a.PLZ"));
} else if (!validatePostalCode(address.value.organisation_postal_code)) {
formErrors.value.personal.push(t("a.Postleizahl hat das falsche Format"));
} }
if (!address.value.organisation_city) { if (!address.value.organisation_city) {

View File

@ -0,0 +1,10 @@
export function validatePostalCode(input: string) {
// Remove non-ASCII characters
// eslint-disable-next-line no-control-regex
input = input.replace(/[^\x00-\x7F]/g, "");
if (input.length < 4) {
return false;
}
const regex = /^[0-9]+$/;
return regex.test(input);
}