import { Component } from "@angular/core"; import { Router } from "@angular/router"; import { BuildingService } from "../../service/monitoring-api.service"; import { DeviceService } from "../../service/device.service"; @Component({ selector: "app-device-control", templateUrl: "./device-control.component.html", styleUrls: ["./device-control.component.css"], }) export class DeviceControlComponent { data: any; totalOn: any; totalOff: any; filteredRows: any[]; searchTerm: string = ""; buildingSelected: any; statusSelected: any; categorySelected: any; dataMasterCategori: any; dataBuildingList: any; dataMasterStatus: any; storedData: any; spinnerFilterActive = false; switchState: boolean; public breadcrumb: any; spinnerActive: boolean = false; singlebasicSelected: any; singleSelectArray = [ { item_id: 1, item_text: "Alaska" }, { item_id: 2, item_text: "California" }, { item_id: 3, item_text: "Colorado" }, { item_id: 4, item_text: "New Mexico" }, { item_id: 5, item_text: "Alabama" }, { item_id: 6, item_text: "Connecticut" }, { item_id: 7, item_text: "New York" }, ]; constructor( private router: Router, private deviceService: DeviceService, private monitoringApiService: BuildingService ) {} ngOnInit() { this.breadcrumb = { mainlabel: "Device", links: [ { name: "Home", isLink: false, link: "/dashboard/sales", }, { name: "Device", isLink: false, }, ], }; this.storedData = JSON.parse(localStorage.getItem("currentUser")); this.buildingSelected = this.storedData.buildingId; this.fetchData( this.buildingSelected, this.categorySelected, this.statusSelected ); this.dataListMaster(); this.dataListBuilding(); } fetchData(buildingSelected, categorySelected, statusSelected) { this.deviceService .getDeviceData(buildingSelected, categorySelected, statusSelected) .subscribe((res) => { this.data = res; this.filteredRows = this.data.results.data; console.log(this.filteredRows); }); } dataListMaster() { this.monitoringApiService.getMasterListData().subscribe((data) => { const dataCategory = data.data.find( (item) => item.name === "master_category" ).headerDetailParam; const dataStatus = data.data.find( (item) => item.name === "master_status" ).headerDetailParam; this.dataMasterCategori = dataCategory.filter( (item) => item.status === "2" ); this.dataMasterStatus = dataStatus.filter((item) => item.status === "2"); }); } dataListBuilding() { this.monitoringApiService.getBuildingList().subscribe((data) => { this.dataBuildingList = data.data.filter((item) => item.statusId === 2); }); } doFilter() { this.spinnerFilterActive = true; this.fetchData( this.buildingSelected, this.categorySelected, this.statusSelected ); setTimeout(() => { this.spinnerFilterActive = false; }, 3000); } filterRows() { if (!this.searchTerm) { this.filteredRows = [...this.data.results.data]; } else { this.filteredRows = this.data.results.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) ); } switchChanged(ev, data) { console.log(ev); console.log(data); const requestData = { device_id: data.device_id, switch: data.mapping[0].switch, value: ev, command_type: "on_off", }; this.deviceService.deviceSwitch(requestData).subscribe((res) => { console.log(res); }); } addFieldValue() {} addDevice(): void {} }