Files
AAS_NewGeneration/html/webpage/assets/js/log.js
2026-01-26 17:12:48 +07:00

103 lines
2.9 KiB
JavaScript

/**
* @typedef {Object} Log
* @property {number} index
* @property {string} datenya
* @property {string} timenya
* @property {string} machine
* @property {string} description
*/
/** List of Log data loaded from server
* @type {Log[]}
*/
window.logdata = [];
dtLog = null;
/**
* Fill log table body with values
* @param {Log[]} vv values to fill
*/
function fill_logtablebody(vv) {
dtLog.clear();
if (!Array.isArray(vv) || vv.length === 0) {
$('#btnExport').prop('disabled', true);
return;
}
dtLog.rows.add(vv);
dtLog.draw();
$('#tablesize').text("Table Size: " + vv.length);
$('#btnExport').prop('disabled', false);
}
/**
* Reload logs from server with date and filter
* @param {String} APIURL API URL endpoint , default "Log/"
* @param {String} date date in format dd-mm-yyyy
* @param {String} filter log filter text
*/
function reloadLogs(APIURL = "Log/", date, filter) {
const params = new URLSearchParams({
date: date,
filter: filter
})
window.logdata = [];
fetchAPI(APIURL + "List?" + params.toString(), "GET", {}, null, (okdata) => {
if (Array.isArray(okdata)) {
window.logdata.push(...okdata);
fill_logtablebody(window.logdata);
}
}, (errdata) => {
alert("Error loading logs : " + errdata.message);
});
}
$(document).ready(function () {
console.log("log.js ready");
let selectedlogdate = "";
let logfilter = "";
let APIURL = "Log/";
if (dtLog === null) {
dtLog = new DataTable('#logtable', {
data: [],
pageLength: 25,
columns: [
{ title: "No", data: "index" },
{ title: "Date", data: "datenya" },
{ title: "Time", data: "timenya" },
{ title: "Machine", data: "machine" },
{ title: "Description", data: "description" }
]
});
}
if (!$('#logdate').val()) {
const today = new Date();
const dd = String(today.getDate()).padStart(2, '0');
const mm = String(today.getMonth() + 1).padStart(2, '0');
const yyyy = today.getFullYear();
$('#logdate').val(`${yyyy}-${mm}-${dd}`);
selectedlogdate = `${dd}-${mm}-${yyyy}`;
reloadLogs(APIURL, selectedlogdate, logfilter);
}
$('#logdate').off('change').on('change', function () {
const selected = $(this).val();
if (selected) {
const [year, month, day] = selected.split('-');
selectedlogdate = `${day}-${month}-${year}`;
reloadLogs(APIURL, selectedlogdate, logfilter);
}
});
$('#searchfilter').off('input').on('input', function () {
logfilter = $(this).val();
reloadLogs(APIURL, selectedlogdate, logfilter);
});
$('#btnExport').off('click').on('click', function () {
DoExport(APIURL, "log.xlsx", { date: selectedlogdate, filter: logfilter });
});
});