diff --git a/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.html b/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.html
index cc577b4..8bfcea2 100644
--- a/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.html
+++ b/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.html
@@ -16,7 +16,7 @@
placeholder="{{
contactData.firstName !== ''
? contactData.firstName
- : ('contactDalogForm.firstName' | translate)
+ : ('contactDialogForm.firstName' | translate)
}}"
[(ngModel)]="contactData.firstName"
autocomplete="off"
@@ -25,7 +25,7 @@
@if (sharedService.isContactViewMedia) {
@if (!firstName.valid && firstName.touched) {
-
{{ "contactDalogForm.invalidFirstName" | translate }}
+
{{ "contactDialogForm.invalidFirstName" | translate }}
}
}
@@ -38,7 +38,7 @@
placeholder="{{
contactData.lastName !== ''
? contactData.lastName
- : ('contactDalogForm.lastName' | translate)
+ : ('contactDialogForm.lastName' | translate)
}}"
[(ngModel)]="contactData.lastName"
autocomplete="off"
@@ -48,18 +48,18 @@
@if (sharedService.isContactViewMedia) {
@if (!lastName.valid && lastName.touched) {
-
{{ "contactDalogForm.invalidLastName" | translate }}
+
{{ "contactDialogForm.invalidLastName" | translate }}
}
} @if (!sharedService.isContactViewMedia) {
@if ((!firstName.valid && firstName.touched) && (!lastName.valid &&
lastName.touched)) {
-
{{ "contactDalogForm.invalidName" | translate }}
+
{{ "contactDialogForm.invalidName" | translate }}
} @else { @if (!firstName.valid && firstName.touched) {
-
{{ "contactDalogForm.invalidFirstName" | translate }}
+
{{ "contactDialogForm.invalidFirstName" | translate }}
} @else { @if (!lastName.valid && lastName.touched) {
-
{{ "contactDalogForm.invalidLastName" | translate }}
+
{{ "contactDialogForm.invalidLastName" | translate }}
} } }
}
@@ -71,16 +71,22 @@
placeholder="{{
contactData.email !== ''
? contactData.email
- : ('contactDalogForm.email' | translate)
+ : ('contactDialogForm.email' | translate)
}}"
[(ngModel)]="contactData.email"
autocomplete="off"
required
/>
- @if (!email.valid && email.touched) {
-
{{ "contactDalogForm.invalidEmail" | translate }}
- }
+ @if(!email.valid && email.touched &&
+ !checkIfUserEmailIsValid(contactData.email)) {
+
{{ "contactDialogForm.invalidMail0" | translate }}
+ } @else { @if (email.touched &&
+ !checkIfUserEmailIsValid(contactData.email)) {
+
{{ "contactDialogForm.invalidMail1" | translate }}
+ } @else { @if (existEmailonServer(contactData.email).length > 0) {
+
{{ "regiscontactDialogFormter.invalidMail2" | translate }}
+ } } }
@if (!phone.valid && phone.touched) {
-
{{ "contactDalogForm.invalidPhone" | translate }}
+
{{ "contactDialogForm.invalidPhone" | translate }}
}
diff --git a/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.ts b/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.ts
index 191c39b..64c56fd 100644
--- a/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.ts
+++ b/src/app/components/contacts/contact-edit-new/contact-form/contact-form.component.ts
@@ -53,11 +53,13 @@ export class ContactFormComponent implements OnInit, OnChanges {
};
ngOnInit() {
- this.userData = {
- ...this.userData,
- color: this.randomColor,
- lastLogin: new Date().getTime(),
- };
+ if (!this.currentUserId) {
+ this.userData = {
+ ...this.userData,
+ color: this.randomColor,
+ lastLogin: new Date().getTime(),
+ };
+ }
}
ngOnChanges(changes: SimpleChanges) {
@@ -88,17 +90,33 @@ export class ContactFormComponent implements OnInit, OnChanges {
updateUserData() {
this.userData = {
...this.userData,
- firstName:
- this.contactData.firstName.charAt(0).toUpperCase() +
- this.contactData.firstName.slice(1).toLowerCase(),
- lastName:
- this.contactData.lastName.charAt(0).toUpperCase() +
- this.contactData.lastName.slice(1).toLowerCase(),
+ firstName: this.capitalizeFirstLetter(this.contactData.firstName),
+ lastName: this.capitalizeFirstLetter(this.contactData.lastName),
email: this.contactData.email,
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() {
this.contactData.firstName = this.firebaseService
.getUserDetails(this.currentUserId, 'firstName')
@@ -124,7 +142,6 @@ export class ContactFormComponent implements OnInit, OnChanges {
} else {
const { id, ...taskWithoutIds } = this.userData;
this.firebaseService.addNewUser(taskWithoutIds);
- console.log('add new contact');
}
this.closeEditDialog();
}
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 2aca5b1..1e79b20 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -55,13 +55,15 @@
"legalNotice": "Rechtlicher Hinweis",
"logout": "Abmelden"
},
- "contactDalogForm": {
+ "contactDialogForm": {
"btnDelete": "Löschen",
"btnSave": "Sichern",
"invalidFirstName": "Ein Vorname ist erforderlich!",
"invalidLastName": "Ein 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!",
"firstName": "Vorname",
"lastName": "Nachname",
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 76e0543..d585cb5 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -55,13 +55,15 @@
"legalNotice": "Legal notice",
"logout": "Log out"
},
- "contactDalogForm": {
+ "contactDialogForm": {
"btnDelete": "Delete",
"btnSave": "Save",
"invalidFirstName": "A first name is required!",
"invalidLastName": "A 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!",
"firstName": "First name",
"lastName": "Last name",