reworked dtc-javascript and colors of notifications
This commit is contained in:
		| @@ -2,7 +2,7 @@ const jsonFilePath = "static/dtc_table.json"; | ||||
|  | ||||
| var dtcState = {}; | ||||
|  | ||||
| function processDTCNotifications(dtcArray) { | ||||
| async function processDTCNotifications(dtcArray) { | ||||
|   if (dtcArray.length === 0 || dtcArray[0] == "0") { | ||||
|     dtcState = {}; | ||||
|     return; | ||||
| @@ -13,90 +13,90 @@ function processDTCNotifications(dtcArray) { | ||||
|     var errorCode = parseInt(dtcInfo[1]); | ||||
|     var activity = parseInt(dtcInfo[3]); | ||||
|     var severity = parseInt(dtcInfo[2]); | ||||
|     var dtctext; | ||||
|  | ||||
|     getDescriptionForDTCNumber(errorCode, function (error, title, description) { | ||||
|       dtctext = description; | ||||
|     }); | ||||
|     try { | ||||
|       var { title, description } = await getDescriptionForDTCNumber(errorCode); | ||||
|  | ||||
|     switch (severity) { | ||||
|       case 1: | ||||
|         severity = "info"; | ||||
|         break; | ||||
|       case 2: | ||||
|         severity = "warning"; | ||||
|         break; | ||||
|       case 3: | ||||
|         severity = "error"; | ||||
|         break; | ||||
|     } | ||||
|  | ||||
|     if (dtcState[errorCode]) { | ||||
|       // Überprüfen, ob sich der Zustand von "previous" auf "active" geändert hat | ||||
|       if (activity !== dtcState[errorCode]) { | ||||
|         dtcState[errorCode] = activity; | ||||
|         if (activity === 1) showNotification(dtctext, severity); | ||||
|       switch (severity) { | ||||
|         case 1: | ||||
|           severity = "info"; | ||||
|           break; | ||||
|         case 2: | ||||
|           severity = "warning"; | ||||
|           break; | ||||
|         case 3: | ||||
|           severity = "danger"; | ||||
|           break; | ||||
|       } | ||||
|     } else { | ||||
|       // DTC ist neu, Zustand speichern und Benachrichtigung anzeigen | ||||
|       dtcState[errorCode] = activity; | ||||
|       showNotification(dtctext, severity); | ||||
|  | ||||
|       if (dtcState[errorCode]) { | ||||
|         // Überprüfen, ob sich der Zustand von "previous" auf "active" geändert hat | ||||
|         if (activity !== dtcState[errorCode]) { | ||||
|           dtcState[errorCode] = activity; | ||||
|           if (activity === 1) showNotification(description, severity); | ||||
|         } | ||||
|       } else { | ||||
|         // DTC ist neu, Zustand speichern und Benachrichtigung anzeigen | ||||
|         dtcState[errorCode] = activity; | ||||
|         showNotification(description, severity); | ||||
|       } | ||||
|     } catch (error) { | ||||
|       console.error("Error processing DTC:", error); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| function getDescriptionForDTCNumber(number, callback) { | ||||
|   fetch(jsonFilePath) | ||||
|     .then((response) => response.json()) | ||||
|     .then((data) => { | ||||
|       const dtcList = data.dtc_table_data; | ||||
|       const foundEntry = dtcList.find((entry) => entry.num === number); | ||||
| function getDescriptionForDTCNumber(number) { | ||||
|   return new Promise((resolve, reject) => { | ||||
|     fetch(jsonFilePath) | ||||
|       .then((response) => response.json()) | ||||
|       .then((data) => { | ||||
|         const dtcList = data.dtc_table_data; | ||||
|         const foundEntry = dtcList.find((entry) => entry.num === number); | ||||
|  | ||||
|       if (foundEntry) { | ||||
|         const description = foundEntry.description; | ||||
|         const title = foundEntry.title; | ||||
|         callback(null, title, description); | ||||
|       } else { | ||||
|         // Wenn die Nummer nicht gefunden wurde, geben Sie einen Fehler zurück | ||||
|         callback( | ||||
|           `Beschreibung für Nummer ${number} nicht gefunden.`, | ||||
|           null, | ||||
|           null | ||||
|         ); | ||||
|       } | ||||
|     }) | ||||
|     .catch((error) => { | ||||
|       // Im Fehlerfall geben Sie den Fehler zurück | ||||
|       callback(error, null, null); | ||||
|     }); | ||||
|         if (foundEntry) { | ||||
|           const description = foundEntry.description; | ||||
|           const title = foundEntry.title; | ||||
|           resolve({ title, description }); | ||||
|         } else { | ||||
|           // Wenn die Nummer nicht gefunden wurde, geben Sie einen Fehler zurück | ||||
|           reject(`Beschreibung für Nummer ${number} nicht gefunden.`); | ||||
|         } | ||||
|       }) | ||||
|       .catch((error) => { | ||||
|         // Im Fehlerfall geben Sie den Fehler zurück | ||||
|         reject(error); | ||||
|       }); | ||||
|   }); | ||||
| } | ||||
|  | ||||
| function showDTCModal(event) { | ||||
| async function showDTCModal(event) { | ||||
|   var dtc = parseInt(event.currentTarget.getAttribute("data-dtc")); | ||||
|   var debugval = event.currentTarget.getAttribute("data-debugval"); | ||||
|   var modal = $("#dtcModal"); | ||||
|  | ||||
|   getDescriptionForDTCNumber(dtc, function (error, title, description) { | ||||
|     if (error) { | ||||
|       console.error("Fehler beim Abrufen der Beschreibung:", error); | ||||
|       modal.find(".modal-title").text("Fehler"); | ||||
|       modal | ||||
|         .find(".dtc-desc") | ||||
|         .text("DTC-Beschreibung konnte nicht geladen werden"); | ||||
|   try { | ||||
|     var { title, description } = await getDescriptionForDTCNumber(dtc); | ||||
|  | ||||
|     modal.find(".modal-title").text(title); | ||||
|     modal.find(".dtc-desc").text(description); | ||||
|  | ||||
|     if (debugval > 0) { | ||||
|       modal.find(".dtc-debugval").text("Debugvalue: " + debugval); | ||||
|     } else { | ||||
|       modal.find(".modal-title").text(title); | ||||
|       modal.find(".dtc-desc").text(description); | ||||
|       if (debugval > 0) { | ||||
|         modal.find(".dtc-debugval").text("Debugvalue: " + debugval); | ||||
|       } else { | ||||
|         modal.find(".dtc-debugval").remove(); | ||||
|       } | ||||
|       modal.find(".dtc-debugval").remove(); | ||||
|     } | ||||
|   }); | ||||
|   } catch (error) { | ||||
|     console.error("Fehler beim Abrufen der Beschreibung:", error); | ||||
|     modal.find(".modal-title").text("Fehler"); | ||||
|     modal.find(".dtc-desc").text("DTC-Beschreibung konnte nicht geladen werden"); | ||||
|   } | ||||
|  | ||||
|   // Modal anzeigen | ||||
|   modal.modal("show"); | ||||
| } | ||||
|  | ||||
|  | ||||
| function fillDTCTable(dtcArray) { | ||||
|   // Referenz auf das Tabellen-Element | ||||
|   var table = document.getElementById("dtc_table"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user