From 9c8db5e7c8e97d1d1ec51990c01e372251b0a7fa Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Sun, 23 Apr 2023 12:06:53 +0300 Subject: [PATCH] add validation to manager for email and phone number --- lab2/src/lib/ManagerForm.svelte | 41 ++++++++++++++++++++++- lab2/src/lib/MyDataTable.svelte | 2 ++ lab2/src/routes/Factories-Managers.svelte | 11 +++--- 3 files changed, 49 insertions(+), 5 deletions(-) diff --git a/lab2/src/lib/ManagerForm.svelte b/lab2/src/lib/ManagerForm.svelte index f235202..24aeef3 100644 --- a/lab2/src/lib/ManagerForm.svelte +++ b/lab2/src/lib/ManagerForm.svelte @@ -28,12 +28,43 @@ showTitleInvalid = manager.title === "" } + // Phone number validation + let showPhoneNumberInvalid = false + function validatePhoneNumber() { + showPhoneNumberInvalid = false + if (manager.phone_number === "") { + return + } + + let allowedSymbols = " +()1234567890" + for (var symbol of manager.phone_number) { + console.log(symbol) + if (allowedSymbols.indexOf(symbol) == -1) { + showPhoneNumberInvalid = true + return + } + } + } + + // Email validation + let showEmailInvalid = false + function validateEmail() { + if (manager.email === "") { + showEmailInvalid = false + return + } + + showEmailInvalid = !manager.email.includes("@") + } + // Exports export const validate = () => { validateFirstName() validateSurname() validateTitle() - return !showFirstNameInvalid && !showSurnameInvalid && !showTitleInvalid + validateEmail() + validatePhoneNumber() + return !showFirstNameInvalid && !showSurnameInvalid && !showTitleInvalid && !showEmailInvalid && !showPhoneNumberInvalid }; export const reset = () => { @@ -45,6 +76,8 @@ showFirstNameInvalid = false showSurnameInvalid = false showTitleInvalid = false + showEmailInvalid = false + showPhoneNumberInvalid = false }; @@ -76,10 +109,16 @@ /> diff --git a/lab2/src/lib/MyDataTable.svelte b/lab2/src/lib/MyDataTable.svelte index e8f128d..ed54465 100644 --- a/lab2/src/lib/MyDataTable.svelte +++ b/lab2/src/lib/MyDataTable.svelte @@ -102,11 +102,13 @@ console.log("close")} on:click:button--secondary={closeModal} on:submit={async () => { let valid = dispatch("validateModal", undefined, { cancelable: true }) diff --git a/lab2/src/routes/Factories-Managers.svelte b/lab2/src/routes/Factories-Managers.svelte index 9d8d964..561a49d 100644 --- a/lab2/src/routes/Factories-Managers.svelte +++ b/lab2/src/routes/Factories-Managers.svelte @@ -52,10 +52,13 @@ resetProcessList() } - let validateModal = () => { + let validateModal = (event) => { let isFactoryValid = validateFactoryForm() let isManagerValid = validateManagerForm() - return isFactoryValid && isManagerValid + let valid = isFactoryValid && isManagerValid + if (!valid) { + event.preventDefault() + } } @@ -91,7 +94,7 @@ ]} >
-
+

Factory

-
+

Manager