From ffd0e36118e75e16cfbe6ed4e458250f56c80cda Mon Sep 17 00:00:00 2001 From: RainyXeon Date: Wed, 10 Jul 2024 17:28:50 +0700 Subject: [PATCH] add: track webui error and log directly into error history (may not working) --- module/build.gradle.kts | 1 + module/src/customize.sh | 1 + webroot/index.html | 3 ++- webroot/js/main.js | 5 ++++- webroot/js/webuiError.js | 13 +++++++++++++ 5 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 webroot/js/webuiError.js diff --git a/module/build.gradle.kts b/module/build.gradle.kts index 5371a3c..7b12eab 100644 --- a/module/build.gradle.kts +++ b/module/build.gradle.kts @@ -170,6 +170,7 @@ androidComponents.onVariants { variant -> set.add(Pair(root.file("webroot/js/language.js").asFile, null)) set.add(Pair(root.file("webroot/js/light.icon.js").asFile, null)) set.add(Pair(root.file("webroot/js/restoreError.js").asFile, null)) + set.add(Pair(root.file("webroot/js/webuiError.js").asFile, null)) set.add(Pair(root.file("webroot/js/list/module.js").asFile, null)) set.add(Pair(root.file("webroot/js/list/settings.js").asFile, null)) diff --git a/module/src/customize.sh b/module/src/customize.sh index d81d577..972194f 100644 --- a/module/src/customize.sh +++ b/module/src/customize.sh @@ -121,6 +121,7 @@ extract "$ZIPFILE" 'webroot/js/theme.js' "$MODPATH/webroot/js" true extract "$ZIPFILE" 'webroot/js/language.js' "$MODPATH/webroot/js" true extract "$ZIPFILE" 'webroot/js/light.icon.js' "$MODPATH/webroot/js/list" true extract "$ZIPFILE" 'webroot/js/restoreError.js' "$MODPATH/webroot/js/list" true +extract "$ZIPFILE" 'webroot/js/webuiError.js' "$MODPATH/webroot/js/list" true extract "$ZIPFILE" 'webroot/js/list/module.js' "$MODPATH/webroot/js/list" true extract "$ZIPFILE" 'webroot/js/list/settings.js' "$MODPATH/webroot/js/list" true diff --git a/webroot/index.html b/webroot/index.html index 7898430..a9d0a4c 100644 --- a/webroot/index.html +++ b/webroot/index.html @@ -6,6 +6,8 @@ + + @@ -13,7 +15,6 @@ - diff --git a/webroot/js/main.js b/webroot/js/main.js index 341f6c3..0b72c4b 100644 --- a/webroot/js/main.js +++ b/webroot/js/main.js @@ -1,5 +1,6 @@ import { fullScreen, exec, toast } from './kernelsu.js' import { setNewLanguage, getTranslations } from './language.js' +import { sendError } from './webuiError.js' (async () => { const EXPECTED = 1 @@ -156,7 +157,9 @@ import { setNewLanguage, getTranslations } from './language.js' } else { toast(`${translations.cmdErrors.find}: ${findModulesCmd.stderr}`) } -})() +})().catch(err => { + sendError(err) +}) function setLangData(mode) { localStorage.setItem('/system/language', mode) diff --git a/webroot/js/webuiError.js b/webroot/js/webuiError.js new file mode 100644 index 0000000..e9083c0 --- /dev/null +++ b/webroot/js/webuiError.js @@ -0,0 +1,13 @@ +window.addEventListener('error', (e) => { + console.log(e.stack) + const previousError = localStorage.getItem('/system/error') + localStorage.setItem('/system/error', previousError + `\n` + e.stack) + document.getElementById('errorh_panel').innerHTML += e.stack +}) + +export function sendError(e) { + console.log(e.stack) + const previousError = localStorage.getItem('/system/error') + localStorage.setItem('/system/error', previousError + `\n` + e.stack) + document.getElementById('errorh_panel').innerHTML += e.stack +} \ No newline at end of file