OneQlik/src/app/firmware/firmware.component.ts

122 lines
3.4 KiB
TypeScript
Raw Normal View History

2025-01-15 18:26:54 +05:30
import { Component, OnInit } from "@angular/core";
import { Http, Headers, Response, ResponseContentType } from "@angular/http";
import { environment } from "../../environments/environment";
import { map, mergeMap } from "rxjs/operators";
declare var $: any;
@Component({
selector: "app-firmware",
templateUrl: "./firmware.component.html",
styleUrls: ["./firmware.component.scss"],
})
export class FirmwareComponent implements OnInit {
dev_url = environment.hostUrl;
dev_url2 = environment.hostUrl2;
userToken = localStorage.getItem("token");
headersVal = new Headers();
constructor(private http: Http) {
this.headersVal.append("Authorization", this.userToken);
}
dt: any = [];
filter: any = {
Device_ID: "",
state: "",
};
tabelObj: any;
search_flat: any = false;
search(filter: any) {
console.log(filter);
this.tabelObj.ajax.reload();
}
ngOnInit() {
let that = this;
this.tabelObj = $("#db2023_deviceTable").DataTable({
processing: true,
searching: false,
pagingType: "full_numbers",
pageLength: 10,
// dom: '<"row"<"col-6"l><"col-6"#d wnl> <"col-12"t> <"col-6"i><"col-6"p>>',
serverSide: true,
// sort: false,
// scrollY: "65vh",
// scrollCollapse: true,
lengthMenu: [
[10, 25, 50, 99999999999999999999],
[10, 25, 50, "All"],
],
ajax: (dataTablesParameters, callback) => {
let qr: any = {
org: "6110fa23a6221d46dbebc473",
page: Number(dataTablesParameters.start),
limit: dataTablesParameters.length,
};
if (that.filter.Device_ID != "") {
qr.Device_ID = that.filter.Device_ID;
}
if (that.filter.state != "") {
qr.state = that.filter.state;
}
this.aj(qr).subscribe((resp) => {
console.log(resp);
that.dt = resp.data;
callback({
data: resp.data,
recordsTotal: resp.recordsTotal,
recordsFiltered: resp.recordsTotal,
});
// that.tabelObj.ajax.reload();
});
},
columns: [
{
data: "Device_ID",
title: "Device",
defaultContent: "",
render: function (data, type, row) {
return data ? data : "";
},
},
{
data: "firmwareVersion",
title: "Firmware Version",
defaultContent: "",
render: function (data, type, row) {
return data ? data : "";
},
},
],
});
}
aj(data) {
let that = this;
return this.http
.post(this.dev_url + "/devices/getFirmwareVersion", data, {
headers: this.headersVal,
})
.pipe(map((d: any) => d.json()));
}
getAllState = this.http
.get(this.dev_url + "/RTO_master/getAllState", {
headers: this.headersVal,
})
.pipe(map((d: any) => d.json()));
convertJsonToCsv(data) {
const csv = data.map((row) => Object.values(row).join(",")).join("\n");
return `data:text/csv;charset=utf-8,${encodeURIComponent(
"Device,Firmware Version\n" + csv
)}`;
}
// Create a download link for the CSV file
downloadCsv(data, filename) {
const csvData = this.convertJsonToCsv(data);
const link = document.createElement("a");
link.setAttribute("href", csvData);
link.setAttribute("download", filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}