diff --git a/src/app/create-qualification/create-qualification.component.html b/src/app/create-qualification/create-qualification.component.html
index d6481a7..27f30c4 100644
--- a/src/app/create-qualification/create-qualification.component.html
+++ b/src/app/create-qualification/create-qualification.component.html
@@ -1,5 +1,24 @@
-
+Create Qualification
+
+
+
diff --git a/src/app/create-qualification/create-qualification.component.ts b/src/app/create-qualification/create-qualification.component.ts
index 1eb50f9..bb32de0 100644
--- a/src/app/create-qualification/create-qualification.component.ts
+++ b/src/app/create-qualification/create-qualification.component.ts
@@ -1,41 +1,76 @@
import {Component, inject} from '@angular/core';
-import {FormBuilder, ReactiveFormsModule} from "@angular/forms";
-import EmployeeApiService from "../services/employee-api.service";
+import {FormBuilder, ReactiveFormsModule, Validators} from "@angular/forms";
import QualificationService from "../services/qualification.service";
-import {Router} from "@angular/router";
-import {MatDialogRef} from "@angular/material/dialog";
+import {MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle} from "@angular/material/dialog";
+import {NgIf} from "@angular/common";
+import {MatError, MatFormField, MatLabel} from "@angular/material/form-field";
+import {MatButton} from "@angular/material/button";
+import {MatInput} from "@angular/material/input";
+import {filter} from "rxjs";
@Component({
- selector: 'app-create-qualification',
- imports: [
- ReactiveFormsModule
- ],
- templateUrl: './create-qualification.component.html',
- styleUrl: './create-qualification.component.css'
+ selector: 'app-create-qualification',
+ imports: [
+ ReactiveFormsModule,
+ MatError,
+ NgIf,
+ MatLabel,
+ MatDialogTitle,
+ MatDialogContent,
+ MatFormField,
+ MatDialogActions,
+ MatButton,
+ MatInput
+ ],
+ templateUrl: './create-qualification.component.html',
+ styleUrl: './create-qualification.component.css'
})
export class CreateQualificationComponent {
- private formBuilder: FormBuilder = inject(FormBuilder);
- private qualificationService: QualificationService = inject(QualificationService);
- private dialogRef: MatDialogRef = inject(MatDialogRef);
+ private formBuilder: FormBuilder = inject(FormBuilder);
+ private qualificationService: QualificationService = inject(QualificationService);
+ private dialogRef: MatDialogRef = inject(MatDialogRef);
- qualificationForm = this.formBuilder.group({
- 'skill': [''],
- });
+ public apiErrorMessage: string = '';
- create() {
- if (this.qualificationForm.valid) {
- this.qualificationService.create(this.qualificationForm.value).subscribe({
- next: (createdQualification) => {
- this.dialogRef.close(createdQualification);
- },
- error: (error) => {
- console.error('Error creating qualification:', error);
+ qualificationForm = this.formBuilder.group({
+ 'skill': ['', Validators.required],
+ });
+
+ isFieldInvalid(fieldName: string): boolean {
+ const field = this.qualificationForm.get(fieldName);
+
+ if (!field) {
+ throw new Error('Form field does not exist: ' + fieldName)
}
- });
- }
- }
- cancel() {
- this.dialogRef.close();
- }
+ return field.invalid && (field.dirty || field.touched);
+ }
+
+ getErrorMessage(fieldName: string): string {
+ const field = this.qualificationForm.get(fieldName);
+
+ if (field?.errors?.['required']) {
+ return 'This field is required';
+ }
+
+ return '';
+ }
+
+ create() {
+ if (!this.qualificationForm.valid) {
+ console.error('Validation failed');
+ return;
+ }
+
+ this.qualificationService.create(this.qualificationForm.value).subscribe({
+ next: (createdQualification) => {
+ this.dialogRef.close(createdQualification);
+ },
+ error: (error) => {
+ console.error('Error creating qualification:', error);
+
+ this.apiErrorMessage = 'API Error';
+ }
+ });
+ }
}