Merge pull request #380 from DJ2LS/chat

more chat related fixes
This commit is contained in:
DJ2LS 2023-03-23 10:43:04 +01:00 committed by GitHub
commit 71bbce2922
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1043,6 +1043,8 @@ update_chat = function (obj) {
} }
getSetUserInformation(dxcallsign); getSetUserInformation(dxcallsign);
getSetUserSharedFolder(dxcallsign);
var new_callsign = ` var new_callsign = `
<a class="list-group-item list-group-item-action rounded-4 rounded-top rounded-bottom border-1 mb-2 ${callsign_selected}" id="chat-${dxcallsign}-list" data-bs-toggle="list" href="#chat-${dxcallsign}" role="tab" aria-controls="chat-${dxcallsign}"> <a class="list-group-item list-group-item-action rounded-4 rounded-top rounded-bottom border-1 mb-2 ${callsign_selected}" id="chat-${dxcallsign}-list" data-bs-toggle="list" href="#chat-${dxcallsign}" role="tab" aria-controls="chat-${dxcallsign}">
@ -1074,6 +1076,7 @@ update_chat = function (obj) {
// finally get and set user information to first selected item // finally get and set user information to first selected item
getSetUserInformation(selected_callsign); getSetUserInformation(selected_callsign);
getSetUserSharedFolder(selected_callsign);
// create eventlistener for listening on clicking on a callsign // create eventlistener for listening on clicking on a callsign
document document
@ -1085,6 +1088,7 @@ update_chat = function (obj) {
//get user information //get user information
getSetUserInformation(selected_callsign); getSetUserInformation(selected_callsign);
getSetUserSharedFolder(selected_callsign);
}); });
// if callsign entry already exists - update // if callsign entry already exists - update
@ -1180,8 +1184,13 @@ update_chat = function (obj) {
if (obj.status == "failed") { if (obj.status == "failed") {
var progressbar_bg = "bg-danger"; var progressbar_bg = "bg-danger";
var percent_value = "TRANSMISSION FAILED";
} else if (obj.status == "transmitted") {
var progressbar_bg = "bg-success";
var percent_value = "TRANSMITTED";
} else { } else {
var progressbar_bg = "bg-primary"; var progressbar_bg = "bg-primary";
var percent_value = obj.percent;
} }
//Sneak in low graphics mode if so enabled for progress bars //Sneak in low graphics mode if so enabled for progress bars
@ -1232,7 +1241,7 @@ update_chat = function (obj) {
<p class="justify-content-center d-flex position-absolute m-0 p-0 w-100 text-white" style="font-size: xx-small" id="msg-${ <p class="justify-content-center d-flex position-absolute m-0 p-0 w-100 text-white" style="font-size: xx-small" id="msg-${
obj._id obj._id
}-progress-information"> }-progress-information">
${obj.percent} % - ${obj.bytesperminute} Bpm ${percent_value} % - ${obj.bytesperminute} Bpm
</p> </p>
@ -1344,6 +1353,14 @@ update_chat = function (obj) {
document.getElementById("msg-" + obj._id).remove(); document.getElementById("msg-" + obj._id).remove();
document.getElementById("msg-" + obj._id + "-control-area").remove(); document.getElementById("msg-" + obj._id + "-control-area").remove();
console.log("Removed message " + obj._id.toString()); console.log("Removed message " + obj._id.toString());
// stop transmission if deleted message is still in progress
if (obj.status == "transmitting") {
let Data = {
command: "stop_transmission",
};
ipcRenderer.send("run-tnc-command", Data);
}
}); });
//scrollMessagesToBottom(); //scrollMessagesToBottom();
} }
@ -1592,6 +1609,7 @@ addUserToDatabaseIfNotExists = function (obj) {
}) })
.then(function (result) { .then(function (result) {
// handle result // handle result
console.log(result);
if (result.docs.length > 0) { if (result.docs.length > 0) {
users users
.put({ .put({
@ -1660,12 +1678,22 @@ addFileListToUserDatabaseIfNotExists = function (obj) {
_id: result.docs[0]._id, _id: result.docs[0]._id,
_rev: result.docs[0]._rev, _rev: result.docs[0]._rev,
user_shared_folder: obj.user_shared_folder, user_shared_folder: obj.user_shared_folder,
user_info_callsign: result.docs[0].user_info_callsign,
user_info_gridsquare: result.docs[0].user_info_gridsquare,
user_info_name: result.docs[0].user_info_name,
user_info_age: result.docs[0].user_info_age,
user_info_location: result.docs[0].user_info_location,
user_info_radio: result.docs[0].user_info_radio,
user_info_antenna: result.docs[0].user_info_antenna,
user_info_email: result.docs[0].user_info_email,
user_info_website: result.docs[0].user_info_website,
user_info_comments: result.docs[0].user_info_comments,
}) })
.then(function (response) { .then(function (response) {
console.log("File List: UPDATED USER"); console.log("File List: UPDATED USER");
console.log(response); console.log(response);
console.log(obj); console.log(obj);
//getSetUserInformation(obj.user_info_callsign); getSetUserSharedFolder(obj.user_info_callsign);
}) })
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
@ -1678,7 +1706,7 @@ addFileListToUserDatabaseIfNotExists = function (obj) {
}) })
.then(function (response) { .then(function (response) {
console.log("File List: NEW USER ADDED"); console.log("File List: NEW USER ADDED");
//getSetUserInformation(obj.user_info_callsign); getSetUserSharedFolder(obj.user_info_callsign);
}) })
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
@ -1858,6 +1886,8 @@ async function updateAllChat(clear) {
}) })
.then(async function (result) { .then(async function (result) {
// handle result async // handle result async
//document.getElementById("blurOverlay").classList.add("bg-primary");
if (typeof result !== "undefined") { if (typeof result !== "undefined") {
for (const item of result.docs) { for (const item of result.docs) {
//await otherwise history will not be in chronological order //await otherwise history will not be in chronological order
@ -1891,13 +1921,17 @@ async function updateAllChat(clear) {
} }
function getSetUserSharedFolder(selected_callsign) { function getSetUserSharedFolder(selected_callsign) {
// TODO: This is a dirty hotfix for avoiding, this function is canceld too fast.
console.log("get set user information:" + selected_callsign);
if ( if (
selected_callsign == "" || selected_callsign == "" ||
selected_callsign == null || selected_callsign == null ||
typeof selected_callsign == "undefined" typeof selected_callsign == "undefined"
) ) {
console.log("return triggered");
return; return;
}
returnObjFromCallsign(users, selected_callsign) returnObjFromCallsign(users, selected_callsign)
.then(function (data) { .then(function (data) {
console.log(data); console.log(data);
@ -2010,20 +2044,23 @@ function getSetUserSharedFolder(selected_callsign) {
} }
}) })
.catch(function (err) { .catch(function (err) {
console.log(err);
document.getElementById("sharedFolderTableDX").innerHTML = "no data"; document.getElementById("sharedFolderTableDX").innerHTML = "no data";
}); });
} }
function getSetUserInformation(selected_callsign) { function getSetUserInformation(selected_callsign) {
//Get user information //Get user information
console.log("get set user information:" + selected_callsign);
if ( if (
selected_callsign == "" || selected_callsign == "" ||
selected_callsign == null || selected_callsign == null ||
typeof selected_callsign == "undefined" typeof selected_callsign == "undefined"
) ) {
console.log("return triggered");
return; return;
}
document.getElementById("dx_user_info_callsign").innerHTML = document.getElementById("dx_user_info_callsign").innerHTML =
selected_callsign; selected_callsign;
@ -2034,9 +2071,12 @@ function getSetUserInformation(selected_callsign) {
// image // image
if (typeof data.user_info_image !== "undefined") { if (typeof data.user_info_image !== "undefined") {
try { try {
console.log("try checking for image if base64 data");
// determine if we have a base64 encoded image // determine if we have a base64 encoded image
console.log(data.user_info_image.split("data:image/png;base64,")[1]); console.log(data.user_info_image);
atob(data.user_info_image.split("data:image/png;base64,")[1]); console.log(data.user_info_image.split(";base64,")[1]);
// split data string by "base64" for separating image type from base64 string
atob(data.user_info_image.split(";base64,")[1]);
document.getElementById("dx_user_info_image").src = document.getElementById("dx_user_info_image").src =
data.user_info_image; data.user_info_image;
@ -2047,13 +2087,14 @@ function getSetUserInformation(selected_callsign) {
console.log("corrupted image data"); console.log("corrupted image data");
document.getElementById("user-image-" + selected_callsign).src = document.getElementById("user-image-" + selected_callsign).src =
defaultUserIcon; defaultUserIcon;
document.getElementById("dx_user_info_image").src = defaultUserIcon;
} }
} else { } else {
// throw error and use placeholder data // throw error and use placeholder data
throw new Error("Data not available or corrupted"); // throw new Error("Data not available or corrupted");
//document.getElementById("dx_user_info_image").src = defaultUserIcon; document.getElementById("dx_user_info_image").src = defaultUserIcon;
//document.getElementById("user-image-" + selected_callsign).src = document.getElementById("user-image-" + selected_callsign).src =
// defaultUserIcon; defaultUserIcon;
} }
// Callsign list elements // Callsign list elements
@ -2066,7 +2107,6 @@ function getSetUserInformation(selected_callsign) {
"width: 60px"; "width: 60px";
// DX Station tab // DX Station tab
document.getElementById("dx_user_info_name").innerHTML = document.getElementById("dx_user_info_name").innerHTML =
data.user_info_name; data.user_info_name;
document.getElementById("dx_user_info_age").innerHTML = document.getElementById("dx_user_info_age").innerHTML =
@ -2100,6 +2140,9 @@ function getSetUserInformation(selected_callsign) {
document.getElementById("dx_user_info_comments").className = ""; document.getElementById("dx_user_info_comments").className = "";
}) })
.catch(function (err) { .catch(function (err) {
console.log("writing user info to modal failed");
console.log(err);
// Callsign list elements // Callsign list elements
document.getElementById("user-image-" + selected_callsign).src = document.getElementById("user-image-" + selected_callsign).src =
defaultUserIcon; defaultUserIcon;