61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
import {Component, inject, OnInit} from '@angular/core';
|
|
import {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from "@angular/forms";
|
|
import {MatFormField, MatLabel} from "@angular/material/form-field";
|
|
import {MatInput} from "@angular/material/input";
|
|
import {MatButton} from "@angular/material/button";
|
|
import {
|
|
MatDialogActions,
|
|
MatDialogClose,
|
|
MatDialogContent,
|
|
MatDialogRef,
|
|
MatDialogTitle
|
|
} from "@angular/material/dialog";
|
|
import {Employee} from "../Employee";
|
|
import EmployeeApiService from "../services/employee-api.service";
|
|
import {catchError} from "rxjs";
|
|
|
|
@Component({
|
|
selector: 'app-create-employee',
|
|
imports: [
|
|
ReactiveFormsModule,
|
|
MatFormField,
|
|
MatInput,
|
|
MatButton,
|
|
MatLabel,
|
|
MatDialogContent,
|
|
MatDialogTitle,
|
|
MatDialogActions,
|
|
MatDialogClose
|
|
],
|
|
templateUrl: './create-employee.component.html',
|
|
standalone: true,
|
|
styleUrl: './create-employee.component.css'
|
|
})
|
|
export class CreateEmployeeComponent implements OnInit{
|
|
employeeForm!: FormGroup;
|
|
employeeService: EmployeeApiService = inject(EmployeeApiService);
|
|
formBuilder: FormBuilder = inject(FormBuilder);
|
|
dialogRef: MatDialogRef<CreateEmployeeComponent> = inject(MatDialogRef);
|
|
|
|
ngOnInit(): void {
|
|
this.employeeForm = this.formBuilder.group({
|
|
firstName: ['', Validators.required],
|
|
lastName: ['', Validators.required],
|
|
street: ['', Validators.required],
|
|
postcode: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(5)]],
|
|
city: ['', Validators.required],
|
|
phone: ['', Validators.required],
|
|
});
|
|
}
|
|
|
|
submit() {
|
|
if (!this.employeeForm.valid) {
|
|
console.error('Form invalid');
|
|
return;
|
|
}
|
|
|
|
this.employeeService.create(this.employeeForm.value as Employee).subscribe();
|
|
this.dialogRef.close();
|
|
}
|
|
}
|