-
Zurück
+
-
Name des Mitarbeiters
-
Straße: Straße des Benutzers
-
Postleitzahl: Postleitzahl des Benutzers
-
Stadt: Stadt des Benutzers
-
Telefonnummer: Telefonnummer des Benutzers
-
-
+
{{ employee.firstName }} {{ employee.lastName }}
+
Straße: {{ employee.street }}
+
Postleitzahl: {{ employee.postcode }}
+
Stadt: {{ employee.city }}
+
Telefonnummer: {{ employee.phone }}s
+
+
+
Qualifikationen
- - Qualifikation 1
- - Qualifikation 2
- - Qualifikation 3
- - Qualifikation 4
- - Qualifikation 5
+ @for(skill of skillSet; track skill) {
+ - {{ skill }}
+ }
+
diff --git a/src/app/components/employee-detail/employee-detail.component.ts b/src/app/components/employee-detail/employee-detail.component.ts
index 9fe85a8..6b6dfd2 100644
--- a/src/app/components/employee-detail/employee-detail.component.ts
+++ b/src/app/components/employee-detail/employee-detail.component.ts
@@ -1,5 +1,11 @@
-import { Component } from '@angular/core';
-import { NavigationBarComponent } from '../navigation-bar/navigation-bar.component';
+import {Component} from '@angular/core';
+import {NavigationBarComponent} from '../navigation-bar/navigation-bar.component';
+import {EmployeeNameAndSkillDataDTO, EmployeeResponseDTO} from "../../models/mitarbeiter";
+import {EmployeeService} from "../../service/employee.service";
+import {ActivatedRoute, Router} from "@angular/router";
+import {Observable} from "rxjs";
+import {QualificationGetDTO} from "../../models/skill";
+import {SkillService} from "../../service/skill.service";
@Component({
selector: 'app-employee-detail',
@@ -9,5 +15,31 @@ import { NavigationBarComponent } from '../navigation-bar/navigation-bar.compone
styleUrl: './employee-detail.component.css'
})
export class EmployeeDetailComponent {
+ employee!: EmployeeResponseDTO;
+ skillSet: string[] = [];
+ currentId: number = 0;
+ constructor(private employeeService: EmployeeService, private router: Router, private route: ActivatedRoute, private skillService: SkillService) {
+ this.currentId = this.route.snapshot.params['id'];
+ this.employeeService.getEmployeeById(this.route.snapshot.params['id']).subscribe(employee => {
+ this.employee = employee;
+ this.skillSet = this.employee.skillSet?.map(skill => skill.skill) || [];
+ });
+ }
+
+ editEmployee(id: number) {
+ this.router.navigate([`/mitarbeiterbearbeiten/${id}`]);
+ }
+
+ goToEmployeePage(){
+ this.router.navigate(['mitarbeiter']);
+ }
+
+ deleteEmployee(id: number) {
+ this.employeeService.deleteEmployee(id);
+ this.router.navigate([`mitarbeiter`]);
+ }
+
+
+ protected readonly EmployeeService = EmployeeService;
}
diff --git a/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts
index c21bc4e..4ff3a0e 100644
--- a/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts
+++ b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts
@@ -17,6 +17,7 @@ export class MitarbeiterErstellenComponent {
constructor(private employeeService: EmployeeService, private route: ActivatedRoute, private router: Router) { }
submitted(mitarbeiter: EmployeeResponseDTO) {
+ console.log(mitarbeiter)
this.employeeService.createEmployee(mitarbeiter);
this.returnToEmployeeOverview();
}
diff --git a/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts b/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts
index f9ed6af..8e6e536 100644
--- a/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts
+++ b/src/app/components/mitarbeiter-form/mitarbeiter-form.component.ts
@@ -11,7 +11,7 @@ import { Observable, of } from 'rxjs';
@Component({
selector: 'app-mitarbeiter-form',
standalone: true,
- imports: [MitarbeiterFormComponent, ReactiveFormsModule, NgFor, AsyncPipe],
+ imports: [ReactiveFormsModule, NgFor, AsyncPipe],
templateUrl: './mitarbeiter-form.component.html',
styleUrl: './mitarbeiter-form.component.css'
})
@@ -24,9 +24,7 @@ export class MitarbeiterFormComponent {
public hasAllSkills: boolean = false;
errorMessages: Record
= {};
- constructor(public http: HttpClient, public router: Router, private skillService: SkillService) {
-
- }
+ constructor(public http: HttpClient, public router: Router, private skillService: SkillService) {}
returnToEmployeeOverview() {
this.router.navigate(["mitarbeiter"]);
@@ -40,7 +38,7 @@ export class MitarbeiterFormComponent {
postcode: new FormControl(this.mitarbeiter.postcode, [Validators.required, Validators.minLength(5), Validators.maxLength(5)]),
city: new FormControl(this.mitarbeiter.city, Validators.required),
phone: new FormControl(this.mitarbeiter.phone, [Validators.required, Validators.pattern('^[- +()0-9]+$')]),
- newSkill: new FormControl(),
+ newSkill: new FormControl(null, Validators.required) // Added
});
}
@@ -88,6 +86,7 @@ export class MitarbeiterFormComponent {
const newSkill = skills.filter(skill => skill.id == id)[0];
this.mitarbeiter.skillSet?.push(newSkill);
this.skillsChanged();
+ this.mitarbeiterForm.get("newSkill")?.reset(null); // Added
});
}
diff --git a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html
index 467faee..7dc65ab 100644
--- a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html
+++ b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html
@@ -46,7 +46,7 @@
{{ employee.city }} |
{{ employee.phone }} |
-
+
|
diff --git a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts
index 8415072..dfc55f1 100644
--- a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts
+++ b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts
@@ -17,7 +17,9 @@ export class MitarbeiterverwaltungViewComponent implements OnInit {
employees: Array = [];
searchForm!: FormGroup;
- constructor(private employeeService: EmployeeService, private router: Router) {}
+ constructor(private employeeService: EmployeeService, private router: Router) {
+ this.updateEmployees();
+ }
submit() {
const searchTerm = this.searchForm.get("search")?.value || '';
@@ -55,10 +57,18 @@ export class MitarbeiterverwaltungViewComponent implements OnInit {
this.employees = this.employees.filter(employee => employee.id != id);
}
+ goToEmployeeDetailPage(id: number){
+ this.router.navigate([`/mitarbeiterdetails/${id}`]);
+ }
+
+ updateEmployees() {
+ this.employeeService.getAllEmployees().subscribe(employees => this.employees = employees);
+ }
+
ngOnInit(): void {
this.searchForm = new FormGroup({
search: new FormControl(''),
});
- this.employeeService.getAllEmployees().subscribe(employees => this.employees = employees);
+ this.updateEmployees();
}
}
diff --git a/src/app/service/skill.service.ts b/src/app/service/skill.service.ts
index d0321a2..cd2af5d 100644
--- a/src/app/service/skill.service.ts
+++ b/src/app/service/skill.service.ts
@@ -1,10 +1,10 @@
-import { HttpClient } from "@angular/common/http";
-import { Injectable } from "@angular/core";
-import { EmployeesForAQualificationDTO, QualificationGetDTO, QualificationPostDTO } from "../models/skill";
-import { Observable } from "rxjs";
-import { EmployeeNameDataDTO } from "../models/mitarbeiter";
-import { EmployeeService } from "./employee.service";
-import { Environment } from "../environments/environment";
+import {HttpClient} from "@angular/common/http";
+import {Injectable} from "@angular/core";
+import {EmployeesForAQualificationDTO, QualificationGetDTO, QualificationPostDTO} from "../models/skill";
+import {Observable} from "rxjs";
+import {EmployeeNameAndSkillDataDTO, EmployeeNameDataDTO} from "../models/mitarbeiter";
+import {EmployeeService} from "./employee.service";
+import {Environment} from "../environments/environment";
@Injectable({
providedIn: 'root'
@@ -47,4 +47,9 @@ export class SkillService {
getEmployeesBySkill(id: number): Observable {
return this.http.get(`${SkillService.BASE_URL}/qualifications/${id}/employees`);
}
+
+ getSkillsOfEmployee(id: number): Observable {
+ return this.http.get(`${SkillService.BASE_URL}/employees/${id}/qualifications`);
+ }
+
}