import { Component, ViewChild } from '@angular/core'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { RouterLink } from '@angular/router'; import { IService } from 'src/app/_interfaces/servives/service'; import { ServiceService } from 'src/app/_services/service/service.service'; import { MatSnackBar } from '@angular/material/snack-bar'; import { FormsModule } from '@angular/forms'; @Component({ selector: 'bgui-view-service', standalone: true, imports: [ RouterLink, FormsModule, MatTableModule, MatInputModule, MatIconModule, MatPaginatorModule, ], templateUrl: './view-service.component.html', styleUrl: './view-service.component.scss', }) export class ViewServiceComponent { onSearch() { throw new Error('Method not implemented.'); } services: IService[] = []; displayedColumns: string[] = [ //'service_id', 'nom_service', 'description', // 'marchand', 'actions', ]; showForm = false; hidden = false; dataReadonly = true; dataSource = new MatTableDataSource(); @ViewChild(MatPaginator) paginator!: MatPaginator; // eslint-disable-next-line @typescript-eslint/no-explicit-any endDate!: any; // eslint-disable-next-line @typescript-eslint/no-explicit-any startDate!: any; // eslint-disable-next-line @typescript-eslint/no-explicit-any operateurs!: any; // eslint-disable-next-line @typescript-eslint/no-explicit-any selectedOperateur!: any; constructor( private service: ServiceService, private snackBar: MatSnackBar ) {} ngOnInit(): void { // eslint-disable-next-line @typescript-eslint/no-explicit-any this.service.getServices().subscribe((data: any) => { this.services = data.results; console.log('services=>', this.services); this.dataSource.data = this.services; }); } ngAfterViewInit() { this.dataSource.paginator = this.paginator; this.dataSource.paginator.pageIndex = this.paginator.pageSize; } applyFilter(event: Event) { const filterValue = (event.target as HTMLInputElement).value; this.dataSource.filter = filterValue.trim().toLowerCase(); } updateService() { this.showForm = true; this.hidden = false; this.dataReadonly = false; } viewService() { this.showForm = true; this.hidden = true; this.dataReadonly; } onDelete(service_id: number): void { this.service.deleteService(service_id).subscribe( () => { console.log(`Service avec l'ID ${service_id} supprimé.`); this.ngOnInit(); this.snackBar.open('Service supprimé avec succès', 'Fermer', { duration: 3000, }); }, error => { console.error('Erreur lors de la suppression du service :', error); this.snackBar.open( 'Erreur lors de la suppression du service', 'Fermer', { duration: 3000, } ); } ); } }