From cef94ba6b02a5a7c98f8a7ae0e4a9b19f8d564a2 Mon Sep 17 00:00:00 2001 From: Sashanoraa Date: Sat, 23 Aug 2025 23:03:42 -0400 Subject: [PATCH] Add log view modal to web UI --- daemon/web/src/app.html | 2 +- daemon/web/src/lib/components/LogView.svelte | 74 ++++++++++++++++++++ daemon/web/src/lib/utils.svelte.ts | 4 ++ daemon/web/src/routes/+page.svelte | 55 +++++++++++++-- 4 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 daemon/web/src/lib/components/LogView.svelte diff --git a/daemon/web/src/app.html b/daemon/web/src/app.html index 6b753eb..646d92c 100644 --- a/daemon/web/src/app.html +++ b/daemon/web/src/app.html @@ -6,7 +6,7 @@ %sveltekit.head% - +
%sveltekit.body%
diff --git a/daemon/web/src/lib/components/LogView.svelte b/daemon/web/src/lib/components/LogView.svelte new file mode 100644 index 0000000..450fda5 --- /dev/null +++ b/daemon/web/src/lib/components/LogView.svelte @@ -0,0 +1,74 @@ + + +{#if shown} +
+
+ Log + +
+
+
{content}
+
+
+{/if} diff --git a/daemon/web/src/lib/utils.svelte.ts b/daemon/web/src/lib/utils.svelte.ts index 2c5dabf..6480d35 100644 --- a/daemon/web/src/lib/utils.svelte.ts +++ b/daemon/web/src/lib/utils.svelte.ts @@ -58,6 +58,10 @@ export async function get_system_stats(): Promise { return JSON.parse(await req('GET', '/api/system-stats')); } +export async function get_logs(): Promise { + return await req('GET', '/api/log'); +} + export async function get_config(): Promise { return JSON.parse(await req('GET', '/api/config')); } diff --git a/daemon/web/src/routes/+page.svelte b/daemon/web/src/routes/+page.svelte index e28cf6e..11af037 100644 --- a/daemon/web/src/routes/+page.svelte +++ b/daemon/web/src/routes/+page.svelte @@ -7,9 +7,10 @@ import { AnalysisManager } from '$lib/analysisManager.svelte'; import SystemStatsTable from '$lib/components/SystemStatsTable.svelte'; import DeleteAllButton from '$lib/components/DeleteAllButton.svelte'; - import RecordingControls from '$lib/components//RecordingControls.svelte'; + import RecordingControls from '$lib/components/RecordingControls.svelte'; import ConfigForm from '$lib/components/ConfigForm.svelte'; import ActionErrors from '$lib/components/ActionErrors.svelte'; + import LogView from '$lib/components/LogView.svelte'; let manager: AnalysisManager = new AnalysisManager(); let loaded = $state(false); @@ -17,6 +18,7 @@ let current_entry: ManifestEntry | undefined = $state(undefined); let system_stats: SystemStats | undefined = $state(undefined); let update_error: string | undefined = $state(undefined); + let logview_shown: boolean = $state(false); $effect(() => { const interval = setInterval(async () => { try { @@ -47,10 +49,55 @@ }); +