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