gestions des conflits sur l'unicité des mails Apside + appuyer sur entrée fonctionne

pull/12/head
Clement FERRERE 2 years ago
parent 911caff9f5
commit 7265a55e0b
  1. 8
      src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html
  2. 19
      src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts
  3. 12
      src/app/services/collaborateur.service.ts

@ -104,11 +104,15 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Mail Apside</label>
<input type="email" class="form-control" formControlName="apsideMail" [ngClass]="{ 'is-invalid': submitted && f.apsideMail.errors }" placeholder="prenom.nom@apside-groupe.com" [value]="collaborateur.apsideMail">
<input type="email" class="form-control" formControlName="apsideMail" [ngClass]="{ 'is-invalid': (submitted && f.apsideMail.errors) || errorValue==1 }" placeholder="prenom.nom@apside-groupe.com" [value]="collaborateur.apsideMail">
<div *ngIf="submitted && f.apsideMail.errors" class="invalid-feedback">
<div *ngIf="f.apsideMail.errors.required">Le mail Apside d'un collaborateur est obligatoire</div>
<div *ngIf="f.apsideMail.errors.pattern">Le mail Apside d'un collaborateur doit être au format "exemple@apside-groupe.com" ou "exemple@apside.fr"</div>
</div>
<div *ngIf="submitted && errorValue==1" class="invalid-feedback">
<div *ngIf="errorValue==1">Le mail Apside que vous avez entré est déjà utilisé pour un autre collaborateur</div>
</div>
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
@ -148,10 +152,10 @@
</div>
<div>
<button (click)="goBack()">Retour</button>
<button type="submit">Sauvegarder les changements</button>
<button (click)="delete()">Supprimer le collaborateur</button>
<button type="reset" (click)="onReset()">Effacer</button>
<button (click)="goBack()">Retour</button>
</div>
</form>

@ -24,6 +24,7 @@ export class CollaborateurEditComponent implements OnInit {
collaborateurs : Collaborateur[] = [];
businessUnits : Businessunit[] = [];
errorValue : number = 0;
rDate : String = "";
bDate : String = "";
@ -52,8 +53,8 @@ export class CollaborateurEditComponent implements OnInit {
childrenNumber: ['', Validators.required],
address: ['', Validators.required],
telephone: ['', Validators.required],
personalMail: ['',Validators.compose([Validators.required,Validators.pattern(".*@[a-z]*\.[a-z]*")])],
apsideMail: ['', Validators.compose([Validators.required,Validators.pattern(".*@apside-groupe\.com|.*@apside\.fr")])],
personalMail: ['',Validators.compose([Validators.required,Validators.pattern(".+@[a-z]*\.[a-z]*")])],
apsideMail: ['', Validators.compose([Validators.required,Validators.pattern(".+@apside-groupe\.com|.*@apside\.fr")])],
resignationDate: ['', Validators.required],
referrerId: ['', Validators.required],
businessUnitId: ['', Validators.required],
@ -110,12 +111,20 @@ export class CollaborateurEditComponent implements OnInit {
this.collaborateur.childrenNumber = this.registerForm.value.childrenNumber
this.collaborateur.status = this.registerForm.value.status
if (this.collaborateur){
this.collaborateurService.updateCollaborateur(this.collaborateur)
.subscribe(()=>this.goBack());
if (this.collaborateur) {
this.collaborateurService.updateCollaborateur(this.collaborateur).subscribe({
next: () => {
this.goBack();
},
error: () => {
this.errorValue = 1;
}
})
}
}
get f() { return this.registerForm.controls; }
onReset() {

@ -28,6 +28,7 @@ export class CollaborateurService {
updateCollaborateur(collaborateur : Collaborateur):Observable<Collaborateur>{
let body = JSON.stringify(collaborateur);
return this.http.put<Collaborateur>(this.collaborateursUrl + "/" + collaborateur.id, body, this.httpOptions);
}
deleteCollaborateur(collaborateur: Collaborateur) {
@ -36,6 +37,15 @@ export class CollaborateurService {
addCollaborateur(collaborateur: Collaborateur): Observable<Collaborateur> {
let body = JSON.stringify(collaborateur);
return this.http.post<Collaborateur>(this.collaborateursUrl, body, this.httpOptions);
let result = this.http.post<Collaborateur>(this.collaborateursUrl, body, this.httpOptions);
result.subscribe({error:error => {
console.log("passage par l'erreur : ");
console.log(error);
}
})
return result;
}
}

Loading…
Cancel
Save