feat(mitarbeiter-bearbeiten): add employee update functionality

This commit is contained in:
Jan K9f 2025-01-15 11:30:39 +01:00
parent d86af94ac8
commit 8abc5855dd
Signed by: jank
GPG key ID: 50620ADD22CD330B
6 changed files with 47 additions and 5 deletions

View file

@ -22,6 +22,7 @@ export class MitarbeiterFormComponent {
public mitarbeiterForm!: FormGroup;
public allSkills: Observable<Array<QualificationGetDTO>> = of([]);
public hasAllSkills: boolean = false;
constructor(public http: HttpClient, public router: Router, private employeeService: EmployeeService, private skillService: SkillService) {
@ -43,18 +44,47 @@ export class MitarbeiterFormComponent {
this.setupForm();
}
skillsChanged() {
this.allSkills.subscribe(skills => {
this.hasAllSkills = this.checkAllSkills(skills);
});
}
ngOnInit(): void {
this.allSkills = this.skillService.getAllSkills();
this.skillsChanged();
this.setupForm();
}
removeSkill(id?: number) {
this.mitarbeiter.skillSet = this.mitarbeiter.skillSet?.filter(skill => skill.id !== id);
this.skillsChanged();
}
checkAllSkills(skills: Array<QualificationGetDTO>): boolean {
const skillSet = this.mitarbeiter.skillSet || [];
return skills.every(skill =>
skillSet.some(givenSkill => skill.id === givenSkill.id)
);
}
hasSkill(id: number): boolean {
for (const skill of this.mitarbeiter.skillSet || []) {
if (skill.id == id) {
return true;
}
}
return false;
}
addSkill() {
const id = Number(this.mitarbeiterForm.get("newSkill")?.value);
this.employeeService.addSkillToEmployee(id, this.mitarbeiter);
this.allSkills.subscribe(skills => {
const newSkill = skills.filter(skill => skill.id == id)[0];
this.mitarbeiter.skillSet?.push(newSkill);
this.skillsChanged();
});
}
submit() {
@ -65,8 +95,6 @@ export class MitarbeiterFormComponent {
this.mitarbeiter.city = this.mitarbeiterForm.get("city")?.value;
this.mitarbeiter.phone = this.mitarbeiterForm.get("phone")?.value;
console.log(this.mitarbeiterForm);
console.log(this.mitarbeiter);
this.mitarbeiterChange.emit(this.mitarbeiter);
}
}