From 68c53ababa24ead82a8041a360f86517d9743df2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 03:57:08 +0000 Subject: [PATCH 1/2] Initial plan From 30e02fcbe2839a619a3015c2a6505e745bf3a900 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 03:58:51 +0000 Subject: [PATCH 2/2] Add visual feedback (checkmark icon) to Copy Logs button Co-authored-by: eduardomozart <2974895+eduardomozart@users.noreply.github.com> --- .../common/assets/web/troubleshooting.html | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src_assets/common/assets/web/troubleshooting.html b/src_assets/common/assets/web/troubleshooting.html index c33b3db24bc..d9f9cb9596b 100644 --- a/src_assets/common/assets/web/troubleshooting.html +++ b/src_assets/common/assets/web/troubleshooting.html @@ -177,7 +177,8 @@

{{ $t('troubleshooting.logs') }}

@@ -195,6 +196,7 @@

{{ $t('troubleshooting.logs') }}

import { AlertCircle, AlertTriangle, + Check, CheckCircle, ChevronDown, ChevronUp, @@ -214,6 +216,7 @@

{{ $t('troubleshooting.logs') }}

Navbar, AlertCircle, AlertTriangle, + Check, CheckCircle, ChevronDown, ChevronUp, @@ -234,6 +237,7 @@

{{ $t('troubleshooting.logs') }}

closeAppStatus: null, ddResetPressed: false, ddResetStatus: null, + logsCopied: false, logs: 'Loading...', logFilter: null, logInterval: null, @@ -375,6 +379,7 @@

{{ $t('troubleshooting.logs') }}

} }, created() { + this._logsCopyTimeout = null; fetch("/api/config") .then((r) => r.json()) .then((r) => { @@ -468,7 +473,20 @@

{{ $t('troubleshooting.logs') }}

}, copyLogs() { // Copy the filtered view if a filter is active. - navigator.clipboard.writeText(this.actualLogs); + navigator.clipboard.writeText(this.actualLogs).then(() => { + // Clear any existing reset timer (handles rapid successive clicks). + if (this._logsCopyTimeout) clearTimeout(this._logsCopyTimeout); + + // Show checkmark feedback. + this.logsCopied = true; + + // Revert icon after 2 seconds. + this._logsCopyTimeout = setTimeout(() => { + this.logsCopied = false; + }, 2000); + }).catch((err) => { + console.error('Failed to copy logs:', err); + }); }, restart() { this.restartPressed = true;