commit 04/02/2026

This commit is contained in:
2026-02-04 16:41:13 +07:00
parent 3e763c1172
commit 5e128ab36a
16 changed files with 112820 additions and 301 deletions

View File

@@ -113,6 +113,17 @@ $(document).ready(function () {
// for adding selected item from messageavailablevariables to messageselectedvariables
let $btnaddtolist = $modal.find('#btnaddtolist');
/**
* Create <option> element
* @param {string} value value assigned to this <option>
* @param {string} text text assigned to this <option>
* @param {string} title text displayed when mouse hover on this <option>
* @returns {JQuery<HTMLOptionElement>} jQuery object representing the created <option> element
*/
function create_option(value, text, title) {
return $('<option>', { value: value, text: text, title: title });
}
/**
* Refill messageavailablevariables options from categories[]
* and soundbankdata with category "Phrase" if messagelanguage and messagevoicetype are selected
@@ -125,12 +136,11 @@ $(document).ready(function () {
if ("Airline_Code" === cat) cat = "Flight_Number"; // revisi 15012026 karena inconsistensi penamaan tag
if ("Gate" === cat) cat = "GateNumber"; // revisi 03202026 karena inconsistensi penamaan tag
let displayCat = `[${cat}]`.toUpperCase();
$messageavailablevariables.append(new Option(text = displayCat, value = displayCat, title = displayCat));
$messageavailablevariables.append(create_option(displayCat, displayCat, displayCat));
});
// tambah [ETAD], [BCB] revisi 19012026
$messageavailablevariables.append(new Option(text = '[ETAD]', value = '[ETAD]', title = '[ETAD]'));
$messageavailablevariables.append(new Option(text = '[BCB]', value = '[BCB]', title = '[BCB]'));
$messageavailablevariables.append(create_option('[ETAD]', '[ETAD]', '[ETAD]'));
$messageavailablevariables.append(create_option('[BCB]', '[BCB]', '[BCB]'));
let lang = $messagelanguage.val();
let vt = $messagevoicetype.val();
if (lang && lang.length > 0 && vt && vt.length > 0) {
@@ -143,7 +153,7 @@ $(document).ready(function () {
let v1 = sb.tag.toUpperCase();
let t1 = sb.description + ` [${v1}]`;
let t2 = sb.description;
$messageavailablevariables.append($('<option>', { value: v1, text: t1, title: t2 }));
$messageavailablevariables.append(create_option(v1, t1, t2));
}
});
if (cbLoaded && typeof cbLoaded === 'function') {
@@ -224,7 +234,7 @@ $(document).ready(function () {
Message_Detail: messagedetail,
Message_TAGS: messagetags
};
console.log("Constructed MessageBank object:", JSON.stringify(mb));
console.log("Constructed MessageBank object:", mb);
return mb;
}

View File

@@ -273,6 +273,15 @@ function DoClear(APIURL, whattoclear, cbOK, cbError) {
}
}
/**
* Check if a string is valid (not null, is string, not empty after trim)
* @param {string} str
* @returns true if valid, false otherwise
*/
function ValidString(str){
if (str && typeof str === 'string' && str.trim().length>0) return true; else return false;
}
/**
* Export mechanism to XLSX file
@@ -377,10 +386,11 @@ $(document).ready(function () {
function resetStatusIndicators() {
$('#onlineindicator').attr('src', window.redcircle);
$('#cpustatus').text("CPU : N/A");
$('#ramstatus').text("RAM : N/A");
$('#diskstatus').text("Disk : N/A");
$('#appversion').text("Version : N/A");
$('#networkstatus').text("Network : N/A");
$('#datetimetext').text("Date/Time : N/A");
$('#systemtime').text("System Time : N/A");
$('#appuptime').text("App Uptime : N/A");
$('#osuptime').text("OS Uptime : N/A");
}
@@ -402,6 +412,7 @@ $(document).ready(function () {
s.addEventListener('open', () => {
//console.log('WebSocket connection established');
$('#onlineindicator').attr('src', window.greencircle);
sendCommand("getAppVersion", "");
if (ws_reconnect) {
// stop reconnect attempts
@@ -430,14 +441,27 @@ $(document).ready(function () {
let data = rep.data;
if (cmd && cmd.length > 0) {
switch (cmd) {
case "getAppVersion":
$('#appversion').text("Version : " + data)
break;
case "getCPUStatus":
$('#cpustatus').text("CPU : " + data)
break;
case "getMemoryStatus":
$('#ramstatus').text("RAM : " + data)
let ramjson = JSON.parse(data);
//console.log("ram json", ramjson)
$('#ramtotal').text("Total : " + (ValidString(ramjson.Total)?ramjson.Total:"N/A"));
$('#ramused').text("Used : " + (ValidString(ramjson.Used)?ramjson.Used:"N/A"));
$('#ramavailable').text("Free : " + (ValidString(ramjson.Available)?ramjson.Available:"N/A"));
$('#rampercent').text("Usage : " + (ValidString(ramjson.Usage)?ramjson.Usage:"N/A"));
break;
case "getDiskStatus":
$('#diskstatus').text("Disk : " + data)
let diskjson = JSON.parse(data);
//console.log("disk json", diskjson)
$('#disktotal').text("Total : " + (ValidString(diskjson.Total)?diskjson.Total:"N/A"));
$('#diskused').text("Used : " + (ValidString(diskjson.Used)?diskjson.Used:"N/A"));
$('#diskavailable').text("Free : " + (ValidString(diskjson.Available)?diskjson.Available:"N/A"));
$('#diskpercent').text("Usage : " + (ValidString(diskjson.Usage)?diskjson.Usage:"N/A"));
break;
case "getNetworkStatus":
let result = "";
@@ -458,7 +482,10 @@ $(document).ready(function () {
$('#networkstatus').text(result)
break;
case "getSystemTime":
$('#datetimetext').text(data)
let timejson = JSON.parse(data);
$('#systemtime').text("System Time : " + (ValidString(timejson.systemtime)?timejson.systemtime:"N/A"));
$('#appuptime').text("App Uptime : " + (ValidString(timejson.apptime)?timejson.apptime:"N/A"));
$('#osuptime').text("OS Uptime : " + (ValidString(timejson.uptime)?timejson.uptime:"N/A"));
break;
}

View File

@@ -99,19 +99,60 @@
</div>
<div class="row">
<div class="col card-status">
<p class="w-100 h-100 text-status" id="cpustatus">CPU Status :&nbsp;<br><br></p>
<div class="row">
<p id="cpustatus">CPU : N/A</p>
</div>
<div class="row">
<p id="appversion">Version : N/A</p>
</div>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="ramstatus">RAM Status :&nbsp;<br><br></p>
<div class="row">
<p>RAM Status</p>
</div>
<div class="row">
<p id="ramtotal">Total : N/A</p>
</div>
<div class="row">
<p id="ramused">Used : N/A</p>
</div>
<div class="row">
<p id="ramavailable">Available : N/A</p>
</div>
<div class="row">
<p id="rampercent">Used : N/A</p>
</div>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="diskstatus">Disk Status :&nbsp;<br><br></p>
<div class="row">
<p>Disk Status</p>
</div>
<div class="row">
<p id="disktotal">Total : N/A</p>
</div>
<div class="row">
<p id="diskused">Used : N/A</p>
</div>
<div class="row">
<p id="diskavailable">Available : N/A</p>
</div>
<div class="row">
<p id="diskpercent">Used : N/A</p>
</div>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="networkstatus">Network&nbsp;</p>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="datetimetext">Date and Time&nbsp;</p>
<div class="row">
<p id="systemtime">System Time : N/A</p>
</div>
<div class="row">
<p id="appuptime">App Uptime : N/A</p>
</div>
<div class="row">
<p id="osuptime">OS Uptime : N/A</p>
</div>
</div>
</div>
<div class="container w-100 pad-container" id="content"></div>

View File

@@ -59,19 +59,60 @@
</div>
<div class="row">
<div class="col card-status">
<p class="w-100 h-100 text-status" id="cpustatus">CPU Status :&nbsp;<br><br></p>
<div class="row">
<p id="cpustatus">CPU : N/A</p>
</div>
<div class="row">
<p id="appversion">Version : N/A</p>
</div>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="ramstatus">RAM Status :&nbsp;<br><br></p>
<div class="row">
<p>RAM Status</p>
</div>
<div class="row">
<p id="ramtotal">Total : N/A</p>
</div>
<div class="row">
<p id="ramused">Used : N/A</p>
</div>
<div class="row">
<p id="ramavailable">Available : N/A</p>
</div>
<div class="row">
<p id="rampercent">Used : N/A</p>
</div>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="diskstatus">Disk Status :&nbsp;<br><br></p>
<div class="row">
<p>Disk Status</p>
</div>
<div class="row">
<p id="disktotal">Total : N/A</p>
</div>
<div class="row">
<p id="diskused">Used : N/A</p>
</div>
<div class="row">
<p id="diskavailable">Available : N/A</p>
</div>
<div class="row">
<p id="diskpercent">Used : N/A</p>
</div>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="networkstatus">Network&nbsp;</p>
</div>
<div class="col card-status">
<p class="w-100 h-100 text-status" id="datetimetext">Date and Time&nbsp;</p>
<div class="row">
<p id="systemtime">System Time : N/A</p>
</div>
<div class="row">
<p id="appuptime">App Uptime : N/A</p>
</div>
<div class="row">
<p id="osuptime">OS Uptime : N/A</p>
</div>
</div>
</div>
<div class="container w-100 pad-container" id="content"></div>