diff --git a/src/app/components/qualifikation-form/qualifikation-form.component.html b/src/app/components/qualifikation-form/qualifikation-form.component.html
index d00be94..cdd67ea 100644
--- a/src/app/components/qualifikation-form/qualifikation-form.component.html
+++ b/src/app/components/qualifikation-form/qualifikation-form.component.html
@@ -11,17 +11,7 @@
Employees possessing the qualification
- @for (employee of (employees | async)?.employees; track employee) {
- @if (!isEmployeeHidden(employee.id)) {
- -
-
- {{employee.firstName}} {{employee.lastName}}
-
- }
- }
- @for (employee of addedEmployees | async; track employee) {
+ @for (employee of addedEmployees; track employee) {
-
-
+ @if (addableEmployees.length > 0) {
-
+
+ }
diff --git a/src/app/components/qualifikation-form/qualifikation-form.component.ts b/src/app/components/qualifikation-form/qualifikation-form.component.ts
index a6f1e82..166d26b 100644
--- a/src/app/components/qualifikation-form/qualifikation-form.component.ts
+++ b/src/app/components/qualifikation-form/qualifikation-form.component.ts
@@ -19,58 +19,11 @@ export class QualifikationFormComponent {
@Output() skillChange = new EventEmitter();
public skillForm!: FormGroup;
- public employees: Observable = of();
- public allEmployees: Observable> = of([]);
- public hiddenEmployees: Array = [];
- public addedEmployees: Observable> = of([]);
- public addedEmployeesIds: Array = [];
- errorMessages: Record = {};
+ public addableEmployees: Array = [];
+ public addedEmployees: Array = [];
constructor(private skillService: SkillService, private employeeService: EmployeeService) { }
- removeEmployee(id: number) {
- this.hiddenEmployees.push(id);
- }
-
- isEmployeeHidden(id: number) {
- for (const employeeId of this.hiddenEmployees) {
- if (id == employeeId) {
- return true
- }
- }
-
- return false;
- }
-
- employeeHasSkill(employee: EmployeeResponseDTO) {
-
- for (const id of this.addedEmployeesIds) {
- console.log(id, employee.id);
- if (id == employee.id) {
- return true;
- }
- }
-
- for (const employeeSkill of employee.skillSet || []) {
- if (employeeSkill.id == this.skill.id) {
- return true;
- }
- }
-
- return false;
- }
-
- addEmployee() {
- console.log("a");
- const employeeId = this.skillForm.get("newEmployee")?.value;
- this.employeeService.getEmployeeById(employeeId).subscribe(employee => {
- this.addedEmployees.pipe(tap(employeeList => {
- employeeList.push(employee);
- this.addedEmployeesIds.push(employee.id);
- })).subscribe();
- });
- }
-
setUpForm() {
this.skillForm = new FormGroup({
name: new FormControl(this.skill.skill, Validators.required),
@@ -78,13 +31,54 @@ export class QualifikationFormComponent {
});
}
+
+ addEmployee() {
+ console.log("called");
+ const employeeId = Number(this.skillForm.get("newEmployee")?.value);
+ const employee = this.addableEmployees.find(emp => emp.id === employeeId);
+
+ if (employee) {
+ this.addableEmployees = this.addableEmployees.filter(emp => emp.id !== employeeId);
+
+ this.addedEmployees.push(employee);
+ }
+ }
+
+ removeEmployee(employeeId: number) {
+ const employee = this.addedEmployees.find(emp => emp.id === employeeId);
+
+ if (employee) {
+ this.addedEmployees = this.addedEmployees.filter(emp => emp.id !== employeeId);
+
+ this.employeeService.getEmployeeById(employee.id).subscribe(employeeDto => {
+ this.addableEmployees.push(employeeDto);
+ });
+ }
+ }
+
+ updateEmployeeLists() {
+ if (this.skill.id != -1) {
+ this.employeeService.getAllEmployees().subscribe(employees => {
+ this.addableEmployees = employees;
+
+ this.skillService.getEmployeesBySkill(this.skill.id).subscribe(addedEmployeesResponse => {
+ this.addedEmployees = addedEmployeesResponse.employees;
+
+ this.addableEmployees = this.addableEmployees.filter(employee => {
+ return !this.addedEmployees.some(added => added.id === employee.id);
+ });
+ });
+ });
+ }
+ }
+
ngOnChanges(): void {
this.setUpForm();
- this.employees = this.skillService.getEmployeesBySkill(this.skill.id);
+ this.updateEmployeeLists();
}
ngOnInit() {
this.setUpForm();
- this.allEmployees = this.employeeService.getAllEmployees();
+ this.updateEmployeeLists();
}
}
diff --git a/src/app/components/qualifikaton-bearbeiten-view/qualifikaton-bearbeiten-view.component.ts b/src/app/components/qualifikaton-bearbeiten-view/qualifikaton-bearbeiten-view.component.ts
index ed279c8..2ad4759 100644
--- a/src/app/components/qualifikaton-bearbeiten-view/qualifikaton-bearbeiten-view.component.ts
+++ b/src/app/components/qualifikaton-bearbeiten-view/qualifikaton-bearbeiten-view.component.ts
@@ -23,7 +23,7 @@ export class QualifikatonBearbeitenViewComponent {
ngOnInit(): void {
this.skill = {
- id: 0,
+ id: -1,
skill: '',
};