From b46ccbe3d9a7d8da5a82c098c87e0625fc5743ac Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Mon, 20 Apr 2026 13:32:55 -0700
Subject: [PATCH] Update for compatibility with
58789e506145cdcd948c2ac8c6960bbedad084f3
---
.../admin/tasks/tasks.component.html | 16 +++---
.../admin/tasks/tasks.component.spec.ts | 18 +++---
.../components/admin/tasks/tasks.component.ts | 55 ++++++++++++++++++-
src-ui/src/app/data/paperless-task.ts | 1 -
4 files changed, 71 insertions(+), 19 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 f9e24b5c7..6c3ebcaa6 100644
--- a/src-ui/src/app/components/admin/tasks/tasks.component.html
+++ b/src-ui/src/app/components/admin/tasks/tasks.component.html
@@ -135,20 +135,20 @@
{{ task.date_created | customDate:'short' }} |
@if (sectionShowsResults(section)) {
- @if (task.result_message?.length > 50) {
+ @if (taskHasLongResultMessage(task)) {
- {{ task.result_message | slice:0:50 }}…
+ {{ taskResultPreview(task) }}
}
- @if (task.result_message?.length <= 50) {
- {{ task.result_message }}
+ @if (taskHasResultMessage(task) && !taskHasLongResultMessage(task)) {
+ {{ taskResultMessage(task) }}
}
- {{ task.result_message | slice:0:300 }}@if (task.result_message.length > 300) {
+ {{ taskResultPopoverMessage(task) }}@if (taskResultMessageOverflowsPopover(task)) {
…
}
- @if (task.result_message?.length > 300) {
+ @if (taskResultMessageOverflowsPopover(task)) {
(click for full output)
}
@@ -178,10 +178,10 @@
|
- @if (task.result_message) {
+ @if (taskHasResultMessage(task)) {
Result message
- {{ task.result_message }}
+ {{ taskResultMessage(task) }}
}
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 4b562ab4e..0b7101144 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
@@ -48,8 +48,10 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'Folder Consume',
status: PaperlessTaskStatus.Failure,
status_display: 'Failure',
- result_message:
- 'test.pd: Not consuming test.pdf: It is a duplicate of test (#100)',
+ result_data: {
+ error_message:
+ 'test.pd: Not consuming test.pdf: It is a duplicate of test (#100)',
+ },
acknowledged: false,
related_document_ids: [],
},
@@ -65,8 +67,7 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'Folder Consume',
status: PaperlessTaskStatus.Failure,
status_display: 'Failure',
- result_message:
- '191092.pd: Not consuming 191092.pdf: It is a duplicate of 191092 (#311)',
+ result_data: { duplicate_of: 311 },
acknowledged: false,
related_document_ids: [],
},
@@ -82,7 +83,7 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'Folder Consume',
status: PaperlessTaskStatus.Pending,
status_display: 'Pending',
- result_message: null,
+ result_data: null,
acknowledged: false,
related_document_ids: [],
},
@@ -98,7 +99,7 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'Email Consume',
status: PaperlessTaskStatus.Success,
status_display: 'Success',
- result_message: 'Success. New document id 422 created',
+ result_data: { document_id: 422 },
acknowledged: false,
related_document_ids: [422],
},
@@ -114,7 +115,7 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'Folder Consume',
status: PaperlessTaskStatus.Success,
status_display: 'Success',
- result_message: 'Success. New document id 421 created',
+ result_data: { document_id: 421 },
acknowledged: false,
related_document_ids: [421],
},
@@ -130,7 +131,7 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'Email Consume',
status: PaperlessTaskStatus.Started,
status_display: 'Started',
- result_message: null,
+ result_data: null,
acknowledged: false,
related_document_ids: [],
},
@@ -146,7 +147,6 @@ const tasks: PaperlessTask[] = [
trigger_source_display: 'System',
status: PaperlessTaskStatus.Started,
status_display: 'Started',
- result_message: null,
result_data: { issues_found: 0 },
acknowledged: false,
related_document_ids: [],
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 f926ce5a0..75e555e5c 100644
--- a/src-ui/src/app/components/admin/tasks/tasks.component.ts
+++ b/src-ui/src/app/components/admin/tasks/tasks.component.ts
@@ -318,6 +318,59 @@ export class TasksComponent
return this.taskDisplayName(task) !== task.task_type_display
}
+ taskResultMessage(task: PaperlessTask): string | null {
+ if (!task.result_data) {
+ return null
+ }
+
+ const documentId = task.result_data?.['document_id']
+ if (typeof documentId === 'number') {
+ return `Success. New document id ${documentId} created`
+ }
+
+ const reason = task.result_data?.['reason']
+ if (typeof reason === 'string') {
+ return reason
+ }
+
+ const duplicateOf = task.result_data?.['duplicate_of']
+ if (typeof duplicateOf === 'number') {
+ return `Not consuming: It is a duplicate of document #${duplicateOf}`
+ }
+
+ const errorMessage = task.result_data?.['error_message']
+ if (typeof errorMessage === 'string') {
+ return errorMessage
+ }
+
+ return null
+ }
+
+ taskResultPreview(task: PaperlessTask): string | null {
+ const message = this.taskResultMessage(task)
+ if (!message) {
+ return null
+ }
+
+ return message.length > 50 ? `${message.slice(0, 50)}...` : message
+ }
+
+ taskHasLongResultMessage(task: PaperlessTask): boolean {
+ return (this.taskResultMessage(task)?.length ?? 0) > 50
+ }
+
+ taskHasResultMessage(task: PaperlessTask): boolean {
+ return !!this.taskResultMessage(task)
+ }
+
+ taskResultPopoverMessage(task: PaperlessTask): string {
+ return this.taskResultMessage(task)?.slice(0, 300) ?? ''
+ }
+
+ taskResultMessageOverflowsPopover(task: PaperlessTask): boolean {
+ return (this.taskResultMessage(task)?.length ?? 0) > 300
+ }
+
tasksForSection(section: TaskSection): PaperlessTask[] {
let tasks = this.tasksService.allFileTasks.filter((task) =>
this.taskBelongsToSection(task, section)
@@ -451,7 +504,7 @@ export class TasksComponent
.some((value) => value.toLowerCase().includes(query))
}
- return task.result_message?.toLowerCase().includes(query)
+ return this.taskResultMessage(task)?.toLowerCase().includes(query) ?? false
}
private tasksForOptionCounts({
diff --git a/src-ui/src/app/data/paperless-task.ts b/src-ui/src/app/data/paperless-task.ts
index 0d0aaa84c..53aba0edd 100644
--- a/src-ui/src/app/data/paperless-task.ts
+++ b/src-ui/src/app/data/paperless-task.ts
@@ -47,7 +47,6 @@ export interface PaperlessTask extends ObjectWithId {
wait_time_seconds?: number
input_data: Record
result_data?: Record
- result_message?: string
related_document_ids: number[]
acknowledged: boolean
owner?: number
|