diff --git a/gui_vue/src/js/popupHandler.js b/gui_vue/src/js/popupHandler.js
new file mode 100644
index 00000000..d95709fa
--- /dev/null
+++ b/gui_vue/src/js/popupHandler.js
@@ -0,0 +1,51 @@
+const { v4: uuidv4 } = require("uuid");
+import * as bootstrap from 'bootstrap'
+
+
+
+export function displayToast(
+ type,
+ icon,
+ content,
+ duration,
+) {
+ let mainToastContainer = document.getElementById("mainToastContainer");
+
+ let randomID = uuidv4();
+ let toastCode = `
+
+ `;
+
+ // insert toast to toast container
+ mainToastContainer.insertAdjacentHTML("beforeend", toastCode);
+
+ // register toast
+ let toastHTMLElement = document.getElementById(randomID);
+ let toast = bootstrap.Toast.getOrCreateInstance(toastHTMLElement); // Returns a Bootstrap toast instance
+ toast._config.delay = duration;
+
+ // show toast
+ toast.show();
+
+ //register event listener if toast is hidden
+ toastHTMLElement.addEventListener("hidden.bs.toast", () => {
+ // remove eventListener
+ toastHTMLElement.removeEventListener("hidden.bs.toast", this);
+ // remove toast
+ toastHTMLElement.remove();
+ });
+}
diff --git a/gui_vue/src/js/sock.js b/gui_vue/src/js/sock.js
index b8a235b0..34255d88 100644
--- a/gui_vue/src/js/sock.js
+++ b/gui_vue/src/js/sock.js
@@ -3,6 +3,7 @@ const path = require("path");
const FD = require("./src/js/freedata.js");
//import FD from './freedata.js';
import { newMessageReceived } from './chatHandler.js';
+import {displayToast} from './popupHandler.js'
// ----------------- init pinia stores -------------
import { setActivePinia } from 'pinia';
@@ -241,6 +242,8 @@ client.on("data", function (socketdata) {
}
// ----------- catch tnc messages START -----------
+ //init message variable
+ var message = ''
if (data["freedata"] == "tnc-message") {
switch (data["fec"]) {
case "is_writing":
@@ -262,44 +265,64 @@ client.on("data", function (socketdata) {
switch (data["cq"]) {
case "transmitting":
// CQ TRANSMITTING
+ displayToast("success", "bi-arrow-left-right", "transmitting CQ", 5000);
+
+
break;
case "received":
// CQ RECEIVED
+ displayToast("success", "bi-arrow-left-right", "received CQ from ", 5000);
+
break;
}
switch (data["qrv"]) {
case "transmitting":
// QRV TRANSMITTING
+ displayToast("success", "bi-arrow-left-right", "transmitting QRV ", 5000);
+
break;
case "received":
// QRV RECEIVED
+ message = "received QRV from " + data['dxcallsign'] + " | " + data['dxgrid']
+ displayToast("success", "bi-arrow-left-right", message, 5000);
+
break;
}
switch (data["beacon"]) {
case "transmitting":
// BEACON TRANSMITTING
+ displayToast("success", "bi-arrow-left-right", "transmitting BEACON ", 5000);
+
break;
case "received":
// BEACON RECEIVED
+ message = "received BEACON from " + data['dxcallsign'] + " | " + data['dxgrid']
+ displayToast("success", "bi-arrow-left-right", message, 5000);
break;
}
switch (data["ping"]) {
case "transmitting":
// PING TRANSMITTING
+ message = "transmitting PING to " + data['dxcallsign']
+ displayToast("success", "bi-arrow-left-right", message, 5000);
break;
case "received":
// PING RECEIVED
+ message = "received PING from " + data['dxcallsign'] + " | " + data['dxgrid']
+ displayToast("success", "bi-arrow-left-right", message, 5000);
break;
case "acknowledge":
// PING ACKNOWLEDGE
+ message = "received PING ACK from " + data['dxcallsign'] + " | " + data['dxgrid']
+ displayToast("success", "bi-arrow-left-right", message, 5000);
break;
}