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 @@
]}
>