import {Component, inject, OnInit} from '@angular/core'; import {Observable} from "rxjs"; import {Qualification} from "../Qualification"; import {AsyncPipe} from "@angular/common"; import {MatDialog} from "@angular/material/dialog"; import QualificationService from "../../services/qualification.service"; import {CreateComponent} from "../create/create.component"; import {EditComponent} from "../edit/edit.component"; import {DeleteComponent} from "../delete/delete.component"; import {AsyncPipe} from "@angular/common"; import {MatButton, MatIconButton} from "@angular/material/button"; import { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from "@angular/material/table"; import QualificationService from "../../services/qualification.service"; import {MatDialog} from "@angular/material/dialog"; import {CreateComponent} from "../create/create.component"; import {MatIcon} from "@angular/material/icon"; import {MatButton, MatIconButton} from "@angular/material/button"; import {EditComponent} from "../edit/edit.component"; import {MatCard, MatCardContent} from "@angular/material/card"; import {MatTooltip} from "@angular/material/tooltip"; import {MatProgressSpinner} from "@angular/material/progress-spinner"; @Component({ selector: 'app-qualifications', imports: [ AsyncPipe, MatButton, MatTable, MatColumnDef, MatHeaderCell, MatCell, MatHeaderCellDef, MatCellDef, MatIconButton, MatIcon, MatHeaderRow, MatRow, MatHeaderRowDef, MatRowDef, MatCard, MatCardContent, MatTooltip, MatProgressSpinner ], templateUrl: './table.component.html', standalone: true, styleUrl: './table.component.css' }) export class QualificationsComponent implements OnInit { public qualifications$!: Observable; public readonly displayedColumns: string[] = ['id', 'skill', 'actions']; private readonly dialog: MatDialog = inject(MatDialog); private readonly qualificationService: QualificationService = inject(QualificationService); ngOnInit() { this.loadQualifications(); } private loadQualifications() { this.qualifications$ = this.qualificationService.getAll(); } openCreateModal() { const dialogRef = this.dialog.open(CreateComponent); dialogRef.afterClosed().subscribe((success: boolean) => { if (success) { this.loadQualifications(); } }); } openEditModal(qualification: Qualification) { const dialogRef = this.dialog.open(EditComponent, { data: qualification }); dialogRef.afterClosed().subscribe((success: boolean) => { if (success) { this.loadQualifications(); } }); } openDeleteModal(id: number) { const dialogRef = this.dialog.open(DeleteComponent, { data: id }); dialogRef.afterClosed().subscribe((success: boolean) => { if (success) { this.loadQualifications(); } }); } }