diff --git a/src/app/components/agence/agence-edit/agence-edit.component.ts b/src/app/components/agence/agence-edit/agence-edit.component.ts index da5f702..6a2868e 100644 --- a/src/app/components/agence/agence-edit/agence-edit.component.ts +++ b/src/app/components/agence/agence-edit/agence-edit.component.ts @@ -15,11 +15,11 @@ import {take, tap} from "rxjs/operators"; styleUrls: ['./agence-edit.component.scss'] }) export class AgenceEditComponent implements OnInit { - agence = {} as Agence; - agenceObservable!:Observable; businessUnits : Businessunit[] = []; businessUnit = {} as Businessunit ; + agence = {} as Agence; + agenceObservable!:Observable; id: number; registerForm!: FormGroup; diff --git a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts index 4dd786b..a7f6aa5 100644 --- a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts +++ b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts @@ -15,10 +15,9 @@ import {take, tap} from "rxjs/operators"; export class BusinessunitEditComponent implements OnInit { businessunit! : Observable ; - bu! : Businessunit ; + bu = {} as Businessunit ; id: number; - registerForm!: FormGroup; submitted = false; @@ -31,7 +30,7 @@ export class BusinessunitEditComponent implements OnInit { this.id = Number(this.route.snapshot.paramMap.get('id')) } - async ngOnInit(): Promise { + async ngOnInit() { this.registerForm = this.formBuilder.group({ name: ['', Validators.required] }); @@ -39,20 +38,17 @@ export class BusinessunitEditComponent implements OnInit { this.bu = await this.businessunit.pipe(take(1)).toPromise() } - async save() { - if (this.businessunit) { - this.businessunitService.updateBusinessunit(this.bu, this.id) - .subscribe(() => this.goBack()); - } - } - - async onSubmit() { + onSubmit() { this.submitted = true; if (this.registerForm.invalid) { return; } this.bu.name = this.registerForm.value.name - await this.save() + + if (this.businessunit) { + this.businessunitService.updateBusinessunit(this.bu, this.id) + .subscribe(() => this.goBack()); + } } get f() { return this.registerForm.controls; } diff --git a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html index ff4a762..182d526 100644 --- a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html +++ b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html @@ -5,7 +5,9 @@
{{collaborateur.id}}
-
+
diff --git a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts index 9852e21..8cc87b9 100644 --- a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts +++ b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts @@ -6,6 +6,8 @@ import { CollaborateurService} from "../../../services/collaborateur.service"; import {BusinessunitService} from "../../../services/businessunit.service"; import {FormBuilder, FormGroup, Validators} from "@angular/forms"; import {Businessunit} from "../../../interfaces/businessunit"; +import {Observable} from "rxjs"; +import {take, tap} from "rxjs/operators"; @Component({ selector: 'app-collaborateur-edit', @@ -13,10 +15,14 @@ import {Businessunit} from "../../../interfaces/businessunit"; styleUrls: ['./collaborateur-edit.component.scss'] }) export class CollaborateurEditComponent implements OnInit { + + collaborateurObservable! : Observable; + id: number; + collaborateur = {} as Collaborateur; + businessUnit = {} as Businessunit ; collaborateurs : Collaborateur[] = []; businessUnits : Businessunit[] = []; - businessUnit = {} as Businessunit ; rDate : String = ""; bDate : String = ""; @@ -30,11 +36,12 @@ export class CollaborateurEditComponent implements OnInit { private businessunitService: BusinessunitService, private location: Location, private formBuilder: FormBuilder - ) { } + ) { + this.id = Number(this.route.snapshot.paramMap.get('id')) + } - ngOnInit(): void { + async ngOnInit() { this.getCollaborateurs() - this.getCollaborateur(); this.getBusinessunits(); this.registerForm = this.formBuilder.group({ name: ['', Validators.required], @@ -51,6 +58,8 @@ export class CollaborateurEditComponent implements OnInit { referrerId: ['', Validators.required], businessUnitId: ['', Validators.required], }); + this.collaborateurObservable = this.collaborateurService.getCollaborateur(this.id).pipe(tap(collaborateur => this.registerForm.patchValue(collaborateur))) + this.collaborateur = await this.collaborateurObservable.pipe(take(1)).toPromise() if (this.collaborateur.resignationDate) { this.rDate = new Date(this.collaborateur.resignationDate).toISOString().split('T')[0]; } @@ -64,12 +73,6 @@ export class CollaborateurEditComponent implements OnInit { .subscribe(collaborateurs => this.collaborateurs = collaborateurs); } - getCollaborateur(): void { - const id = Number(this.route.snapshot.paramMap.get('id')) - this.collaborateurService.getCollaborateur(id) - .subscribe(collaborateur => this.collaborateur = collaborateur); - } - getBusinessunits():void { this.businessunitService.getBusinessunits() .subscribe(businessunits => this.businessUnits = businessunits); @@ -79,13 +82,6 @@ export class CollaborateurEditComponent implements OnInit { this.location.back(); } - save():void{ - if (this.collaborateur){ - this.collaborateurService.updateCollaborateur(this.collaborateur) - .subscribe(()=>this.goBack()); - } - } - delete():void { if (this.collaborateur){ this.collaborateurService.deleteCollaborateur(this.collaborateur) @@ -99,8 +95,25 @@ export class CollaborateurEditComponent implements OnInit { if (this.registerForm.invalid) { return; } - this.collaborateur = this.registerForm.value - this.save() + + this.collaborateur.name = this.registerForm.value.name + this.collaborateur.firstName = this.registerForm.value.firstName + this.collaborateur.birthDate = this.registerForm.value.birthDate + this.collaborateur.gender = this.registerForm.value.gender + this.collaborateur.resignationDate = this.registerForm.value.resignationDate + this.collaborateur.businessUnitId = this.registerForm.value.businessUnitId + this.collaborateur.referrerId = this.registerForm.value.referrerId + this.collaborateur.apsideMail = this.registerForm.value.apsideMail + this.collaborateur.personalMail = this.registerForm.value.personalMail + this.collaborateur.telephone = this.registerForm.value.telephone + this.collaborateur.address = this.registerForm.value.address + 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()); + } } get f() { return this.registerForm.controls; } diff --git a/src/app/services/businessunit.service.ts b/src/app/services/businessunit.service.ts index ff8b7ab..dbf35fb 100644 --- a/src/app/services/businessunit.service.ts +++ b/src/app/services/businessunit.service.ts @@ -29,10 +29,6 @@ export class BusinessunitService { return this.http.put(this.businessunitsUrl + "/" + id, body, this.httpOptions); } - deleteBusinessunit(businessunit: Businessunit) { - return this.http.delete(this.businessunitsUrl + "/" + businessunit.id); - } - addBusinessunit(businessunit: Businessunit): Observable { let body = JSON.stringify(businessunit); return this.http.post(this.businessunitsUrl, body, this.httpOptions);