Fix des champs non modifies non reconnus pour les businessUnits

pull/12/head
Clement FERRERE 2 years ago
parent 7aa43aafdd
commit b2339e34cd
  1. 12
      src/app/components/businessunit/businessunit-edit/businessunit-edit.component.html
  2. 61
      src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts
  3. 8
      src/app/services/businessunit.service.ts

@ -1,14 +1,17 @@
<div *ngIf="businessunit"> <div *ngIf="businessunit">
<h2>{{businessunit.name | uppercase}} </h2> <h2>{{bu.name | uppercase}} </h2>
<div><span>id : </span>{{businessunit.id}}</div> <div><span>id : </span>{{bu.id}}</div>
<form [formGroup]="registerForm" (ngSubmit)="onSubmit()" > <form
*ngIf="businessunit | async;"
[formGroup]="registerForm"
(ngSubmit)="onSubmit()" >
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3 mb-2"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3 mb-2">
<label class="form-label">Nom</label> <label class="form-label">Nom</label>
<input class="form-control" formControlName="name" [ngClass]="{ 'is-invalid': submitted && f.name.errors }" [value]="businessunit.name"> <input class="form-control" formControlName="name" [ngClass]="{ 'is-invalid': submitted && f.name.errors }">
<div *ngIf="submitted && f.name.errors" class="invalid-feedback"> <div *ngIf="submitted && f.name.errors" class="invalid-feedback">
<div *ngIf="f.name.errors.required">Le nom d'une business unit est obligatoire</div> <div *ngIf="f.name.errors.required">Le nom d'une business unit est obligatoire</div>
</div> </div>
@ -17,7 +20,6 @@
<div> <div>
<button (click)="goBack()">Retour</button> <button (click)="goBack()">Retour</button>
<button type="submit">Sauvegarder les changements</button> <button type="submit">Sauvegarder les changements</button>
<button (click)="delete()">Supprimer la business unit</button>
<button type="reset" (click)="onReset()">Effacer</button> <button type="reset" (click)="onReset()">Effacer</button>
</div> </div>
</form> </form>

@ -4,8 +4,8 @@ import {ActivatedRoute} from "@angular/router";
import {BusinessunitService} from "../../../services/businessunit.service"; import {BusinessunitService} from "../../../services/businessunit.service";
import {Location} from "@angular/common"; import {Location} from "@angular/common";
import {FormBuilder, FormGroup, Validators} from "@angular/forms"; import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {Agence} from "../../../interfaces/agence"; import {Observable} from "rxjs";
import {AgenceService} from "../../../services/agence.service"; import {take, tap} from "rxjs/operators";
@Component({ @Component({
selector: 'app-businessunit-edit', selector: 'app-businessunit-edit',
@ -14,8 +14,9 @@ import {AgenceService} from "../../../services/agence.service";
}) })
export class BusinessunitEditComponent implements OnInit { export class BusinessunitEditComponent implements OnInit {
businessunit = {} as Businessunit ; businessunit! : Observable<Businessunit> ;
agences : Agence[] = []; bu! : Businessunit ;
id: number;
registerForm!: FormGroup; registerForm!: FormGroup;
@ -24,56 +25,34 @@ export class BusinessunitEditComponent implements OnInit {
constructor( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private businessunitService: BusinessunitService, private businessunitService: BusinessunitService,
private agenceService: AgenceService,
private location: Location, private location: Location,
private formBuilder: FormBuilder private formBuilder: FormBuilder
) { } ) {
this.id = Number(this.route.snapshot.paramMap.get('id'))
}
ngOnInit(): void { async ngOnInit(): Promise<void> {
this.getBusinessunit();
this.getAgences();
this.registerForm = this.formBuilder.group({ this.registerForm = this.formBuilder.group({
name: ['', Validators.required] name: ['', Validators.required]
}); });
this.businessunit = this.businessunitService.getBusinessunit(this.id).pipe(tap(businessUnit => this.registerForm.patchValue(businessUnit)));
this.bu = await this.businessunit.pipe(take(1)).toPromise()
} }
getAgences():void { async save() {
this.agenceService.getAgences() if (this.businessunit) {
.subscribe(agences => this.agences = agences); this.businessunitService.updateBusinessunit(this.bu, this.id)
} .subscribe(() => this.goBack());
getBusinessunit(): void {
const id = Number(this.route.snapshot.paramMap.get('id'))
this.businessunitService.getBusinessunit(id)
.subscribe(businessunit => this.businessunit = businessunit);
}
goBack(): void {
this.location.back();
}
save():void{
if (this.businessunit){
this.businessunitService.updateBusinessunit(this.businessunit)
.subscribe(()=>this.goBack());
} }
} }
delete():void { async onSubmit() {
if (this.businessunit){
this.businessunitService.deleteBusinessunit(this.businessunit)
.subscribe(()=>this.goBack());
}
}
onSubmit() {
this.submitted = true; this.submitted = true;
if (this.registerForm.invalid) { if (this.registerForm.invalid) {
return; return;
} }
this.businessunit.name = this.registerForm.value.name this.bu.name = this.registerForm.value.name
this.save() await this.save()
} }
get f() { return this.registerForm.controls; } get f() { return this.registerForm.controls; }
@ -83,4 +62,8 @@ export class BusinessunitEditComponent implements OnInit {
this.registerForm.reset(); this.registerForm.reset();
} }
goBack(): void {
this.location.back();
}
} }

@ -21,12 +21,12 @@ export class BusinessunitService {
} }
getBusinessunit(id : number):Observable<Businessunit>{ getBusinessunit(id : number):Observable<Businessunit>{
return this.http.get<Businessunit>(this.businessunitsUrl+"/"+id); return this.http.get<Businessunit>(this.businessunitsUrl + "/" + id);
} }
updateBusinessunit(businessunit : Businessunit):Observable<Businessunit>{ updateBusinessunit(businessunit: Businessunit, id:number):Observable<Businessunit>{
let body = JSON.stringify(businessunit); let body= JSON.stringify(businessunit);
return this.http.put<Businessunit>(this.businessunitsUrl + "/" + businessunit.id, body, this.httpOptions); return this.http.put<Businessunit>(this.businessunitsUrl + "/" + id, body, this.httpOptions);
} }
deleteBusinessunit(businessunit: Businessunit) { deleteBusinessunit(businessunit: Businessunit) {

Loading…
Cancel
Save