reworked DTC-notification and clearing
This commit is contained in:
parent
d994fd25a0
commit
e913ce6e1b
@ -3,80 +3,48 @@ const jsonFilePath = "static/dtc_table.json";
|
||||
var dtcState = {};
|
||||
|
||||
function processDTCNotifications(dtcArray) {
|
||||
if (dtcArray.length === 0 || dtcArray[0] == "0") {
|
||||
dtcState = {};
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0; i < dtcArray.length; i++) {
|
||||
var dtcInfo = dtcArray[i].split(",");
|
||||
var errorCode = dtcInfo[1];
|
||||
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;
|
||||
});
|
||||
|
||||
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) showDTCNotification(errorCode);
|
||||
if (activity === 1) showNotification(dtctext, severity);
|
||||
}
|
||||
} else {
|
||||
// DTC ist neu, Zustand speichern und Benachrichtigung anzeigen
|
||||
dtcState[errorCode] = activity;
|
||||
showDTCNotification(errorCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function showDTCNotification(dtctext, severity) {
|
||||
// Überprüfen, ob der Browser die Notification API unterstützt
|
||||
if ("Notification" in window) {
|
||||
// Überprüfen, ob der Benutzer bereits Berechtigungen erteilt hat
|
||||
if (Notification.permission === "granted") {
|
||||
// Benachrichtigung anzeigen
|
||||
showNotification(dtctext, severity);
|
||||
} else if (Notification.permission !== "denied") {
|
||||
// Aufforderung zur Erlaubnis einholen
|
||||
Notification.requestPermission().then(function (permission) {
|
||||
if (permission === "granted") {
|
||||
// Benachrichtigung anzeigen
|
||||
showNotification(dtctext, severity);
|
||||
} else {
|
||||
// Der Benutzer hat die Berechtigung abgelehnt oder das Dialogfeld geschlossen
|
||||
console.log("Benachrichtigungsberechtigung wurde verweigert.");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Der Benutzer hat die Berechtigung bereits verweigert
|
||||
console.log("Benachrichtigungsberechtigung wurde bereits verweigert.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Funktion zum Anzeigen der Benachrichtigung
|
||||
function showNotification(dtctext, severity) {
|
||||
var severityIcon;
|
||||
switch (severity) {
|
||||
case 1:
|
||||
severityIcon = "static/img/info.png";
|
||||
break;
|
||||
case 2:
|
||||
severityIcon = "static/img/warn.png";
|
||||
break;
|
||||
case 3:
|
||||
severityIcon = "static/img/critical.png";
|
||||
break;
|
||||
default:
|
||||
severityIcon = "static/img/none.png";
|
||||
}
|
||||
|
||||
var options = {
|
||||
body: dtctext,
|
||||
icon: severityIcon,
|
||||
};
|
||||
|
||||
var notification = new Notification("KTM Chain Oiler DTC", options);
|
||||
|
||||
// Optional: Handle Click-Event
|
||||
notification.onclick = function () {
|
||||
console.log("Benachrichtigung wurde angeklickt.");
|
||||
};
|
||||
}
|
||||
|
||||
function getDescriptionForDTCNumber(number, callback) {
|
||||
fetch(jsonFilePath)
|
||||
.then((response) => response.json())
|
||||
@ -135,9 +103,10 @@ function fillDTCTable(dtcArray) {
|
||||
var tablediv = document.getElementById("dtc_container");
|
||||
|
||||
// Prüfen, ob DTC vorhanden sind
|
||||
if (dtcArray.length === 0) {
|
||||
if (dtcArray.length === 0 || dtcArray[0] == "0") {
|
||||
// Verstecke das Tabellen-Div, wenn keine DTC vorhanden sind
|
||||
tablediv.hidden = true;
|
||||
table.innerHTML = "";
|
||||
return;
|
||||
} else {
|
||||
// Zeige das Tabellen-Div, wenn DTC vorhanden sind
|
||||
|
Loading…
x
Reference in New Issue
Block a user