diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.html b/src-ui/src/app/components/manage/tasks/tasks.component.html index 45fc02666..c9f64041c 100644 --- a/src-ui/src/app/components/manage/tasks/tasks.component.html +++ b/src-ui/src/app/components/manage/tasks/tasks.component.html @@ -1,24 +1,12 @@ - - - - - Clear selection - - - - - {{dismissButtonText}} - - - - - Refresh - - + + + + Refresh + - + Loading... @@ -29,7 +17,8 @@ - + + @@ -43,7 +32,8 @@ - + + @@ -71,23 +61,23 @@ - - - Incomplete {{tasksService.incompleteFileTasks.length}} + + + Incomplete {{tasksService.incomplete.length}} - + - - Completed {{tasksService.completedFileTasks.length}} + + Completed {{tasksService.completed.length}} - + - - Failed {{tasksService.failedFileTasks.length}} + + Failed {{tasksService.failed.length}} - + diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.ts b/src-ui/src/app/components/manage/tasks/tasks.component.ts index 873325b7d..1e32be303 100644 --- a/src-ui/src/app/components/manage/tasks/tasks.component.ts +++ b/src-ui/src/app/components/manage/tasks/tasks.component.ts @@ -9,16 +9,8 @@ import { TasksService } from 'src/app/services/tasks.service' styleUrls: ['./tasks.component.scss'], }) export class TasksComponent implements OnInit, OnDestroy { - public activeTab: string - public selectedTasks: Set = new Set() private unsubscribeNotifer = new Subject() - get dismissButtonText(): string { - return this.selectedTasks.size > 0 - ? $localize`Dismiss selected` - : $localize`Dismiss all` - } - constructor(public tasksService: TasksService) {} ngOnInit() { @@ -29,50 +21,7 @@ export class TasksComponent implements OnInit, OnDestroy { this.unsubscribeNotifer.next(true) } - dismissTask(task: PaperlessTask) { - this.dismissTasks(task) - } - - dismissTasks(task: PaperlessTask = undefined) { - let tasks = task ? new Set([task.id]) : this.selectedTasks - if (this.selectedTasks.size == 0) - tasks = new Set(this.currentTasks.map((t) => t.id)) - this.tasksService.dismissTasks(tasks) - } - - toggleSelected(task: PaperlessTask) { - this.selectedTasks.has(task.id) - ? this.selectedTasks.delete(task.id) - : this.selectedTasks.add(task.id) - } - - get currentTasks(): PaperlessTask[] { - let tasks: PaperlessTask[] - switch (this.activeTab) { - case 'incomplete': - tasks = this.tasksService.incompleteFileTasks - break - case 'completed': - tasks = this.tasksService.completedFileTasks - break - case 'failed': - tasks = this.tasksService.failedFileTasks - break - default: - break - } - return tasks - } - - toggleAll(event: PointerEvent) { - if ((event.target as HTMLInputElement).checked) { - this.selectedTasks = new Set(this.currentTasks.map((t) => t.id)) - } else { - this.clearSelection() - } - } - - clearSelection() { - this.selectedTasks = new Set() + acknowledgeTask(task: PaperlessTask) { + throw new Error('Not implemented' + task) } } diff --git a/src-ui/src/app/data/paperless-task.ts b/src-ui/src/app/data/paperless-task.ts index 15582913c..35ec50a0b 100644 --- a/src-ui/src/app/data/paperless-task.ts +++ b/src-ui/src/app/data/paperless-task.ts @@ -1,25 +1,9 @@ import { ObjectWithId } from './object-with-id' -export enum PaperlessTaskType { - // just file tasks, for now - File = 'file', -} - -export enum PaperlessTaskStatus { - Incomplete = 'incomplete', - Complete = 'complete', - Failed = 'failed', - Unknown = 'unknown', -} - export interface PaperlessTask extends ObjectWithId { - type: PaperlessTaskType - - status: PaperlessTaskStatus - acknowledged: boolean - task_id: string + q_task_id: string name: string diff --git a/src-ui/src/app/services/tasks.service.ts b/src-ui/src/app/services/tasks.service.ts index f6faccaa6..c657e6a30 100644 --- a/src-ui/src/app/services/tasks.service.ts +++ b/src-ui/src/app/services/tasks.service.ts @@ -1,13 +1,16 @@ import { HttpClient } from '@angular/common/http' import { Injectable } from '@angular/core' +import { Observable } from 'rxjs' import { first, map } from 'rxjs/operators' -import { - PaperlessTask, - PaperlessTaskStatus, - PaperlessTaskType, -} from 'src/app/data/paperless-task' +import { PaperlessTask } from 'src/app/data/paperless-task' import { environment } from 'src/environments/environment' +interface TasksAPIResponse { + incomplete: Array + completed: Array + failed: Array +} + @Injectable({ providedIn: 'root', }) @@ -16,26 +19,19 @@ export class TasksService { loading: boolean - private fileTasks: PaperlessTask[] = [] - - public get total(): number { - return this.fileTasks?.length + private incompleteTasks: PaperlessTask[] = [] + public get incomplete(): PaperlessTask[] { + return this.incompleteTasks } - public get incompleteFileTasks(): PaperlessTask[] { - return this.fileTasks.filter( - (t) => t.status == PaperlessTaskStatus.Incomplete - ) + private completedTasks: PaperlessTask[] = [] + public get completed(): PaperlessTask[] { + return this.completedTasks } - public get completedFileTasks(): PaperlessTask[] { - return this.fileTasks.filter( - (t) => t.status == PaperlessTaskStatus.Complete - ) - } - - public get failedFileTasks(): PaperlessTask[] { - return this.fileTasks.filter((t) => t.status == PaperlessTaskStatus.Failed) + private failedTasks: PaperlessTask[] = [] + public get failed(): PaperlessTask[] { + return this.failedTasks } constructor(private http: HttpClient) {} @@ -44,23 +40,46 @@ export class TasksService { this.loading = true this.http - .get(`${this.baseUrl}tasks/`) + .get(`${this.baseUrl}consumption_tasks/`) .pipe(first()) .subscribe((r) => { - this.fileTasks = r.filter((t) => t.type == PaperlessTaskType.File) // they're all File tasks, for now + this.incompleteTasks = r.incomplete + this.completedTasks = r.completed + this.failedTasks = r.failed this.loading = false return true }) } - public dismissTasks(task_ids: Set) { - this.http - .post(`${this.baseUrl}acknowledge_tasks/`, { - tasks: [...task_ids], - }) - .pipe(first()) - .subscribe((r) => { - this.reload() - }) - } + // private savedViews: PaperlessSavedView[] = [] + + // get allViews() { + // return this.savedViews + // } + + // get sidebarViews() { + // return this.savedViews.filter((v) => v.show_in_sidebar) + // } + + // get dashboardViews() { + // return this.savedViews.filter((v) => v.show_on_dashboard) + // } + + // create(o: PaperlessSavedView) { + // return super.create(o).pipe(tap(() => this.reload())) + // } + + // update(o: PaperlessSavedView) { + // return super.update(o).pipe(tap(() => this.reload())) + // } + + // patchMany(objects: PaperlessSavedView[]): Observable { + // return combineLatest(objects.map((o) => super.patch(o))).pipe( + // tap(() => this.reload()) + // ) + // } + + // delete(o: PaperlessSavedView) { + // return super.delete(o).pipe(tap(() => this.reload())) + // } }