employeeService/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts

60 lines
2.2 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Observable, of } from 'rxjs';
import { EmployeeResponseDTO } from '../../models/mitarbeiter';
import { EmployeeService } from '../../service/employee.service';
import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { Router } from '@angular/router';
@Component({
selector: 'app-mitarbeiterverwaltung-view',
templateUrl: './mitarbeiterverwaltung-view.component.html',
styleUrls: ['./mitarbeiterverwaltung-view.component.css'],
standalone: true,
imports: [CommonModule, ReactiveFormsModule]
})
export class MitarbeiterverwaltungViewComponent implements OnInit {
employees: Array<EmployeeResponseDTO> = [];
searchForm!: FormGroup;
constructor(private employeeService: EmployeeService, private router: Router) {}
submit() {
const searchTerm = this.searchForm.get("search")?.value || '';
this.employeeService.getAllEmployees().subscribe(employees => {
let foundEmployees: Array<EmployeeResponseDTO> = [];
for (const employee of employees) {
if (
employee.firstName.toLowerCase().includes(searchTerm.toLowerCase()) ||
employee.lastName.toLowerCase().includes(searchTerm.toLowerCase()) ||
employee.street.toLowerCase().includes(searchTerm.toLowerCase()) ||
employee.postcode.toLowerCase().includes(searchTerm.toLowerCase()) ||
employee.city.toLowerCase().includes(searchTerm.toLowerCase()) ||
employee.phone.toLowerCase().includes(searchTerm.toLowerCase()) ||
searchTerm == ''
) {
foundEmployees.push(employee);
}
}
this.employees = foundEmployees;
});
}
editEmployee(id: number) {
this.router.navigate([`/mitarbeiterbearbeiten/${id}`]);
}
deleteEmployee(id: number) {
this.employeeService.deleteEmployee(id);
this.employees = this.employees.filter(employee => employee.id != id);
}
ngOnInit(): void {
this.searchForm = new FormGroup({
search: new FormControl(''),
});
this.employeeService.getAllEmployees().subscribe(employees => this.employees = employees);
}
}