
Co-authored-by: Phan Huy Tran <p.tran@neusta.de> Reviewed-on: http://git.simonis.lol/angular/ems-frontend/pulls/31 Reviewed-by: Constantin Simonis <constantin@simonis.lol>
57 lines
1.6 KiB
TypeScript
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);
|
|
}
|
|
}
|