From c7484572dfce368685a0808ea1ae6168a6a48f52 Mon Sep 17 00:00:00 2001 From: librelad Date: Thu, 25 Jun 2026 12:54:39 +0100 Subject: [PATCH] fix(webui/tasks): give app-less task notifications the LibrePortal identity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit App-less system tasks (verify, regen, …) resolved to an empty displayName and null icon in _taskNotificationDescriptor, so their completion toast rendered an empty
— a blank bold line that showed as a random gap above the message — and had no icon, unlike every other notification. Treat any task with no app slug as a system task so it gets the 'LibrePortal' subject and libreportal.svg icon. Co-Authored-By: Claude Opus 4.8 Signed-off-by: librelad --- .../frontend/components/tasks/js/tasks-manager.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/containers/libreportal/frontend/components/tasks/js/tasks-manager.js b/containers/libreportal/frontend/components/tasks/js/tasks-manager.js index 4ccbbf8..2a89bfc 100755 --- a/containers/libreportal/frontend/components/tasks/js/tasks-manager.js +++ b/containers/libreportal/frontend/components/tasks/js/tasks-manager.js @@ -79,7 +79,11 @@ class TasksManager { const sysBackupSubject = sysBackup ? (sysBackup[1] === 'system' ? 'Configs' : 'All apps') : null; - const isSystemTask = action.startsWith('setup-') || appName === 'system' || !!sysBackup; + // Any task with no app slug (verify, regen, update, …) is a LibrePortal / + // system task. Without this it resolves to a blank subject + no icon, so + // its notification renders an empty bold line above the message (gap) and + // looks unlike the app/system notifications. + const isSystemTask = action.startsWith('setup-') || appName === 'system' || !!sysBackup || !appName; let actionTitle = this.formatActionTitle(action); // Tool tasks: prefer the catalog-defined label. const toolCmdMatch = ((task && task.command) || '').match(/libreportal app tool (\S+) (\S+)/);