commit 18/09/2025
This commit is contained in:
97
html/webpage/assets/js/log.js
Normal file
97
html/webpage/assets/js/log.js
Normal file
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
* @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[]}
|
||||
*/
|
||||
let logdata = [];
|
||||
|
||||
/**
|
||||
* Fill log table body with values
|
||||
* @param {Log[]} vv values to fill
|
||||
*/
|
||||
function fill_logtablebody(vv) {
|
||||
$('#logtablebody').empty();
|
||||
$('#btnExport').prop('disabled', true);
|
||||
$('#searchfilter').prop('disabled', true);
|
||||
if (!Array.isArray(vv) || vv.length === 0) return;
|
||||
vv.forEach(item => {
|
||||
const row = `<tr>
|
||||
<td>${item.index}</td>
|
||||
<td>${item.datenya}</td>
|
||||
<td>${item.timenya}</td>
|
||||
<td>${item.machine}</td>
|
||||
<td>${item.description}</td>
|
||||
</tr>`;
|
||||
$('#logtablebody').append(row);
|
||||
});
|
||||
$('#tablesize').text("Table Size: " + vv.length);
|
||||
$('#btnExport').prop('disabled', false);
|
||||
$('#searchfilter').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
|
||||
})
|
||||
fetchAPI(APIURL + "List?" + params.toString(), "GET", {}, null, (okdata) => {
|
||||
if (Array.isArray(okdata)) {
|
||||
logdata = okdata;
|
||||
fill_logtablebody(okdata);
|
||||
}
|
||||
}, (errdata) => {
|
||||
alert("Error loading logs : " + errdata.message);
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
console.log("log.js ready");
|
||||
const $logdate = $('#logdate');
|
||||
const $searchfilter = $('#searchfilter');
|
||||
const $logtable = $('#logtablebody')
|
||||
const $btnExport = $('#btnExport');
|
||||
let selectedlogdate = "";
|
||||
let logfilter = "";
|
||||
let APIURL = "Log/";
|
||||
$logtable.empty();
|
||||
|
||||
|
||||
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 });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user