Prettified Code!

This commit is contained in:
Mashintime 2023-07-02 13:43:54 +00:00 committed by GitHub Action
parent f0d7685a96
commit 95be2f339c
5 changed files with 206 additions and 213 deletions

View file

@ -461,18 +461,16 @@ ipcMain.on("request-update-transmission-status", (event, arg) => {
ipcMain.on("request-update-reception-status", (event, arg) => { ipcMain.on("request-update-reception-status", (event, arg) => {
win.webContents.send("action-update-reception-status", arg); win.webContents.send("action-update-reception-status", arg);
chat.webContents.send("action-update-reception-status", arg); chat.webContents.send("action-update-reception-status", arg);
}); });
//Called by main to query chat if there are new messages //Called by main to query chat if there are new messages
ipcMain.on("request-update-unread-messages",() => { ipcMain.on("request-update-unread-messages", () => {
//mainLog.info("Got request to check if chat has new messages") //mainLog.info("Got request to check if chat has new messages")
chat.webContents.send("action-update-unread-messages"); chat.webContents.send("action-update-unread-messages");
}); });
//Called by chat to notify main if there are new messages //Called by chat to notify main if there are new messages
ipcMain.on("request-update-unread-messages-main", (event,arg) => { ipcMain.on("request-update-unread-messages-main", (event, arg) => {
win.webContents.send("action-update-unread-messages-main",arg); win.webContents.send("action-update-unread-messages-main", arg);
//mainLog.info("Received reply from chat and ?new messages = " +arg); //mainLog.info("Received reply from chat and ?new messages = " +arg);
}); });

View file

@ -215,7 +215,7 @@ window.addEventListener("DOMContentLoaded", () => {
//Add event listener for filter apply button //Add event listener for filter apply button
document.getElementById("btnFilter").addEventListener("click", () => { document.getElementById("btnFilter").addEventListener("click", () => {
chatFilter.length=0; chatFilter.length = 0;
if (document.getElementById("chkMessage").checked == true) { if (document.getElementById("chkMessage").checked == true) {
chatFilter = [{ type: "newchat" }]; chatFilter = [{ type: "newchat" }];
chatFilter.push({ type: "received" }, { type: "transmit" }); chatFilter.push({ type: "received" }, { type: "transmit" });
@ -231,7 +231,7 @@ window.addEventListener("DOMContentLoaded", () => {
if (document.getElementById("chkResponse").checked == true) if (document.getElementById("chkResponse").checked == true)
chatFilter.push({ type: "response" }); chatFilter.push({ type: "response" });
if (document.getElementById("chkNewMessage").checked == true) if (document.getElementById("chkNewMessage").checked == true)
chatFilter.push({new:1}); chatFilter.push({ new: 1 });
updateAllChat(true); updateAllChat(true);
}); });
@ -667,21 +667,21 @@ ipcRenderer.on("return-select-user-image", (event, arg) => {
ipcRenderer.on("action-update-reception-status", (event, arg) => { ipcRenderer.on("action-update-reception-status", (event, arg) => {
var data = arg["data"][0]; var data = arg["data"][0];
document.getElementById("txtConnectedWithChat").textContent = data.dxcallsign; document.getElementById("txtConnectedWithChat").textContent = data.dxcallsign;
}); });
ipcRenderer.on("action-clear-reception-status", (event) => { ipcRenderer.on("action-clear-reception-status", (event) => {
//Clear connected with textbox //Clear connected with textbox
let cwc = document.getElementById("txtConnectedWithChat"); let cwc = document.getElementById("txtConnectedWithChat");
if (cwc.textContent != "------") { if (cwc.textContent != "------") {
cwc.textContent = "------"; cwc.textContent = "------";
//console.log("Reseting connected with"); //console.log("Reseting connected with");
} }
}); });
ipcRenderer.on("action-update-transmission-status", (event, arg) => { ipcRenderer.on("action-update-transmission-status", (event, arg) => {
var data = arg["data"][0]; var data = arg["data"][0];
document.getElementById("txtConnectedWithChat").textContent = data.dxcallsign; document.getElementById("txtConnectedWithChat").textContent = data.dxcallsign;
console.log(data.status); console.log(data.status);
if (data.uuid !== "no-uuid") { if (data.uuid !== "no-uuid") {
@ -884,7 +884,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filetype = splitted_data[7]; obj.filetype = splitted_data[7];
//obj.file = btoa(splitted_data[8]); //obj.file = btoa(splitted_data[8]);
obj.file = FD.btoa_FD(splitted_data[8]); obj.file = FD.btoa_FD(splitted_data[8]);
obj.new=1; obj.new = 1;
} else if (splitted_data[1] == "req" && splitted_data[2] == "0") { } else if (splitted_data[1] == "req" && splitted_data[2] == "0") {
obj.uuid = uuidv4().toString(); obj.uuid = uuidv4().toString();
obj.timestamp = Math.floor(Date.now() / 1000); obj.timestamp = Math.floor(Date.now() / 1000);
@ -897,7 +897,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filename = "null"; obj.filename = "null";
obj.filetype = "null"; obj.filetype = "null";
obj.file = "null"; obj.file = "null";
obj.new=0; obj.new = 0;
if (config.enable_request_profile == "True") { if (config.enable_request_profile == "True") {
sendUserData(item.dxcallsign); sendUserData(item.dxcallsign);
} }
@ -913,7 +913,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filename = "null"; obj.filename = "null";
obj.filetype = "null"; obj.filetype = "null";
obj.file = "null"; obj.file = "null";
obj.new=0; obj.new = 0;
if (config.enable_request_shared_folder == "True") { if (config.enable_request_shared_folder == "True") {
sendSharedFolderList(item.dxcallsign); sendSharedFolderList(item.dxcallsign);
} }
@ -934,7 +934,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filename = "null"; obj.filename = "null";
obj.filetype = "null"; obj.filetype = "null";
obj.file = "null"; obj.file = "null";
obj.new=0; obj.new = 0;
if (config.enable_request_shared_folder == "True") { if (config.enable_request_shared_folder == "True") {
sendSharedFolderFile(item.dxcallsign, name); sendSharedFolderFile(item.dxcallsign, name);
} }
@ -950,7 +950,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filename = "null"; obj.filename = "null";
obj.filetype = "null"; obj.filetype = "null";
obj.file = "null"; obj.file = "null";
obj.new=0; obj.new = 0;
console.log(splitted_data); console.log(splitted_data);
let userData = new Object(); let userData = new Object();
userData.user_info_image = splitted_data[2]; userData.user_info_image = splitted_data[2];
@ -979,7 +979,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filename = "null"; obj.filename = "null";
obj.filetype = "null"; obj.filetype = "null";
obj.file = "null"; obj.file = "null";
obj.new=0; obj.new = 0;
console.log(splitted_data); console.log(splitted_data);
let userData = new Object(); let userData = new Object();
@ -1007,7 +1007,7 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.filename = sharedFileInfo[0]; obj.filename = sharedFileInfo[0];
obj.filetype = "application/octet-stream"; obj.filetype = "application/octet-stream";
obj.file = FD.btoa_FD(sharedFileInfo[1]); obj.file = FD.btoa_FD(sharedFileInfo[1]);
obj.new=0; obj.new = 0;
} else { } else {
console.log("no rule matched for handling received data!"); console.log("no rule matched for handling received data!");
} }
@ -1046,31 +1046,30 @@ update_chat = function (obj) {
var attempt = obj.attempt; var attempt = obj.attempt;
} }
// add percent and bytes per minute if not existing // add percent and bytes per minute if not existing
//console.log(obj.percent) //console.log(obj.percent)
if (typeof obj.percent == "undefined") { if (typeof obj.percent == "undefined") {
obj.percent = 0; obj.percent = 0;
obj.bytesperminute = 0; obj.bytesperminute = 0;
} }
// check if wrong status message // check if wrong status message
if (obj.status == "transmit" && obj.percent == 0) { if (obj.status == "transmit" && obj.percent == 0) {
var TimeDifference = (new Date().getTime()/1000) - obj.timestamp var TimeDifference = new Date().getTime() / 1000 - obj.timestamp;
if (TimeDifference > 3600){ if (TimeDifference > 3600) {
db.upsert(obj._id, function (doc) { db.upsert(obj._id, function (doc) {
if (!doc.status) { if (!doc.status) {
doc.status = "failed"; doc.status = "failed";
} }
return doc; return doc;
}); });
obj.status = "failed"; obj.status = "failed";
} }
}
if (typeof obj.new == "undefined"){
obj.new=0;
} }
if (typeof obj.new == "undefined") {
obj.new = 0;
}
if (typeof config.max_retry_attempts == "undefined") { if (typeof config.max_retry_attempts == "undefined") {
var max_retry_attempts = 3; var max_retry_attempts = 3;
} else { } else {
@ -1244,8 +1243,12 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
//Reset unread messages and new message indicator //Reset unread messages and new message indicator
let clear = selected_callsign; let clear = selected_callsign;
clearUnreadMessages(clear); clearUnreadMessages(clear);
document.getElementById(`chat-${selected_callsign}-list-displaydxcall`).textContent=selected_callsign; document.getElementById(
document.getElementById(`chat-${selected_callsign}-list`).classList.remove("list-group-item-warning"); `chat-${selected_callsign}-list-displaydxcall`
).textContent = selected_callsign;
document
.getElementById(`chat-${selected_callsign}-list`)
.classList.remove("list-group-item-warning");
setTimeout(scrollMessagesToBottom, 200); setTimeout(scrollMessagesToBottom, 200);
//get user information //get user information
@ -1266,11 +1269,14 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
// short message // short message
document.getElementById("chat-" + dxcallsign + "-list-shortmsg").innerHTML = document.getElementById("chat-" + dxcallsign + "-list-shortmsg").innerHTML =
shortmsg; shortmsg;
if (obj.new==1) { if (obj.new == 1) {
document.getElementById(`chat-${obj.dxcallsign}-list-displaydxcall`).textContent="*" +obj.dxcallsign; document.getElementById(
document.getElementById(`chat-${dxcallsign}-list`).classList.add("list-group-item-warning"); `chat-${obj.dxcallsign}-list-displaydxcall`
).textContent = "*" + obj.dxcallsign;
} document
.getElementById(`chat-${dxcallsign}-list`)
.classList.add("list-group-item-warning");
}
} }
// APPEND MESSAGES TO CALLSIGN // APPEND MESSAGES TO CALLSIGN
@ -1334,11 +1340,10 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
var message_html = obj.msg.replaceAll(/\n/g, "<br>"); var message_html = obj.msg.replaceAll(/\n/g, "<br>");
if (obj.type == "received") { if (obj.type == "received") {
if (obj.new == 1) if (obj.new == 1) {
{ showOsPopUp("Message received from " + obj.dxcallsign, obj.msg);
showOsPopUp("Message received from " + obj.dxcallsign,obj.msg);
} }
var new_message = ` var new_message = `
<div class="d-flex align-items-center" style="margin-left: auto;"> <!-- max-width: 75%; --> <div class="d-flex align-items-center" style="margin-left: auto;"> <!-- max-width: 75%; -->
@ -1449,8 +1454,6 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
//console.log("Low graphics enabled for chat module"); //console.log("Low graphics enabled for chat module");
} }
var new_message = ` var new_message = `
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
${controlarea_transmit} ${controlarea_transmit}
@ -1485,10 +1488,8 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
obj.percent obj.percent
}" aria-valuemin="0" aria-valuemax="100"></div> }" aria-valuemin="0" aria-valuemax="100"></div>
<p class="justify-content-center d-flex position-absolute m-0 p-0 w-100 text-white ${progressbar_bg}" style="font-size: xx-small" id="msg-${ <p class="justify-content-center d-flex position-absolute m-0 p-0 w-100 text-white ${progressbar_bg}" style="font-size: xx-small" id="msg-${
obj._id obj._id
}-progress-information">${percent_value} % - ${ }-progress-information">${percent_value} % - ${obj.bytesperminute} Bpm</p>
obj.bytesperminute
} Bpm</p>
</div> </div>
</div> </div>
</div> </div>
@ -1505,11 +1506,8 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
//console.log("element already exists......"); //console.log("element already exists......");
//console.log(obj); //console.log(obj);
// console.log(obj.status) // console.log(obj.status)
// console.log(obj.attempt) // console.log(obj.attempt)
if ( if (
!obj.status == "broadcast_transmit" || !obj.status == "broadcast_transmit" ||
@ -1532,40 +1530,33 @@ var TimeDifference = (new Date().getTime()/1000) - obj.timestamp
obj.attempt + "/" + max_retry_attempts; obj.attempt + "/" + max_retry_attempts;
} }
if (obj.status == "transmit") { if (obj.status == "transmit") {
document.getElementById("msg-" + obj._id + "-status").innerHTML =
document.getElementById("msg-" + obj._id + "-status").innerHTML =
get_icon_for_state(obj.status); get_icon_for_state(obj.status);
if (typeof obj.percent !== "undefined") { if (typeof obj.percent !== "undefined") {
document document
.getElementById("msg-" + obj._id + "-progress") .getElementById("msg-" + obj._id + "-progress")
.setAttribute("aria-valuenow", obj.percent); .setAttribute("aria-valuenow", obj.percent);
document document
.getElementById("msg-" + obj._id + "-progress") .getElementById("msg-" + obj._id + "-progress")
.setAttribute("style", "width:" + obj.percent + "%;"); .setAttribute("style", "width:" + obj.percent + "%;");
document.getElementById( document.getElementById(
"msg-" + obj._id + "-progress-information" "msg-" + obj._id + "-progress-information"
).innerHTML = obj.percent + "% - " + obj.bytesperminute + " Bpm"; ).innerHTML = obj.percent + "% - " + obj.bytesperminute + " Bpm";
} else {
document
.getElementById("msg-" + obj._id + "-progress")
.setAttribute("aria-valuenow", 0);
document
.getElementById("msg-" + obj._id + "-progress")
.setAttribute("style", "width:0%;");
document.getElementById(
"msg-" + obj._id + "-progress-information"
).innerHTML = "0% - 0 Bpm";
}
} else { document.getElementById("msg-" + obj._id + "-attempts").innerHTML =
document
.getElementById("msg-" + obj._id + "-progress")
.setAttribute("aria-valuenow", 0);
document
.getElementById("msg-" + obj._id + "-progress")
.setAttribute("style", "width:0%;");
document.getElementById(
"msg-" + obj._id + "-progress-information"
).innerHTML = "0% - 0 Bpm";
}
document.getElementById("msg-" + obj._id + "-attempts").innerHTML =
obj.attempt + "/" + max_retry_attempts; obj.attempt + "/" + max_retry_attempts;
} }
@ -1609,15 +1600,13 @@ if (typeof obj.percent !== "undefined") {
.getElementById("msg-" + obj._id + "-progress") .getElementById("msg-" + obj._id + "-progress")
.classList.add("bg-danger"); .classList.add("bg-danger");
console.log(document console.log(
.getElementById("msg-" + obj._id + "-progress") document.getElementById("msg-" + obj._id + "-progress").classList
.classList) );
document.getElementById( document.getElementById(
"msg-" + obj._id + "-progress-information" "msg-" + obj._id + "-progress-information"
).innerHTML = "TRANSMISSION FAILED - " + obj.bytesperminute + " Bpm"; ).innerHTML = "TRANSMISSION FAILED - " + obj.bytesperminute + " Bpm";
} }
//document.getElementById(id).className = message_class; //document.getElementById(id).className = message_class;
@ -2201,10 +2190,7 @@ async function updateAllChat(clear) {
await db await db
.createIndex({ .createIndex({
index: { index: {
fields: [ fields: [{ dxcallsign: "asc" }, { timestamp: "asc" }],
{ dxcallsign:"asc" },
{ timestamp:"asc" },
],
}, },
}) })
.then(async function (result) { .then(async function (result) {
@ -2212,16 +2198,14 @@ async function updateAllChat(clear) {
await db await db
.find({ .find({
selector: { selector: {
$and: [ $and: [
{dxcallsign: { $exists: true } }, { dxcallsign: { $exists: true } },
{timestamp: { $exists: true } }, { timestamp: { $exists: true } },
{ $or: chatFilter }] { $or: chatFilter },
],
//$or: chatFilter //$or: chatFilter
}, },
sort: [ sort: [{ dxcallsign: "asc" }, { timestamp: "asc" }],
{ dxcallsign:"asc" },
{ timestamp: "asc" },
]
}) })
.then(async function (result) { .then(async function (result) {
console.log(result); console.log(result);
@ -2284,7 +2268,6 @@ function getSetUserSharedFolder(selected_callsign) {
.then(function (data) { .then(function (data) {
console.log(data); console.log(data);
if (typeof data.user_shared_folder !== "undefined") { if (typeof data.user_shared_folder !== "undefined") {
console.log(data.user_shared_folder); console.log(data.user_shared_folder);
// shared folder table // shared folder table
@ -2673,8 +2656,8 @@ ipcRenderer.on("update-config", (event, data) => {
}); });
ipcRenderer.on("action-update-unread-messages", (event) => { ipcRenderer.on("action-update-unread-messages", (event) => {
checkForNewMessages().then(function(count) { checkForNewMessages().then(function (count) {
ipcRenderer.send("request-update-unread-messages-main",count); ipcRenderer.send("request-update-unread-messages-main", count);
}); });
}); });
@ -2812,24 +2795,23 @@ function checkForWaitingMessages(dxcall) {
}); });
} }
async function checkForNewMessages() async function checkForNewMessages() {
{
var newmsgs; var newmsgs;
await db.find({ await db
selector: { .find({
new: {$eq: 1}, selector: {
}, limit:1, new: { $eq: 1 },
}) },
limit: 1,
})
.then(function (result) { .then(function (result) {
if (result.docs.length >0) if (result.docs.length > 0) newmsgs = true;
newmsgs=true; else newmsgs = false;
else
newmsgs=false;
}) })
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
}); });
return newmsgs; return newmsgs;
} }
function clearUnreadMessages(dxcall) { function clearUnreadMessages(dxcall) {
@ -2837,25 +2819,25 @@ function clearUnreadMessages(dxcall) {
//Selector of dxcall and new $eq: 1 isn't working, don't know why //Selector of dxcall and new $eq: 1 isn't working, don't know why
//For now parse all messages of callsign to clear new flag //For now parse all messages of callsign to clear new flag
db.find({ db.find({
selector: //{ //{
selector:
//$and:[ //$and:[
{dxcallsign:dxcall}//, {new: { $gte: 1}} { dxcallsign: dxcall }, //, {new: { $gte: 1}}
//] //]
// } // }
}) })
.then(function (result) { .then(function (result) {
//console.log(result); //console.log(result);
//console.log ("New messages count to clear for " + dxcall + ": " + result.docs.length) //console.log ("New messages count to clear for " + dxcall + ": " + result.docs.length)
result.docs.forEach(function (item) { result.docs.forEach(function (item) {
if (item.new ==1) if (item.new == 1) {
{ db.upsert(item._id, function (doc) {
db.upsert(item._id, function (doc) { doc.new = 0;
doc.new=0; //console.log("Clearing new on _id " + item._id);
//console.log("Clearing new on _id " + item._id); return doc;
return doc; });
}); }
} });
});
}) })
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
@ -2863,8 +2845,7 @@ function clearUnreadMessages(dxcall) {
} }
//Have the operating system show a notification popup //Have the operating system show a notification popup
function showOsPopUp(title, message) function showOsPopUp(title, message) {
{
if (config.enable_sys_notification == 0) return; if (config.enable_sys_notification == 0) return;
const NOTIFICATION_TITLE = title; const NOTIFICATION_TITLE = title;
const NOTIFICATION_BODY = message; const NOTIFICATION_BODY = message;
@ -2872,13 +2853,20 @@ function showOsPopUp(title, message)
} }
//Function to clean old beacons and optimize database //Function to clean old beacons and optimize database
async function dbClean() async function dbClean() {
{
//Only keep the most x latest days of beacons //Only keep the most x latest days of beacons
let beaconKeep = 7; let beaconKeep = 7;
let itemCount = 0; let itemCount = 0;
let timestampPurge = Math.floor((Date.now()- beaconKeep * 24*60*60*1000) / 1000) ; let timestampPurge = Math.floor(
if (confirm("Delete beacons and pings older than " + beaconKeep + " days and compact database?")) { (Date.now() - beaconKeep * 24 * 60 * 60 * 1000) / 1000
);
if (
confirm(
"Delete beacons and pings older than " +
beaconKeep +
" days and compact database?"
)
) {
} else { } else {
return; return;
} }
@ -2889,32 +2877,36 @@ async function dbClean()
{ type: "ping-ack" }, { type: "ping-ack" },
{ type: "ping" }, { type: "ping" },
]; ];
await db.find({ await db
selector: { .find({
$and: [ selector: {
{timestamp: { $lt: timestampPurge } }, $and: [{ timestamp: { $lt: timestampPurge } }, { $or: purgeFilter }],
{ $or: purgeFilter }] },
} })
})
.then(async function (result) { .then(async function (result) {
//console.log("Purging " + result.docs.length + " beacons received before " + timestampPurge); //console.log("Purging " + result.docs.length + " beacons received before " + timestampPurge);
itemCount=result.docs.length; itemCount = result.docs.length;
result.docs.forEach(async function (item) { result.docs.forEach(async function (item) {
await db.get(item._id) await db
.get(item._id)
.then(async function (doc) { .then(async function (doc) {
await db.remove(doc) await db.remove(doc);
}) })
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
}); });
}); });
}) })
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
}); });
//Compact database //Compact database
await db.compact(); await db.compact();
window.alert("Database maintenance is complete. " + itemCount + " items removed from database. It's recommended you now restart the GUI."); window.alert(
"Database maintenance is complete. " +
itemCount +
" items removed from database. It's recommended you now restart the GUI."
);
} }

View file

@ -71,10 +71,10 @@ var noise_level_raw = 0;
//Global version variable //Global version variable
var appVer = null; var appVer = null;
//Track the number of times TNC has been started //Track the number of times TNC has been started
//So that warning is shown when using auto start and 2nd start //So that warning is shown when using auto start and 2nd start
//if hamlib is not running //if hamlib is not running
var tncStartCount = 0; var tncStartCount = 0;
// START INTERVALL COMMAND EXECUTION FOR STATES // START INTERVALL COMMAND EXECUTION FOR STATES
//setInterval(sock.getRxBuffer, 1000); //setInterval(sock.getRxBuffer, 1000);
@ -1219,8 +1219,10 @@ window.addEventListener("DOMContentLoaded", () => {
FD.saveConfig(config, configPath); FD.saveConfig(config, configPath);
}); });
//Handle change of Notification settings //Handle change of Notification settings
document.getElementById("NotificationSwitch").addEventListener("click", () => { document
.getElementById("NotificationSwitch")
.addEventListener("click", () => {
if (document.getElementById("NotificationSwitch").checked == true) { if (document.getElementById("NotificationSwitch").checked == true) {
config.enable_sys_notification = 1; config.enable_sys_notification = 1;
} else { } else {
@ -1606,10 +1608,10 @@ window.addEventListener("DOMContentLoaded", () => {
daemon.stopTNC(); daemon.stopTNC();
}); });
// btnCleanDB button clicked // btnCleanDB button clicked
document.getElementById("btnCleanDB").addEventListener("click", () => { document.getElementById("btnCleanDB").addEventListener("click", () => {
ipcRenderer.send("request-clean-db"); ipcRenderer.send("request-clean-db");
}); });
// TEST HAMLIB // TEST HAMLIB
document.getElementById("testHamlib").addEventListener("click", () => { document.getElementById("testHamlib").addEventListener("click", () => {
@ -1632,8 +1634,6 @@ document.getElementById("btnCleanDB").addEventListener("click", () => {
var radiocontrol = "rigctld"; var radiocontrol = "rigctld";
} }
daemon.testHamlib( daemon.testHamlib(
radiocontrol, radiocontrol,
deviceid, deviceid,
@ -1958,14 +1958,14 @@ function signal_quality_perc_quad(rssi, perfect_rssi = 10, worst_rssi = -150) {
} }
var lastHeard = ""; var lastHeard = "";
var checkForNewMessageWait=85; var checkForNewMessageWait = 85;
ipcRenderer.on("action-update-tnc-state", (event, arg) => { ipcRenderer.on("action-update-tnc-state", (event, arg) => {
//check for new messages //check for new messages
if (checkForNewMessageWait >= 100){ if (checkForNewMessageWait >= 100) {
//This is very expensive //This is very expensive
ipcRenderer.send("request-update-unread-messages"); ipcRenderer.send("request-update-unread-messages");
checkForNewMessageWait=-1; checkForNewMessageWait = -1;
} }
checkForNewMessageWait++; checkForNewMessageWait++;
// update FFT // update FFT
@ -2439,15 +2439,16 @@ function updateHeardStations(arg) {
timestampRaw = arg.stations[i]["timestamp"]; timestampRaw = arg.stations[i]["timestamp"];
var datetime = new Date(timestampRaw * 1000).toLocaleString( var datetime = new Date(timestampRaw * 1000).toLocaleString(
navigator.language,{ navigator.language,
hourCycle: 'h23', {
hourCycle: "h23",
year: "numeric", year: "numeric",
month: "2-digit", month: "2-digit",
day: "2-digit", day: "2-digit",
hour: "2-digit", hour: "2-digit",
minute: "2-digit", minute: "2-digit",
second: "2-digit" second: "2-digit",
} }
); );
//var hours = date.getHours(); //var hours = date.getHours();
//var minutes = "0" + date.getMinutes(); //var minutes = "0" + date.getMinutes();
@ -2770,7 +2771,7 @@ ipcRenderer.on("action-update-tnc-connection", (event, arg) => {
set_CPU_mode(); set_CPU_mode();
//GUI will auto connect to TNC if already running, if that is the case increment start count if 0 //GUI will auto connect to TNC if already running, if that is the case increment start count if 0
if (tncStartCount==0) tncStartCount++; if (tncStartCount == 0) tncStartCount++;
} else { } else {
/* /*
document.getElementById('hamlib_deviceid').disabled = false; document.getElementById('hamlib_deviceid').disabled = false;
@ -2925,21 +2926,17 @@ ipcRenderer.on("run-tnc-command-fec-iswriting", (event) => {
}); });
//Change background color of RF Chat button if new messages are available //Change background color of RF Chat button if new messages are available
ipcRenderer.on("action-update-unread-messages-main", (event,data) => { ipcRenderer.on("action-update-unread-messages-main", (event, data) => {
//Do something //Do something
if (data == true) if (data == true) {
{ document.getElementById("openRFChat").classList.add("btn-warning");
document.getElementById("openRFChat").classList.add("btn-warning") document.getElementById("openRFChat").classList.remove("btn-secondary");
document.getElementById("openRFChat").classList.remove("btn-secondary") } else {
} document.getElementById("openRFChat").classList.remove("btn-warning");
else document.getElementById("openRFChat").classList.add("btn-secondary");
{
document.getElementById("openRFChat").classList.remove("btn-warning")
document.getElementById("openRFChat").classList.add("btn-secondary")
} }
}); });
ipcRenderer.on("run-tnc-command", (event, arg) => { ipcRenderer.on("run-tnc-command", (event, arg) => {
if (arg.command == "save_my_call") { if (arg.command == "save_my_call") {
sock.saveMyCall(arg.callsign); sock.saveMyCall(arg.callsign);
@ -3121,7 +3118,7 @@ ipcRenderer.on("action-show-cq-toast-received", (event, data) => {
let dxcallsign = data["data"][0]["dxcallsign"]; let dxcallsign = data["data"][0]["dxcallsign"];
let dxgrid = data["data"][0]["dxgrid"]; let dxgrid = data["data"][0]["dxgrid"];
let content = `cq from <strong>${dxcallsign}</strong> (${dxgrid})`; let content = `cq from <strong>${dxcallsign}</strong> (${dxgrid})`;
showOsPopUp("CQ from " + dxcallsign,"Say hello!"); showOsPopUp("CQ from " + dxcallsign, "Say hello!");
displayToast( displayToast(
(type = "success"), (type = "success"),
(icon = "bi-broadcast"), (icon = "bi-broadcast"),
@ -3807,14 +3804,13 @@ function autostart_tnc() {
if (config.auto_start == 1) { if (config.auto_start == 1) {
//Now start TNC //Now start TNC
document.getElementById("startTNC").click(); document.getElementById("startTNC").click();
} }
} }
//Have the operating system show a notification popup //Have the operating system show a notification popup
function showOsPopUp(title, message) function showOsPopUp(title, message) {
{
if (config.enable_sys_notification == 0) return; if (config.enable_sys_notification == 0) return;
const NOTIFICATION_TITLE = title; const NOTIFICATION_TITLE = title;
const NOTIFICATION_BODY = message; const NOTIFICATION_BODY = message;
new Notification(NOTIFICATION_TITLE, { body: NOTIFICATION_BODY }); new Notification(NOTIFICATION_TITLE, { body: NOTIFICATION_BODY });
} }

View file

@ -173,7 +173,7 @@
class="form-check-input" class="form-check-input"
id="chkNewMessage" id="chkNewMessage"
/> />
<label class="form-check-label" for="chkNewMessage"> <label class="form-check-label" for="chkNewMessage">
Unread Messages Unread Messages
</label> </label>
@ -261,11 +261,9 @@
class="dropdown-item bg-danger text-white" class="dropdown-item bg-danger text-white"
id="delete_selected_chat" id="delete_selected_chat"
href="#" href="#"
><i ><i class="bi bi-person-x" style="font-size: 1rem"></i>
class="bi bi-person-x" Delete chat</a
style="font-size: 1rem" >
></i>
Delete chat</a>
</li> </li>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<li> <li>
@ -285,12 +283,13 @@ Delete chat</a>
</ul> </ul>
<span <span
class="input-group-text ms-2" class="input-group-text ms-2"
id="txtConnectedWithChat" id="txtConnectedWithChat"
data-bs-toggle="tooltip" data-bs-toggle="tooltip"
data-bs-trigger="hover" data-bs-trigger="hover"
title="Connected with" title="Connected with"
>------</span> >------</span
>
</div> </div>
</div> </div>

View file

@ -3797,9 +3797,17 @@
</label> </label>
</div> </div>
<div class="input-group input-group-sm mb-1"> <div class="input-group input-group-sm mb-1">
<label class="input-group-text w-50">Database maintenance</label> <label class="input-group-text w-50"
>Database maintenance</label
>
<label class="input-group-text w-50"> <label class="input-group-text w-50">
<button class="btn btn-outline-secondary btn-sm w-50" id="btnCleanDB" type="button">Clean</button> <button
class="btn btn-outline-secondary btn-sm w-50"
id="btnCleanDB"
type="button"
>
Clean
</button>
</label> </label>
</div> </div>
<div class="center"> <div class="center">