diff --git a/containers/libreportal/frontend/js/components/tasks/tasks-manager.js b/containers/libreportal/frontend/js/components/tasks/tasks-manager.js index 86a6dd4..ee66658 100755 --- a/containers/libreportal/frontend/js/components/tasks/tasks-manager.js +++ b/containers/libreportal/frontend/js/components/tasks/tasks-manager.js @@ -1014,11 +1014,15 @@ class TasksManager { Keeps the layout consistent across every row regardless of source. */ renderTaskIcons(task) { const typeIcon = `${this.getTaskTypeIcon(task).icon}`; - if (task.app) { + // `app: 'system'` is a category sentinel (config_update, system_update, …), + // not a real app slug, so it has no /icons/apps/system.svg — fall through + // to the LibrePortal-system branch so those tasks still get a logo. + const isSystemSentinel = task.app === 'system'; + if (task.app && !isSystemSentinel) { const appIconPath = this.getAppIconPath(task); return `${typeIcon}${task.app}`; } - if (this.isLibrePortalSystemTask(task)) { + if (isSystemSentinel || this.isLibrePortalSystemTask(task)) { return `${typeIcon}LibrePortal`; } return typeIcon;