]> git.ipfire.org Git - thirdparty/paperless-ngx.git/blob
ce49263b2c07a1a73eda726e562c5d44bece3c9d
[thirdparty/paperless-ngx.git] /
1 import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'
2 import { Component, OnInit } from '@angular/core'
3 import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
4 import { takeUntil } from 'rxjs'
5 import { Document } from 'src/app/data/document'
6 import { PermissionsService } from 'src/app/services/permissions.service'
7 import { DocumentService } from 'src/app/services/rest/document.service'
8 import { ConfirmDialogComponent } from '../confirm-dialog.component'
9
10 @Component({
11 selector: 'pngx-merge-confirm-dialog',
12 templateUrl: './merge-confirm-dialog.component.html',
13 styleUrl: './merge-confirm-dialog.component.scss',
14 })
15 export class MergeConfirmDialogComponent
16 extends ConfirmDialogComponent
17 implements OnInit
18 {
19 public documentIDs: number[] = []
20 public deleteOriginals: boolean = false
21 private _documents: Document[] = []
22 get documents(): Document[] {
23 return this._documents
24 }
25
26 public metadataDocumentID: number = -1
27
28 constructor(
29 activeModal: NgbActiveModal,
30 private documentService: DocumentService,
31 private permissionService: PermissionsService
32 ) {
33 super(activeModal)
34 }
35
36 ngOnInit() {
37 this.documentService
38 .getFew(this.documentIDs)
39 .pipe(takeUntil(this.unsubscribeNotifier))
40 .subscribe((r) => {
41 this._documents = r.results
42 })
43 }
44
45 onDrop(event: CdkDragDrop<number[]>) {
46 moveItemInArray(this.documentIDs, event.previousIndex, event.currentIndex)
47 }
48
49 getDocument(documentID: number): Document {
50 return this.documents.find((d) => d.id === documentID)
51 }
52
53 get userOwnsAllDocuments(): boolean {
54 return this.documents.every((d) =>
55 this.permissionService.currentUserOwnsObject(d)
56 )
57 }
58 }