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"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Mail Apside</label> <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="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.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 *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>
<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>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
@ -148,10 +152,10 @@
</div> </div>
<div> <div>
<button (click)="goBack()">Retour</button>
<button type="submit">Sauvegarder les changements</button> <button type="submit">Sauvegarder les changements</button>
<button (click)="delete()">Supprimer le collaborateur</button> <button (click)="delete()">Supprimer le collaborateur</button>
<button type="reset" (click)="onReset()">Effacer</button> <button type="reset" (click)="onReset()">Effacer</button>
<button (click)="goBack()">Retour</button>
</div> </div>
</form> </form>

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

@ -28,6 +28,7 @@ export class CollaborateurService {
updateCollaborateur(collaborateur : Collaborateur):Observable<Collaborateur>{ updateCollaborateur(collaborateur : Collaborateur):Observable<Collaborateur>{
let body = JSON.stringify(collaborateur); let body = JSON.stringify(collaborateur);
return this.http.put<Collaborateur>(this.collaborateursUrl + "/" + collaborateur.id, body, this.httpOptions); return this.http.put<Collaborateur>(this.collaborateursUrl + "/" + collaborateur.id, body, this.httpOptions);
} }
deleteCollaborateur(collaborateur: Collaborateur) { deleteCollaborateur(collaborateur: Collaborateur) {
@ -36,6 +37,15 @@ export class CollaborateurService {
addCollaborateur(collaborateur: Collaborateur): Observable<Collaborateur> { addCollaborateur(collaborateur: Collaborateur): Observable<Collaborateur> {
let body = JSON.stringify(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