mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
Prettified Code!
This commit is contained in:
parent
f0d7685a96
commit
95be2f339c
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -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."
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 });
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
Loading…
Reference in a new issue