add validation to manager for email and phone number
This commit is contained in:
parent
1b4a7f3612
commit
9c8db5e7c8
@ -28,12 +28,43 @@
|
|||||||
showTitleInvalid = manager.title === ""
|
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
|
// Exports
|
||||||
export const validate = () => {
|
export const validate = () => {
|
||||||
validateFirstName()
|
validateFirstName()
|
||||||
validateSurname()
|
validateSurname()
|
||||||
validateTitle()
|
validateTitle()
|
||||||
return !showFirstNameInvalid && !showSurnameInvalid && !showTitleInvalid
|
validateEmail()
|
||||||
|
validatePhoneNumber()
|
||||||
|
return !showFirstNameInvalid && !showSurnameInvalid && !showTitleInvalid && !showEmailInvalid && !showPhoneNumberInvalid
|
||||||
};
|
};
|
||||||
|
|
||||||
export const reset = () => {
|
export const reset = () => {
|
||||||
@ -45,6 +76,8 @@
|
|||||||
showFirstNameInvalid = false
|
showFirstNameInvalid = false
|
||||||
showSurnameInvalid = false
|
showSurnameInvalid = false
|
||||||
showTitleInvalid = false
|
showTitleInvalid = false
|
||||||
|
showEmailInvalid = false
|
||||||
|
showPhoneNumberInvalid = false
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -76,10 +109,16 @@
|
|||||||
/>
|
/>
|
||||||
<TextInput
|
<TextInput
|
||||||
bind:value={manager.phone_number}
|
bind:value={manager.phone_number}
|
||||||
|
bind:invalid={showPhoneNumberInvalid}
|
||||||
|
on:input={validatePhoneNumber}
|
||||||
|
invalidText={"Phone number can only contain '+', ' ', '(', ')' and numbers"}
|
||||||
labelText="Phone number"
|
labelText="Phone number"
|
||||||
/>
|
/>
|
||||||
<TextInput
|
<TextInput
|
||||||
bind:value={manager.email}
|
bind:value={manager.email}
|
||||||
|
bind:invalid={showEmailInvalid}
|
||||||
|
on:input={validateEmail}
|
||||||
|
invalidText={"Email must contain '@'"}
|
||||||
labelText="Email"
|
labelText="Email"
|
||||||
/>
|
/>
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -102,11 +102,13 @@
|
|||||||
</DataTable>
|
</DataTable>
|
||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
|
preventCloseOnClickOutside
|
||||||
bind:open={isModalShown}
|
bind:open={isModalShown}
|
||||||
modalHeading={currentlyUpdatingId != undefined ? updateModalTitle : addModalTitle}
|
modalHeading={currentlyUpdatingId != undefined ? updateModalTitle : addModalTitle}
|
||||||
primaryButtonText="Confirm"
|
primaryButtonText="Confirm"
|
||||||
secondaryButtonText="Cancel"
|
secondaryButtonText="Cancel"
|
||||||
on:open
|
on:open
|
||||||
|
on:close={() => console.log("close")}
|
||||||
on:click:button--secondary={closeModal}
|
on:click:button--secondary={closeModal}
|
||||||
on:submit={async () => {
|
on:submit={async () => {
|
||||||
let valid = dispatch("validateModal", undefined, { cancelable: true })
|
let valid = dispatch("validateModal", undefined, { cancelable: true })
|
||||||
|
@ -52,10 +52,13 @@
|
|||||||
resetProcessList()
|
resetProcessList()
|
||||||
}
|
}
|
||||||
|
|
||||||
let validateModal = () => {
|
let validateModal = (event) => {
|
||||||
let isFactoryValid = validateFactoryForm()
|
let isFactoryValid = validateFactoryForm()
|
||||||
let isManagerValid = validateManagerForm()
|
let isManagerValid = validateManagerForm()
|
||||||
return isFactoryValid && isManagerValid
|
let valid = isFactoryValid && isManagerValid
|
||||||
|
if (!valid) {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -91,7 +94,7 @@
|
|||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<div class="flex flex-row gap-1rem mb-1rem">
|
<div class="flex flex-row gap-1rem mb-1rem">
|
||||||
<div class="flex-grow">
|
<div class="flex-grow w-50">
|
||||||
<p>Factory</p>
|
<p>Factory</p>
|
||||||
<FactoryForm
|
<FactoryForm
|
||||||
bind:factory={factoryData}
|
bind:factory={factoryData}
|
||||||
@ -99,7 +102,7 @@
|
|||||||
bind:reset={resetFactoryForm}
|
bind:reset={resetFactoryForm}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-grow-2">
|
<div class="flex-grow w-50">
|
||||||
<p>Manager</p>
|
<p>Manager</p>
|
||||||
<ManagerForm
|
<ManagerForm
|
||||||
bind:manager={managerData}
|
bind:manager={managerData}
|
||||||
|
Loading…
Reference in New Issue
Block a user