From 25b496df0614deac57b940f48db6bc01998c005f Mon Sep 17 00:00:00 2001 From: librelad Date: Fri, 17 Jul 2026 23:11:34 +0100 Subject: [PATCH] =?UTF-8?q?ux(health):=20rename=20"Repair=20Control=20Plan?= =?UTF-8?q?e"=20=E2=86=92=20"Fix=20System=20Issues"=20(plainer=20copy)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Control plane" is jargon. Rename the self-heal task and de-jargon all the user-facing copy: task titles ("LibrePortal - Fix System Issues" / "System Health Check"), the action label, the badge/banner/panel text and "Fix now" button, the status summaries, and the heal task-log messages. Behaviour unchanged; code comments keep the technical term where accurate. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: librelad --- .../components/tasks/js/tasks-format.js | 6 ++-- .../health-notifier/js/health-notifier.js | 30 +++++++++---------- scripts/docker/health/docker_health_heal.sh | 16 +++++----- .../generators/system/webui_system_health.sh | 8 ++--- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/containers/libreportal/frontend/components/tasks/js/tasks-format.js b/containers/libreportal/frontend/components/tasks/js/tasks-format.js index 8f40a60..6520cb7 100644 --- a/containers/libreportal/frontend/components/tasks/js/tasks-format.js +++ b/containers/libreportal/frontend/components/tasks/js/tasks-format.js @@ -44,8 +44,8 @@ Object.assign(TasksManager.prototype, { { match: /^libreportal system reclaim\b/, title: 'LibrePortal - Reclaim Space' }, { match: /^libreportal system image rm\b/, title: 'LibrePortal - Remove Images' }, { match: /^libreportal verify\b/, title: 'LibrePortal - Verify System' }, - { match: /^libreportal system health heal\b/, title: 'LibrePortal - Repair Control Plane' }, - { match: /^libreportal system health check\b/, title: 'LibrePortal - Check Control Plane' }, + { match: /^libreportal system health heal\b/, title: 'LibrePortal - Fix System Issues' }, + { match: /^libreportal system health check\b/, title: 'LibrePortal - System Health Check' }, { match: /^libreportal system network heal\b/, title: 'LibrePortal - Heal Network' }, { match: /^libreportal system network check\b/, title: 'LibrePortal - Check Network' }, @@ -142,7 +142,7 @@ Object.assign(TasksManager.prototype, { 'config_update': 'Update Config', 'update_config': 'Update Config', 'system_update': 'Update System', 'system_reclaim': 'Reclaim Space', 'system_image_rm': 'Remove Images', 'verify': 'Verify System', - 'system_health_heal': 'Repair Control Plane', 'system_network_heal': 'Heal Network', + 'system_health_heal': 'Fix System Issues', 'system_network_heal': 'Heal Network', 'updater_check': 'Check for Updates', 'updater_apply': 'Update', 'updater_apply_all': 'Update All', 'updater_rollback': 'Roll Back', 'artifact_apply': 'Apply Hotfix', 'artifact_revert': 'Revert Hotfix', diff --git a/containers/libreportal/frontend/core/health-notifier/js/health-notifier.js b/containers/libreportal/frontend/core/health-notifier/js/health-notifier.js index f6a7d83..1904ff1 100644 --- a/containers/libreportal/frontend/core/health-notifier/js/health-notifier.js +++ b/containers/libreportal/frontend/core/health-notifier/js/health-notifier.js @@ -13,11 +13,11 @@ // The backend already SELF-HEALS most of this (the task-processor poll dispatches // `system health heal` when the WebUI's own port is down — you can't click a // button on a dead WebUI). These surfaces are for visibility and for a manual -// "Repair now" when the WebUI is still reachable (e.g. a crash-loop caught early). +// "Fix now" when the WebUI is still reachable (e.g. a crash-loop caught early). // // Actions go through the normal task pipeline so progress streams on Tasks: -// * "Repair now" -> task `libreportal system health heal` -// * "Re-check" -> task `libreportal system health check` +// * "Fix now" -> task `libreportal system health heal` +// * "Re-check" -> task `libreportal system health check` // // This file owns no detection logic — it only reads the status file. @@ -120,7 +120,7 @@ class HealthNotifier { } const n = Array.isArray(this.status.crash_loops) ? this.status.crash_loops.length : 0; - badge.title = 'Control plane needs attention'; + badge.title = 'System needs attention'; badge.setAttribute('aria-label', badge.title); badge.innerHTML = ` @@ -155,7 +155,7 @@ class HealthNotifier { } const s = this.status; - const sub = s.summary ? this._escape(s.summary) : 'The docker control plane needs attention'; + const sub = s.summary ? this._escape(s.summary) : 'The system needs attention'; const heartIcon = ` @@ -166,12 +166,12 @@ class HealthNotifier { banner.innerHTML = `
-
Control plane attention needed
+
System needs attention
${sub}
- ${s.can_auto_heal ? '' : ''} + ${s.can_auto_heal ? '' : ''}
`; const details = banner.querySelector('#health-banner-details'); @@ -219,13 +219,13 @@ class HealthNotifier { : ''; const statusLine = this._hasIssues() - ? (s.summary || 'The docker control plane needs attention.') - : 'Control plane healthy.'; + ? (s.summary || 'The system needs attention.') + : 'System healthy.'; overlay.innerHTML = ` -