mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	fix merge
This commit is contained in:
		@@ -15,13 +15,13 @@ import { SavedViewService } from 'src/app/services/rest/saved-view.service'
 | 
				
			|||||||
import { SearchService } from 'src/app/services/rest/search.service'
 | 
					import { SearchService } from 'src/app/services/rest/search.service'
 | 
				
			||||||
import { environment } from 'src/environments/environment'
 | 
					import { environment } from 'src/environments/environment'
 | 
				
			||||||
import { DocumentDetailComponent } from '../document-detail/document-detail.component'
 | 
					import { DocumentDetailComponent } from '../document-detail/document-detail.component'
 | 
				
			||||||
 | 
					import { DocumentListViewService } from 'src/app/services/document-list-view.service'
 | 
				
			||||||
import { FILTER_FULLTEXT_QUERY } from 'src/app/data/filter-rule-type'
 | 
					import { FILTER_FULLTEXT_QUERY } from 'src/app/data/filter-rule-type'
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  RemoteVersionService,
 | 
					  RemoteVersionService,
 | 
				
			||||||
  AppRemoteVersion,
 | 
					  AppRemoteVersion,
 | 
				
			||||||
} from 'src/app/services/rest/remote-version.service'
 | 
					} from 'src/app/services/rest/remote-version.service'
 | 
				
			||||||
import { SettingsService } from 'src/app/services/settings.service'
 | 
					import { SettingsService } from 'src/app/services/settings.service'
 | 
				
			||||||
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
  selector: 'app-app-frame',
 | 
					  selector: 'app-app-frame',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,24 @@
 | 
				
			|||||||
<app-page-header title="File Tasks" i18n-title>
 | 
					<app-page-header title="File Tasks" i18n-title>
 | 
				
			||||||
  <button class="btn btn-sm btn-outline-primary" (click)="tasksService.reload()">
 | 
					  <div class="btn-toolbar col col-md-auto">
 | 
				
			||||||
    <svg class="sidebaricon" fill="currentColor">
 | 
					    <button class="btn btn-sm btn-outline-secondary me-2" (click)="clearSelection()" [hidden]="selectedTasks.size == 0">
 | 
				
			||||||
      <use xlink:href="assets/bootstrap-icons.svg#arrow-clockwise"/>
 | 
					      <svg class="sidebaricon" fill="currentColor">
 | 
				
			||||||
    </svg> <ng-container i18n>Refresh</ng-container>
 | 
					        <use xlink:href="assets/bootstrap-icons.svg#x"/>
 | 
				
			||||||
  </button>
 | 
					      </svg> <ng-container i18n>Clear selection</ng-container>
 | 
				
			||||||
 | 
					    </button>
 | 
				
			||||||
 | 
					    <button class="btn btn-sm btn-outline-primary me-4" (click)="dismissTasks()" [disabled]="tasksService.total == 0">
 | 
				
			||||||
 | 
					      <svg class="sidebaricon" fill="currentColor">
 | 
				
			||||||
 | 
					        <use xlink:href="assets/bootstrap-icons.svg#check2-all"/>
 | 
				
			||||||
 | 
					      </svg> <ng-container i18n>{{dismissButtonText}}</ng-container>
 | 
				
			||||||
 | 
					    </button>
 | 
				
			||||||
 | 
					    <button class="btn btn-sm btn-outline-primary" (click)="tasksService.reload()">
 | 
				
			||||||
 | 
					      <svg class="sidebaricon" fill="currentColor">
 | 
				
			||||||
 | 
					        <use xlink:href="assets/bootstrap-icons.svg#arrow-clockwise"/>
 | 
				
			||||||
 | 
					      </svg> <ng-container i18n>Refresh</ng-container>
 | 
				
			||||||
 | 
					    </button>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
</app-page-header>
 | 
					</app-page-header>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ng-container *ngIf="!tasksService.completed && tasksService.loading">
 | 
					<ng-container *ngIf="!tasksService.completedFileTasks && tasksService.loading">
 | 
				
			||||||
  <div class="spinner-border spinner-border-sm fw-normal ms-2 me-auto" role="status"></div>
 | 
					  <div class="spinner-border spinner-border-sm fw-normal ms-2 me-auto" role="status"></div>
 | 
				
			||||||
  <div class="visually-hidden" i18n>Loading...</div>
 | 
					  <div class="visually-hidden" i18n>Loading...</div>
 | 
				
			||||||
</ng-container>
 | 
					</ng-container>
 | 
				
			||||||
@@ -15,25 +27,23 @@
 | 
				
			|||||||
  <table class="table table-striped align-middle border shadow-sm">
 | 
					  <table class="table table-striped align-middle border shadow-sm">
 | 
				
			||||||
    <thead>
 | 
					    <thead>
 | 
				
			||||||
      <tr>
 | 
					      <tr>
 | 
				
			||||||
        <!--  [currentSortField]="sortField" [currentSortReverse]="sortReverse" (sort)="onSort($event)" -->
 | 
					        <th scope="col">
 | 
				
			||||||
        <th>
 | 
					 | 
				
			||||||
          <div class="form-check">
 | 
					          <div class="form-check">
 | 
				
			||||||
            <!--  [checked]="list.isSelected(d)" (click)="toggleSelected(d, $event); $event.stopPropagation();" -->
 | 
					            <input type="checkbox" class="form-check-input" id="all-tasks" [disabled]="currentTasks.length == 0" (click)="toggleAll($event); $event.stopPropagation();">
 | 
				
			||||||
            <input type="checkbox" class="form-check-input" id="all-tasks">
 | 
					 | 
				
			||||||
            <label class="form-check-label" for="all-tasks"></label>
 | 
					            <label class="form-check-label" for="all-tasks"></label>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </th>
 | 
					        </th>
 | 
				
			||||||
        <th scope="col" sortable="name" i18n>Name</th>
 | 
					        <th scope="col" width="25%" i18n>Name</th>
 | 
				
			||||||
        <th scope="col" sortable="name" i18n>Started</th>
 | 
					        <th scope="col" width="20%" i18n>Created</th>
 | 
				
			||||||
        <th scope="col" i18n>Actions</th>
 | 
					        <th scope="col" width="45%" i18n>Results</th>
 | 
				
			||||||
 | 
					        <th scope="col" width="10%" i18n>Actions</th>
 | 
				
			||||||
      </tr>
 | 
					      </tr>
 | 
				
			||||||
    </thead>
 | 
					    </thead>
 | 
				
			||||||
    <tbody>
 | 
					    <tbody>
 | 
				
			||||||
      <tr *ngFor="let task of tasks">
 | 
					      <tr *ngFor="let task of tasks">
 | 
				
			||||||
        <th>
 | 
					        <th>
 | 
				
			||||||
          <div class="form-check">
 | 
					          <div class="form-check">
 | 
				
			||||||
            <!--  [checked]="list.isSelected(d)" (click)="toggleSelected(d, $event); $event.stopPropagation();" -->
 | 
					            <input type="checkbox" class="form-check-input" id="task{{task.id}}" [checked]="selectedTasks.has(task.id)" (click)="toggleSelected(task, $event); $event.stopPropagation();">
 | 
				
			||||||
            <input type="checkbox" class="form-check-input" id="task{{task.id}}">
 | 
					 | 
				
			||||||
            <label class="form-check-label" for="task{{task.id}}"></label>
 | 
					            <label class="form-check-label" for="task{{task.id}}"></label>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </th>
 | 
					        </th>
 | 
				
			||||||
@@ -61,23 +71,23 @@
 | 
				
			|||||||
  </table>
 | 
					  </table>
 | 
				
			||||||
</ng-template>
 | 
					</ng-template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul ngbNav #nav="ngbNav" class="nav-tabs">
 | 
					<ul ngbNav #nav="ngbNav" [(activeId)]="activeTab" class="nav-tabs">
 | 
				
			||||||
  <li ngbNavItem>
 | 
					  <li ngbNavItem="incomplete">
 | 
				
			||||||
    <a ngbNavLink i18n>Incomplete <span class="badge bg-secondary ms-1">{{tasksService.incomplete.length}}</span></a>
 | 
					    <a ngbNavLink i18n>Incomplete <span class="badge bg-secondary ms-1">{{tasksService.incompleteFileTasks.length}}</span></a>
 | 
				
			||||||
    <ng-template ngbNavContent>
 | 
					    <ng-template ngbNavContent>
 | 
				
			||||||
      <ng-container [ngTemplateOutlet]="tasksTemplate" [ngTemplateOutletContext]="{tasks:tasksService.incomplete}"></ng-container>
 | 
					      <ng-container [ngTemplateOutlet]="tasksTemplate" [ngTemplateOutletContext]="{tasks:tasksService.incompleteFileTasks}"></ng-container>
 | 
				
			||||||
    </ng-template>
 | 
					    </ng-template>
 | 
				
			||||||
  </li>
 | 
					  </li>
 | 
				
			||||||
  <li ngbNavItem>
 | 
					  <li ngbNavItem="completed">
 | 
				
			||||||
    <a ngbNavLink i18n>Completed <span class="badge bg-secondary ms-1">{{tasksService.completed.length}}</span></a>
 | 
					    <a ngbNavLink i18n>Completed <span class="badge bg-secondary ms-1">{{tasksService.completedFileTasks.length}}</span></a>
 | 
				
			||||||
    <ng-template ngbNavContent>
 | 
					    <ng-template ngbNavContent>
 | 
				
			||||||
      <ng-container [ngTemplateOutlet]="tasksTemplate" [ngTemplateOutletContext]="{tasks:tasksService.completed}"></ng-container>
 | 
					      <ng-container [ngTemplateOutlet]="tasksTemplate" [ngTemplateOutletContext]="{tasks:tasksService.completedFileTasks}"></ng-container>
 | 
				
			||||||
    </ng-template>
 | 
					    </ng-template>
 | 
				
			||||||
  </li>
 | 
					  </li>
 | 
				
			||||||
  <li ngbNavItem>
 | 
					  <li ngbNavItem="failed">
 | 
				
			||||||
    <a ngbNavLink i18n>Failed <span class="badge bg-secondary ms-1">{{tasksService.failed.length}}</span></a>
 | 
					    <a ngbNavLink i18n>Failed <span class="badge bg-secondary ms-1">{{tasksService.failedFileTasks.length}}</span></a>
 | 
				
			||||||
    <ng-template ngbNavContent>
 | 
					    <ng-template ngbNavContent>
 | 
				
			||||||
      <ng-container [ngTemplateOutlet]="tasksTemplate" [ngTemplateOutletContext]="{tasks:tasksService.failed}"></ng-container>
 | 
					      <ng-container [ngTemplateOutlet]="tasksTemplate" [ngTemplateOutletContext]="{tasks:tasksService.failedFileTasks}"></ng-container>
 | 
				
			||||||
    </ng-template>
 | 
					    </ng-template>
 | 
				
			||||||
  </li>
 | 
					  </li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,8 +9,16 @@ import { TasksService } from 'src/app/services/tasks.service'
 | 
				
			|||||||
  styleUrls: ['./tasks.component.scss'],
 | 
					  styleUrls: ['./tasks.component.scss'],
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class TasksComponent implements OnInit, OnDestroy {
 | 
					export class TasksComponent implements OnInit, OnDestroy {
 | 
				
			||||||
 | 
					  public activeTab: string
 | 
				
			||||||
 | 
					  public selectedTasks: Set<number> = new Set()
 | 
				
			||||||
  private unsubscribeNotifer = new Subject()
 | 
					  private unsubscribeNotifer = new Subject()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get dismissButtonText(): string {
 | 
				
			||||||
 | 
					    return this.selectedTasks.size > 0
 | 
				
			||||||
 | 
					      ? $localize`Dismiss selected`
 | 
				
			||||||
 | 
					      : $localize`Dismiss all`
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(public tasksService: TasksService) {}
 | 
					  constructor(public tasksService: TasksService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit() {
 | 
					  ngOnInit() {
 | 
				
			||||||
@@ -21,7 +29,50 @@ export class TasksComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
    this.unsubscribeNotifer.next(true)
 | 
					    this.unsubscribeNotifer.next(true)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  acknowledgeTask(task: PaperlessTask) {
 | 
					  dismissTask(task: PaperlessTask) {
 | 
				
			||||||
    throw new Error('Not implemented' + task)
 | 
					    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()
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,25 @@
 | 
				
			|||||||
import { ObjectWithId } from './object-with-id'
 | 
					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 {
 | 
					export interface PaperlessTask extends ObjectWithId {
 | 
				
			||||||
 | 
					  type: PaperlessTaskType
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  status: PaperlessTaskStatus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  acknowledged: boolean
 | 
					  acknowledged: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  q_task_id: string
 | 
					  task_id: string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  name: string
 | 
					  name: string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,16 +1,13 @@
 | 
				
			|||||||
import { HttpClient } from '@angular/common/http'
 | 
					import { HttpClient } from '@angular/common/http'
 | 
				
			||||||
import { Injectable } from '@angular/core'
 | 
					import { Injectable } from '@angular/core'
 | 
				
			||||||
import { Observable } from 'rxjs'
 | 
					 | 
				
			||||||
import { first, map } from 'rxjs/operators'
 | 
					import { first, map } from 'rxjs/operators'
 | 
				
			||||||
import { PaperlessTask } from 'src/app/data/paperless-task'
 | 
					import {
 | 
				
			||||||
 | 
					  PaperlessTask,
 | 
				
			||||||
 | 
					  PaperlessTaskStatus,
 | 
				
			||||||
 | 
					  PaperlessTaskType,
 | 
				
			||||||
 | 
					} from 'src/app/data/paperless-task'
 | 
				
			||||||
import { environment } from 'src/environments/environment'
 | 
					import { environment } from 'src/environments/environment'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface TasksAPIResponse {
 | 
					 | 
				
			||||||
  incomplete: Array<PaperlessTask>
 | 
					 | 
				
			||||||
  completed: Array<PaperlessTask>
 | 
					 | 
				
			||||||
  failed: Array<PaperlessTask>
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@Injectable({
 | 
					@Injectable({
 | 
				
			||||||
  providedIn: 'root',
 | 
					  providedIn: 'root',
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -19,19 +16,26 @@ export class TasksService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  loading: boolean
 | 
					  loading: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private incompleteTasks: PaperlessTask[] = []
 | 
					  private fileTasks: PaperlessTask[] = []
 | 
				
			||||||
  public get incomplete(): PaperlessTask[] {
 | 
					
 | 
				
			||||||
    return this.incompleteTasks
 | 
					  public get total(): number {
 | 
				
			||||||
 | 
					    return this.fileTasks?.length
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private completedTasks: PaperlessTask[] = []
 | 
					  public get incompleteFileTasks(): PaperlessTask[] {
 | 
				
			||||||
  public get completed(): PaperlessTask[] {
 | 
					    return this.fileTasks.filter(
 | 
				
			||||||
    return this.completedTasks
 | 
					      (t) => t.status == PaperlessTaskStatus.Incomplete
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private failedTasks: PaperlessTask[] = []
 | 
					  public get completedFileTasks(): PaperlessTask[] {
 | 
				
			||||||
  public get failed(): PaperlessTask[] {
 | 
					    return this.fileTasks.filter(
 | 
				
			||||||
    return this.failedTasks
 | 
					      (t) => t.status == PaperlessTaskStatus.Complete
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  public get failedFileTasks(): PaperlessTask[] {
 | 
				
			||||||
 | 
					    return this.fileTasks.filter((t) => t.status == PaperlessTaskStatus.Failed)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(private http: HttpClient) {}
 | 
					  constructor(private http: HttpClient) {}
 | 
				
			||||||
@@ -40,46 +44,23 @@ export class TasksService {
 | 
				
			|||||||
    this.loading = true
 | 
					    this.loading = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.http
 | 
					    this.http
 | 
				
			||||||
      .get<TasksAPIResponse>(`${this.baseUrl}consumption_tasks/`)
 | 
					      .get<PaperlessTask[]>(`${this.baseUrl}tasks/`)
 | 
				
			||||||
      .pipe(first())
 | 
					      .pipe(first())
 | 
				
			||||||
      .subscribe((r) => {
 | 
					      .subscribe((r) => {
 | 
				
			||||||
        this.incompleteTasks = r.incomplete
 | 
					        this.fileTasks = r.filter((t) => t.type == PaperlessTaskType.File) // they're all File tasks, for now
 | 
				
			||||||
        this.completedTasks = r.completed
 | 
					 | 
				
			||||||
        this.failedTasks = r.failed
 | 
					 | 
				
			||||||
        this.loading = false
 | 
					        this.loading = false
 | 
				
			||||||
        return true
 | 
					        return true
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // private savedViews: PaperlessSavedView[] = []
 | 
					  public dismissTasks(task_ids: Set<number>) {
 | 
				
			||||||
 | 
					    this.http
 | 
				
			||||||
  // get allViews() {
 | 
					      .post(`${this.baseUrl}acknowledge_tasks/`, {
 | 
				
			||||||
  //   return this.savedViews
 | 
					        tasks: [...task_ids],
 | 
				
			||||||
  // }
 | 
					      })
 | 
				
			||||||
 | 
					      .pipe(first())
 | 
				
			||||||
  // get sidebarViews() {
 | 
					      .subscribe((r) => {
 | 
				
			||||||
  //   return this.savedViews.filter((v) => v.show_in_sidebar)
 | 
					        this.reload()
 | 
				
			||||||
  // }
 | 
					      })
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  // 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<PaperlessSavedView[]> {
 | 
					 | 
				
			||||||
  //   return combineLatest(objects.map((o) => super.patch(o))).pipe(
 | 
					 | 
				
			||||||
  //     tap(() => this.reload())
 | 
					 | 
				
			||||||
  //   )
 | 
					 | 
				
			||||||
  // }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // delete(o: PaperlessSavedView) {
 | 
					 | 
				
			||||||
  //   return super.delete(o).pipe(tap(() => this.reload()))
 | 
					 | 
				
			||||||
  // }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user