added websocket-driven notification-overlay
This commit is contained in:
		| @@ -69,53 +69,42 @@ function onMessage(event) { | ||||
|   var data = event.data; | ||||
|   console.log("ws_msg:" + event.data + "\n"); | ||||
|  | ||||
|   if (data.startsWith("DEBUG:")) { | ||||
|   if (data.startsWith("NOTIFY:")) { | ||||
|     var notify_data = data.slice(7).split(";")[1]; | ||||
|     var notify_type = data.slice(7).split(";")[0]; | ||||
|     showNotification(notify_data, notify_type); | ||||
|   } else if (data.startsWith("DEBUG:")) { | ||||
|     var addtext = data.slice(6); | ||||
|     var livedebug_out = document.getElementById("livedebug-out"); | ||||
|     livedebug_out.value += addtext; | ||||
|     livedebug_out.scrollTop = livedebug_out.scrollHeight; | ||||
|     do_resize(livedebug_out); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   if (data.startsWith("DTC:")) { | ||||
|   } else if (data.startsWith("DTC:")) { | ||||
|     const dtcs = data.slice(4); | ||||
|     const dtcArray = dtcs.trim() !== "" ? dtcs.split(";").filter(Boolean) : []; | ||||
|  | ||||
|     if (dtcArray[0] != "0") { | ||||
|       processDTCNotifications(dtcArray); | ||||
|       fillDTCTable(dtcArray); | ||||
|     } | ||||
|     return; | ||||
|   } | ||||
|     processDTCNotifications(dtcArray); | ||||
|     fillDTCTable(dtcArray); | ||||
|  | ||||
|   if (data.startsWith("MAPPING_STATUS:")) { | ||||
|   } else if (data.startsWith("MAPPING_STATUS:")) { | ||||
|     const data_sliced = data.slice(15); | ||||
|     statusMapping = createMapping(data_sliced); | ||||
|   } | ||||
|  | ||||
|   if (data.startsWith("MAPPING_STATIC:")) { | ||||
|   } else if (data.startsWith("MAPPING_STATIC:")) { | ||||
|     const data_sliced = data.slice(15); | ||||
|     staticMapping = createMapping(data_sliced); | ||||
|   } | ||||
|  | ||||
|   if (data.startsWith("STATUS:")) { | ||||
|   } else if (data.startsWith("STATUS:")) { | ||||
|     const data_sliced = data.slice(7); | ||||
|     const result = processDataString(data_sliced, statusMapping); | ||||
|     console.log("STATUS:"); | ||||
|     console.log(JSON.stringify(result, null, 2)); | ||||
|     fillValuesToHTML(result); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   if (data.startsWith("STATIC:")) { | ||||
|   } else if (data.startsWith("STATIC:")) { | ||||
|     const data_sliced = data.slice(7); | ||||
|     const result = processDataString(data_sliced, staticMapping); | ||||
|     console.log("STATIC:"); | ||||
|     console.log(JSON.stringify(result, null, 2)); | ||||
|     fillValuesToHTML(result); | ||||
|     overlay.style.display = "none"; | ||||
|     return; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @@ -221,3 +210,27 @@ function updateProgressBar(progressBar, value) { | ||||
|   progressBar.style.width = value + "%"; | ||||
|   progressBar.textContent = value + "%"; | ||||
| } | ||||
|  | ||||
| function showNotification(message, type) { | ||||
|   // Erstellen Sie ein Bootstrap-Alert-Element | ||||
|   var alertElement = $( | ||||
|     '<div class="alert alert-' + | ||||
|     type + | ||||
|     ' alert-dismissible fade show notification" role="alert">' + | ||||
|     "<strong>" + | ||||
|     message + | ||||
|     "</strong>" + | ||||
|     '<button type="button" class="close" data-dismiss="alert" aria-label="Close">' + | ||||
|     '<span aria-hidden="true">×</span>' + | ||||
|     "</button>" + | ||||
|     "</div>" | ||||
|   ); | ||||
|  | ||||
|   // Fügen Sie das Alert-Element dem Container hinzu | ||||
|   $("#notification-container").append(alertElement); | ||||
|  | ||||
|   // Nach 5 Sekunden das Alert-Element ausblenden | ||||
|   setTimeout(function () { | ||||
|     alertElement.alert("close"); | ||||
|   }, 5000); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user