diff --git a/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.html b/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.html
index 0d53245..682a986 100644
--- a/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.html
+++ b/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.html
@@ -1 +1 @@
-
+
diff --git a/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.ts b/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.ts
index a07c020..40a8719 100644
--- a/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.ts
+++ b/src/app/components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component.ts
@@ -16,6 +16,10 @@ export class MitarbeiterBearbeitenViewComponent {
constructor(private employeeService: EmployeeService, private route: ActivatedRoute) { }
+ submitted(mitarbeiter: EmployeeResponseDTO) {
+ this.employeeService.updateEmployee(mitarbeiter);
+ }
+
ngOnInit(): void {
this.mitarbeiter = {
id: 0,
diff --git a/src/app/components/mitarbeiter-form/mitarbeiter-form.component.html b/src/app/components/mitarbeiter-form/mitarbeiter-form.component.html
index 2dae44f..7406844 100644
--- a/src/app/components/mitarbeiter-form/mitarbeiter-form.component.html
+++ b/src/app/components/mitarbeiter-form/mitarbeiter-form.component.html
@@ -41,14 +41,18 @@
}
+ @if (!hasAllSkills) {
+ }
diff --git a/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts b/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts
index c242ba6..95014cb 100644
--- a/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts
+++ b/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts
@@ -22,6 +22,7 @@ export class MitarbeiterFormComponent {
public mitarbeiterForm!: FormGroup;
public allSkills: Observable> = 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): 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);
}
}
diff --git a/src/app/models/skill.ts b/src/app/models/skill.ts
index b3db681..43b4411 100644
--- a/src/app/models/skill.ts
+++ b/src/app/models/skill.ts
@@ -1,3 +1,5 @@
+import { EmployeeNameDataDTO } from "./mitarbeiter";
+
export interface QualificationGetDTO {
id: number,
skill: string,
@@ -9,4 +11,5 @@ export interface QualificationPostDTO {
export interface EmployeesForAQualificationDTO {
qualification: QualificationGetDTO,
+ employees: Array,
}
diff --git a/src/app/service/employee.service.ts b/src/app/service/employee.service.ts
index 3afb443..a8a4d38 100644
--- a/src/app/service/employee.service.ts
+++ b/src/app/service/employee.service.ts
@@ -8,7 +8,7 @@ import { SkillService } from "./skill.service";
providedIn: 'root'
})
export class EmployeeService {
- constructor(private http: HttpClient) {}
+ constructor(private http: HttpClient) { }
responseDtoToPutDto(employee: EmployeeResponseDTO): EmployeeRequestPutDTO {
@@ -23,6 +23,9 @@ export class EmployeeService {
}
}
+ updateEmployee(employee: EmployeeResponseDTO) {
+ this.http.put(`${SkillService.BASE_URL}/employees/${employee.id}`, this.responseDtoToPutDto(employee)).subscribe();
+ }
getAllEmployees(): Observable> {
return this.http.get>(`${SkillService.BASE_URL}/employees`);