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; }