From df98f471ae2c9124b9c6e8371ca0477c78c0a818 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Mon, 20 Apr 2026 13:13:00 -0700
Subject: [PATCH] Fancy result details
---
.../admin/tasks/tasks.component.html | 36 +++++++++++++++----
.../admin/tasks/tasks.component.spec.ts | 16 ++++++++-
.../components/admin/tasks/tasks.component.ts | 4 ++-
src-ui/src/styles.scss | 8 +++++
4 files changed, 56 insertions(+), 8 deletions(-)
diff --git a/src-ui/src/app/components/admin/tasks/tasks.component.html b/src-ui/src/app/components/admin/tasks/tasks.component.html
index 48abf243d..f9e24b5c7 100644
--- a/src-ui/src/app/components/admin/tasks/tasks.component.html
+++ b/src-ui/src/app/components/admin/tasks/tasks.component.html
@@ -174,12 +174,36 @@
-
-
- {{ task.result_message }}
- |
-
- }
+
+
+
+
+ @if (task.result_message) {
+
+ Result message
+ {{ task.result_message }}
+
+ }
+
+
+
+
+ Input data
+ {{ task.input_data | json }}
+
+
+
+
+ Result data
+ {{ (task.result_data ?? {}) | json }}
+
+
+
+
+
+ |
+
+ }
diff --git a/src-ui/src/app/components/admin/tasks/tasks.component.spec.ts b/src-ui/src/app/components/admin/tasks/tasks.component.spec.ts
index 15dcbce1a..4b562ab4e 100644
--- a/src-ui/src/app/components/admin/tasks/tasks.component.spec.ts
+++ b/src-ui/src/app/components/admin/tasks/tasks.component.spec.ts
@@ -137,7 +137,7 @@ const tasks: PaperlessTask[] = [
{
id: 461,
task_id: 'bb79efb3-1e78-4f31-b4be-0966620b0ce1',
- input_data: {},
+ input_data: { dry_run: false, scope: 'global' },
date_created: new Date('2023-06-07T03:54:35.694916Z'),
date_done: null,
task_type: PaperlessTaskType.SanityCheck,
@@ -147,6 +147,7 @@ const tasks: PaperlessTask[] = [
status: PaperlessTaskStatus.Started,
status_display: 'Started',
result_message: null,
+ result_data: { issues_found: 0 },
acknowledged: false,
related_document_ids: [],
},
@@ -285,6 +286,19 @@ describe('TasksComponent', () => {
expect(component.expandedTask).toBeUndefined()
})
+ it('should show structured task details when expanded', () => {
+ component.setSection(TaskSection.InProgress)
+ component.expandTask(tasks[6])
+ fixture.detectChanges()
+
+ const detailText = fixture.nativeElement.textContent
+
+ expect(detailText).toContain('Input data')
+ expect(detailText).toContain('Result data')
+ expect(detailText).toContain('"scope": "global"')
+ expect(detailText).toContain('"issues_found": 0')
+ })
+
it('should support dismiss single task', () => {
const dismissSpy = jest.spyOn(tasksService, 'dismissTasks')
component.dismissTask(tasks[0])
diff --git a/src-ui/src/app/components/admin/tasks/tasks.component.ts b/src-ui/src/app/components/admin/tasks/tasks.component.ts
index bc1b87aee..f926ce5a0 100644
--- a/src-ui/src/app/components/admin/tasks/tasks.component.ts
+++ b/src-ui/src/app/components/admin/tasks/tasks.component.ts
@@ -1,4 +1,4 @@
-import { NgTemplateOutlet } from '@angular/common'
+import { JsonPipe, NgTemplateOutlet, SlicePipe } from '@angular/common'
import { Component, inject, OnDestroy, OnInit } from '@angular/core'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { Router } from '@angular/router'
@@ -107,6 +107,8 @@ const TRIGGER_SOURCE_OPTIONS = [
PageHeaderComponent,
IfPermissionsDirective,
CustomDatePipe,
+ SlicePipe,
+ JsonPipe,
FormsModule,
ReactiveFormsModule,
NgTemplateOutlet,
diff --git a/src-ui/src/styles.scss b/src-ui/src/styles.scss
index 109e7b38f..c0933b32b 100644
--- a/src-ui/src/styles.scss
+++ b/src-ui/src/styles.scss
@@ -119,6 +119,10 @@ table .btn-link {
font-size: 1em;
}
+.fs-7 {
+ font-size: 0.75rem !important;
+}
+
.bg-body {
background-color: var(--bs-body-bg);
}
@@ -128,6 +132,10 @@ table .btn-link {
color: var(--pngx-primary-text-contrast);
}
+.bg-darker {
+ background-color: var(--pngx-bg-darker) !important;
+}
+
.navbar-brand {
color: var(--pngx-primary-text-contrast) !important;
}