Files
ems-frontend/src/app/qualification/delete/delete.component.ts
2025-01-15 07:44:23 +00:00

57 lines
1.6 KiB
TypeScript

import {Component, inject} from '@angular/core';
import {
MAT_DIALOG_DATA,
MatDialogActions,
MatDialogContent,
MatDialogRef,
MatDialogTitle
} from "@angular/material/dialog";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import QualificationService from "../../services/qualification.service";
import {MatButton} from "@angular/material/button";
import {HttpErrorResponse} from "@angular/common/http";
@Component({
selector: 'app-delete-qualification',
imports: [
FormsModule,
MatDialogContent,
MatDialogTitle,
ReactiveFormsModule,
MatDialogActions,
MatButton
],
templateUrl: './delete.component.html',
standalone: true,
styleUrl: './delete.component.css'
})
export class DeleteComponent {
public id: number = inject(MAT_DIALOG_DATA);
public apiError: string | null = null;
private qualificationService: QualificationService = inject(QualificationService);
private dialogRef: MatDialogRef<DeleteComponent> = inject(MatDialogRef);
delete() {
this.qualificationService.delete(this.id).subscribe({
next: () => {
this.dialogRef.close(true);
},
error: (error: HttpErrorResponse) => {
console.error('Error deleting qualification:', error);
if (error.error.message.includes('SQL')) {
// The API message is undescriptive but this is the most common
this.apiError = 'This qualification cannot be modified because it is currently assigned to one or more employees';
} else {
this.apiError = 'API Error';
}
}
});
}
closeModal() {
this.dialogRef.close(false);
}
}