import { Component } from '@angular/core'; import { AddEditMasterComponent } from '../add-edit-master/add-edit-master.component'; import { TableApiService } from 'src/app/_services/table-api.service'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { Router } from '@angular/router'; import { BuildingService } from '../../service/monitoring-api.service'; import { AddEditMasterBuildingComponent } from './add-edit-master-building/add-edit-master-building.component'; @Component({ selector: 'app-master-building', templateUrl: './master-building.component.html', styleUrls: ['./master-building.component.css'] }) export class MasterBuildingComponent { data: any; filteredRows: any[]; searchTerm: string = ""; rows: any = []; public breadcrumb: any; constructor( private tableApiservice: TableApiService, private modalService: NgbModal, private router: Router, private monitoringApiService: BuildingService ) {} ngOnInit() { this.breadcrumb = { mainlabel: "Master Building", links: [ { name: "Home", isLink: false, }, { name: "Master Building", isLink: false, }, ], }; this.fetchData(); } fetchData() { this.monitoringApiService.getMasterBuildingData().subscribe((res) => { this.data = res.results.data; this.filteredRows = this.data; }); } filterRows() { if (!this.searchTerm) { this.filteredRows = [...this.data]; } else { this.filteredRows = this.data.filter((row) => this.rowContainsSearchTerm(row) ); } } rowContainsSearchTerm(row: any): boolean { const searchTermLC = this.searchTerm.toLowerCase(); return Object.values(row).some( (value) => value !== null && value.toString().toLowerCase().includes(searchTermLC) ); } openAddMasterModal() { const modalRef = this.modalService.open(AddEditMasterBuildingComponent, { size: "lg", }); modalRef.componentInstance.mode = "add"; modalRef.result.then( (result) => { if (result) { this.monitoringApiService .postMasterBuildingParam(result) .subscribe((res) => { this.fetchData(); }); } }, (reason) => { console.log(`Dismissed: ${reason}`); } ); } editRow(row) { const modalRef = this.modalService.open(AddEditMasterBuildingComponent, { size: "lg", }); modalRef.componentInstance.dataRow = row; modalRef.componentInstance.mode = "edit"; modalRef.result.then( (result) => { if (result) { this.monitoringApiService .putMasterBuildingParam(result, row.id) .subscribe((res) => { this.fetchData(); }); } }, (reason) => { console.log(`Dismissed: ${reason}`); } ); } deleteRow(row) { const confirmDelete = confirm("Are you sure you want to delete this item?"); if (confirmDelete) { this.monitoringApiService .deleteHeaderDetailParam(row.id) .subscribe((res) => { this.fetchData(); }); } } }