diff --git a/src/app/employee/edit/edit.component.html b/src/app/employee/edit/edit.component.html index d782a1a..93dd8ce 100644 --- a/src/app/employee/edit/edit.component.html +++ b/src/app/employee/edit/edit.component.html @@ -36,6 +36,15 @@ + + Qualifications + + + {{qualification.skill}} + + + + diff --git a/src/app/employee/edit/edit.component.ts b/src/app/employee/edit/edit.component.ts index 535f94d..10d5723 100644 --- a/src/app/employee/edit/edit.component.ts +++ b/src/app/employee/edit/edit.component.ts @@ -8,12 +8,15 @@ import { MatDialogRef, MatDialogTitle } from "@angular/material/dialog"; -import {NgIf} from "@angular/common"; +import {NgForOf, NgIf} from "@angular/common"; import {MatFormField} from "@angular/material/form-field"; import {MatInput, MatLabel} from "@angular/material/input"; import {MatButton} from "@angular/material/button"; import {Employee} from "../Employee"; import EmployeeApiService from "../../services/employee-api.service"; +import QualificationService from "../../services/qualification.service"; +import {Qualification} from "../../qualification/Qualification"; +import {MatOption, MatSelect} from "@angular/material/select"; @Component({ selector: 'app-edit', @@ -27,7 +30,10 @@ import EmployeeApiService from "../../services/employee-api.service"; MatDialogActions, MatButton, MatDialogClose, - MatLabel + MatLabel, + MatSelect, + MatOption, + NgForOf ], templateUrl: './edit.component.html', standalone: true, @@ -37,10 +43,13 @@ export class EditComponent implements OnInit { employeeForm: FormGroup | null = null; formBuilder: FormBuilder = inject(FormBuilder); employeeService: EmployeeApiService = inject(EmployeeApiService); + qualificationService: QualificationService = inject(QualificationService); dialogRef: MatDialogRef = inject(MatDialogRef); employee: Employee = inject(MAT_DIALOG_DATA); + qualifications: Qualification[] = []; ngOnInit(): void { + this.loadQualifications(); this.employeeForm = this.formBuilder.group({ firstName: [this.employee.firstName, Validators.required], lastName: [this.employee.lastName, Validators.required], @@ -48,9 +57,16 @@ export class EditComponent implements OnInit { postcode: [this.employee.postcode, [Validators.required, Validators.minLength(5), Validators.maxLength(5)]], city: [this.employee.city, Validators.required], phone: [this.employee.phone, Validators.required], + qualifications: [this.employee.skillSet?.map(skill => skill.id) || []] }); } + loadQualifications() { + this.qualificationService.getAll().subscribe( + qualifications => this.qualifications = qualifications + ); + } + submit() { if (this.employeeForm === null || !this.employeeForm.valid) { console.error('Form invalid'); @@ -62,7 +78,13 @@ export class EditComponent implements OnInit { return; } - this.employeeService.update(this.employeeForm.value as Employee, this.employee.id).subscribe(); + const formValue = this.employeeForm.value; + const employeeData = { + ...formValue, + skillSet: formValue.qualifications + }; + + this.employeeService.update(employeeData as Employee, this.employee.id).subscribe(); this.dialogRef.close(); } } diff --git a/src/app/services/employee-api.service.ts b/src/app/services/employee-api.service.ts index c134dad..16aded1 100644 --- a/src/app/services/employee-api.service.ts +++ b/src/app/services/employee-api.service.ts @@ -25,6 +25,6 @@ export default class EmployeeApiService { } public update(employee: Employee, id: number) { - return this.http.patch(`${EmployeeApiService.BASE_URL}/employees/${id}`, employee) + return this.http.put(`${EmployeeApiService.BASE_URL}/employees/${id}`, employee) } }