update form validation
This commit is contained in:
parent
64b6c49850
commit
7b231589fa
4 changed files with 61 additions and 32 deletions
|
|
@ -16,7 +16,7 @@
|
||||||
placeholder="{{
|
placeholder="{{
|
||||||
contactData.firstName !== ''
|
contactData.firstName !== ''
|
||||||
? contactData.firstName
|
? contactData.firstName
|
||||||
: ('contactDalogForm.firstName' | translate)
|
: ('contactDialogForm.firstName' | translate)
|
||||||
}}"
|
}}"
|
||||||
[(ngModel)]="contactData.firstName"
|
[(ngModel)]="contactData.firstName"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
@if (sharedService.isContactViewMedia) {
|
@if (sharedService.isContactViewMedia) {
|
||||||
<div class="error-msg">
|
<div class="error-msg">
|
||||||
@if (!firstName.valid && firstName.touched) {
|
@if (!firstName.valid && firstName.touched) {
|
||||||
<p>{{ "contactDalogForm.invalidFirstName" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidFirstName" | translate }}</p>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
placeholder="{{
|
placeholder="{{
|
||||||
contactData.lastName !== ''
|
contactData.lastName !== ''
|
||||||
? contactData.lastName
|
? contactData.lastName
|
||||||
: ('contactDalogForm.lastName' | translate)
|
: ('contactDialogForm.lastName' | translate)
|
||||||
}}"
|
}}"
|
||||||
[(ngModel)]="contactData.lastName"
|
[(ngModel)]="contactData.lastName"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
|
|
@ -48,18 +48,18 @@
|
||||||
@if (sharedService.isContactViewMedia) {
|
@if (sharedService.isContactViewMedia) {
|
||||||
<div class="error-msg">
|
<div class="error-msg">
|
||||||
@if (!lastName.valid && lastName.touched) {
|
@if (!lastName.valid && lastName.touched) {
|
||||||
<p>{{ "contactDalogForm.invalidLastName" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidLastName" | translate }}</p>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
} @if (!sharedService.isContactViewMedia) {
|
} @if (!sharedService.isContactViewMedia) {
|
||||||
<div class="error-msg">
|
<div class="error-msg">
|
||||||
@if ((!firstName.valid && firstName.touched) && (!lastName.valid &&
|
@if ((!firstName.valid && firstName.touched) && (!lastName.valid &&
|
||||||
lastName.touched)) {
|
lastName.touched)) {
|
||||||
<p>{{ "contactDalogForm.invalidName" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidName" | translate }}</p>
|
||||||
} @else { @if (!firstName.valid && firstName.touched) {
|
} @else { @if (!firstName.valid && firstName.touched) {
|
||||||
<p>{{ "contactDalogForm.invalidFirstName" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidFirstName" | translate }}</p>
|
||||||
} @else { @if (!lastName.valid && lastName.touched) {
|
} @else { @if (!lastName.valid && lastName.touched) {
|
||||||
<p>{{ "contactDalogForm.invalidLastName" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidLastName" | translate }}</p>
|
||||||
} } }
|
} } }
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
@ -71,16 +71,22 @@
|
||||||
placeholder="{{
|
placeholder="{{
|
||||||
contactData.email !== ''
|
contactData.email !== ''
|
||||||
? contactData.email
|
? contactData.email
|
||||||
: ('contactDalogForm.email' | translate)
|
: ('contactDialogForm.email' | translate)
|
||||||
}}"
|
}}"
|
||||||
[(ngModel)]="contactData.email"
|
[(ngModel)]="contactData.email"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<div class="error-msg">
|
<div class="error-msg">
|
||||||
@if (!email.valid && email.touched) {
|
@if(!email.valid && email.touched &&
|
||||||
<p>{{ "contactDalogForm.invalidEmail" | translate }}</p>
|
!checkIfUserEmailIsValid(contactData.email)) {
|
||||||
}
|
<p>{{ "contactDialogForm.invalidMail0" | translate }}</p>
|
||||||
|
} @else { @if (email.touched &&
|
||||||
|
!checkIfUserEmailIsValid(contactData.email)) {
|
||||||
|
<p>{{ "contactDialogForm.invalidMail1" | translate }}</p>
|
||||||
|
} @else { @if (existEmailonServer(contactData.email).length > 0) {
|
||||||
|
<p>{{ "regiscontactDialogFormter.invalidMail2" | translate }}</p>
|
||||||
|
} } }
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input
|
||||||
id="phone"
|
id="phone"
|
||||||
|
|
@ -90,22 +96,23 @@
|
||||||
placeholder="{{
|
placeholder="{{
|
||||||
contactData.phone !== ''
|
contactData.phone !== ''
|
||||||
? contactData.phone
|
? contactData.phone
|
||||||
: ('contactDalogForm.phone' | translate)
|
: ('contactDialogForm.phone' | translate)
|
||||||
}}"
|
}}"
|
||||||
[(ngModel)]="contactData.phone"
|
[(ngModel)]="contactData.phone"
|
||||||
|
pattern="[0-9]{7,10}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<div class="error-msg">
|
<div class="error-msg">
|
||||||
@if (!phone.valid && phone.touched) {
|
@if (!phone.valid && phone.touched) {
|
||||||
<p>{{ "contactDalogForm.invalidPhone" | translate }}</p>
|
<p>{{ "contactDialogForm.invalidPhone" | translate }}</p>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="btns">
|
<div class="btns">
|
||||||
<app-form-btn
|
<app-form-btn
|
||||||
class="btn-delete"
|
class="btn-delete"
|
||||||
type="button"
|
type="button"
|
||||||
value="{{ 'contactDalogForm.btnDelete' | translate }}"
|
value="{{ 'contactDialogForm.btnDelete' | translate }}"
|
||||||
(click)="deleteContact()"
|
(click)="deleteContact()"
|
||||||
></app-form-btn>
|
></app-form-btn>
|
||||||
<app-form-btn
|
<app-form-btn
|
||||||
|
|
@ -113,7 +120,7 @@
|
||||||
[type]="'submit'"
|
[type]="'submit'"
|
||||||
[img]="'check'"
|
[img]="'check'"
|
||||||
[imgFilter]="'none'"
|
[imgFilter]="'none'"
|
||||||
value="{{ 'contactDalogForm.btnSave' | translate }}"
|
value="{{ 'contactDialogForm.btnSave' | translate }}"
|
||||||
[disabled]="
|
[disabled]="
|
||||||
firstName.invalid ||
|
firstName.invalid ||
|
||||||
!contactData.firstName ||
|
!contactData.firstName ||
|
||||||
|
|
@ -122,7 +129,8 @@
|
||||||
email.invalid ||
|
email.invalid ||
|
||||||
!contactData.email ||
|
!contactData.email ||
|
||||||
phone.invalid ||
|
phone.invalid ||
|
||||||
!contactData.phone
|
!contactData.phone ||
|
||||||
|
!checkIfUserEmailIsValid(contactData.email)
|
||||||
"
|
"
|
||||||
></app-form-btn>
|
></app-form-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -53,11 +53,13 @@ export class ContactFormComponent implements OnInit, OnChanges {
|
||||||
};
|
};
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.userData = {
|
if (!this.currentUserId) {
|
||||||
...this.userData,
|
this.userData = {
|
||||||
color: this.randomColor,
|
...this.userData,
|
||||||
lastLogin: new Date().getTime(),
|
color: this.randomColor,
|
||||||
};
|
lastLogin: new Date().getTime(),
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
|
|
@ -88,17 +90,33 @@ export class ContactFormComponent implements OnInit, OnChanges {
|
||||||
updateUserData() {
|
updateUserData() {
|
||||||
this.userData = {
|
this.userData = {
|
||||||
...this.userData,
|
...this.userData,
|
||||||
firstName:
|
firstName: this.capitalizeFirstLetter(this.contactData.firstName),
|
||||||
this.contactData.firstName.charAt(0).toUpperCase() +
|
lastName: this.capitalizeFirstLetter(this.contactData.lastName),
|
||||||
this.contactData.firstName.slice(1).toLowerCase(),
|
|
||||||
lastName:
|
|
||||||
this.contactData.lastName.charAt(0).toUpperCase() +
|
|
||||||
this.contactData.lastName.slice(1).toLowerCase(),
|
|
||||||
email: this.contactData.email,
|
email: this.contactData.email,
|
||||||
phone: this.contactData.phone,
|
phone: this.contactData.phone,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
capitalizeFirstLetter(name: string) {
|
||||||
|
return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
checkIfUserEmailIsValid(emailValue: string) {
|
||||||
|
const channelNameLenght = emailValue.length;
|
||||||
|
const emailRegex = /^[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,}$/;
|
||||||
|
if (emailRegex.test(emailValue)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
existEmailonServer(mail: string) {
|
||||||
|
return this.firebaseService
|
||||||
|
.getAllUsers()
|
||||||
|
.filter((user) => user.email === mail);
|
||||||
|
}
|
||||||
|
|
||||||
private updateContactData() {
|
private updateContactData() {
|
||||||
this.contactData.firstName = this.firebaseService
|
this.contactData.firstName = this.firebaseService
|
||||||
.getUserDetails(this.currentUserId, 'firstName')
|
.getUserDetails(this.currentUserId, 'firstName')
|
||||||
|
|
@ -124,7 +142,6 @@ export class ContactFormComponent implements OnInit, OnChanges {
|
||||||
} else {
|
} else {
|
||||||
const { id, ...taskWithoutIds } = this.userData;
|
const { id, ...taskWithoutIds } = this.userData;
|
||||||
this.firebaseService.addNewUser(taskWithoutIds);
|
this.firebaseService.addNewUser(taskWithoutIds);
|
||||||
console.log('add new contact');
|
|
||||||
}
|
}
|
||||||
this.closeEditDialog();
|
this.closeEditDialog();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,13 +55,15 @@
|
||||||
"legalNotice": "Rechtlicher Hinweis",
|
"legalNotice": "Rechtlicher Hinweis",
|
||||||
"logout": "Abmelden"
|
"logout": "Abmelden"
|
||||||
},
|
},
|
||||||
"contactDalogForm": {
|
"contactDialogForm": {
|
||||||
"btnDelete": "Löschen",
|
"btnDelete": "Löschen",
|
||||||
"btnSave": "Sichern",
|
"btnSave": "Sichern",
|
||||||
"invalidFirstName": "Ein Vorname ist erforderlich!",
|
"invalidFirstName": "Ein Vorname ist erforderlich!",
|
||||||
"invalidLastName": "Ein Nachname ist erforderlich!",
|
"invalidLastName": "Ein Nachname ist erforderlich!",
|
||||||
"invalidName": "Ein Vorname & Nachname ist erforderlich!",
|
"invalidName": "Ein Vorname & Nachname ist erforderlich!",
|
||||||
"invalidEmail": "Eine E-Mail Adresse ist erforderlich!",
|
"invalidMail0": "Sie müssen eine E-Mail Adresse eingeben!",
|
||||||
|
"invalidMail1": "Dies ist kein gültiges E-Mail-Format!",
|
||||||
|
"invalidMail2": "Diese E-Mail existiert bereits!",
|
||||||
"invalidPhone": "Eine Telefonnummer ist erforderlich!",
|
"invalidPhone": "Eine Telefonnummer ist erforderlich!",
|
||||||
"firstName": "Vorname",
|
"firstName": "Vorname",
|
||||||
"lastName": "Nachname",
|
"lastName": "Nachname",
|
||||||
|
|
|
||||||
|
|
@ -55,13 +55,15 @@
|
||||||
"legalNotice": "Legal notice",
|
"legalNotice": "Legal notice",
|
||||||
"logout": "Log out"
|
"logout": "Log out"
|
||||||
},
|
},
|
||||||
"contactDalogForm": {
|
"contactDialogForm": {
|
||||||
"btnDelete": "Delete",
|
"btnDelete": "Delete",
|
||||||
"btnSave": "Save",
|
"btnSave": "Save",
|
||||||
"invalidFirstName": "A first name is required!",
|
"invalidFirstName": "A first name is required!",
|
||||||
"invalidLastName": "A last name is required!",
|
"invalidLastName": "A last name is required!",
|
||||||
"invalidName": "A first name & last name is required!",
|
"invalidName": "A first name & last name is required!",
|
||||||
"invalidEmail": "A email is required!",
|
"invalidMail0": "You must enter a mail!",
|
||||||
|
"invalidMail1": "This is not a valid email format!",
|
||||||
|
"invalidMail2": "This email already exists!",
|
||||||
"invalidPhone": "A phone number is required!",
|
"invalidPhone": "A phone number is required!",
|
||||||
"firstName": "First name",
|
"firstName": "First name",
|
||||||
"lastName": "Last name",
|
"lastName": "Last name",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue