const path = require("path"); const { ipcRenderer } = require("electron"); // https://stackoverflow.com/a/26227660 var appDataFolder = process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "/Library/Application Support" : process.env.HOME + "/.config"); var configFolder = path.join(appDataFolder, "FreeDATA"); var configPath = path.join(configFolder, "config.json"); const config = require(configPath); // WINDOW LISTENER window.addEventListener("DOMContentLoaded", () => { document .getElementById("enable_filter_info") .addEventListener("click", () => { if (document.getElementById("enable_filter_info").checked) { display_class("table-info", true); } else { display_class("table-info", false); } }); document .getElementById("enable_filter_debug") .addEventListener("click", () => { if (document.getElementById("enable_filter_debug").checked) { display_class("table-debug", true); } else { display_class("table-debug", false); } }); document .getElementById("enable_filter_warning") .addEventListener("click", () => { if (document.getElementById("enable_filter_warning").checked) { display_class("table-warning", true); } else { display_class("table-warning", false); } }); document .getElementById("enable_filter_error") .addEventListener("click", () => { if (document.getElementById("enable_filter_error").checked) { display_class("table-danger", true); } else { display_class("table-danger", false); } }); }); function display_class(class_name, state) { var collection = document.getElementsByClassName(class_name); console.log(collection); for (let i = 0; i < collection.length; i++) { if (state == true) { collection[i].style.display = "table-row"; } else { collection[i].style.display = "None"; } } } ipcRenderer.on("action-update-log", (event, arg) => { var entry = arg.entry; // remove ANSI characters from string, caused by color logging // https://stackoverflow.com/a/29497680 entry = entry.replace( /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "", ); var tbl = document.getElementById("log"); var row = document.createElement("tr"); var timestamp = document.createElement("td"); var timestampText = document.createElement("span"); //datetime = new Date(); //timestampText.innerText = datetime.toISOString(); timestampText.innerText = entry.slice(0, 19); timestamp.appendChild(timestampText); var type = document.createElement("td"); var typeText = document.createElement("span"); // typeText.innerText = entry.slice(10, 30).match(/[\[](.*)[^\]]/g); console.log(entry.match(/\[[^\]]+\]/g)); try { typeText.innerText = entry.match(/\[[^\]]+\]/g)[0]; } catch (e) { typeText.innerText = "-"; } // let res = str.match(/[\[](.*)[^\]]/g); type.appendChild(typeText); var area = document.createElement("td"); var areaText = document.createElement("span"); //areaText.innerText = entry.slice(10, 50).match(/[\] \[](.*)[^\]]/g); //areaText.innerText = entry.match(/\[[^\]]+\]/g)[1]; try { areaText.innerText = entry.match(/\[[^\]]+\]/g)[1]; } catch (e) { areaText.innerText = "-"; } area.appendChild(areaText); var logEntry = document.createElement("td"); var logEntryText = document.createElement("span"); try { logEntryText.innerText = entry.split("]")[2]; } catch (e) { logEntryText.innerText = "-"; } logEntry.appendChild(logEntryText); row.appendChild(timestamp); row.appendChild(type); row.appendChild(area); row.appendChild(logEntry); //row.classList.add("table-blablubb"); /* if (logEntryText.innerText.includes('ALSA lib pcm')) { row.classList.add("table-secondary"); } */ if (typeText.innerText.includes("info")) { row.classList.add("table-info"); } if (typeText.innerText.includes("debug")) { row.classList.add("table-secondary"); } if (typeText.innerText.includes("warning")) { row.classList.add("table-warning"); } if (typeText.innerText.includes("error")) { row.classList.add("table-danger"); } if (document.getElementById("enable_filter_info").checked) { row.style.display = "table-row"; display_class("table-info", true); } else { row.style.display = "None"; display_class("table-info", false); } if (document.getElementById("enable_filter_debug").checked) { row.style.display = "table-row"; display_class("table-secondary", true); } else { row.style.display = "None"; display_class("table-secondary", false); } if (document.getElementById("enable_filter_warning").checked) { row.style.display = "table-row"; display_class("table-warning", true); } else { row.style.display = "None"; display_class("table-warning", false); } if (document.getElementById("enable_filter_error").checked) { row.style.display = "table-row"; display_class("table-danger", true); } else { row.style.display = "None"; display_class("table-danger", false); } tbl.appendChild(row); // scroll to bottom of page // https://stackoverflow.com/a/11715670 window.scrollTo(0, document.body.scrollHeight); });