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'
11 selector: 'pngx-merge-confirm-dialog',
12 templateUrl: './merge-confirm-dialog.component.html',
13 styleUrl: './merge-confirm-dialog.component.scss',
15 export class MergeConfirmDialogComponent
16 extends ConfirmDialogComponent
19 public documentIDs: number[] = []
20 public deleteOriginals: boolean = false
21 private _documents: Document[] = []
22 get documents(): Document[] {
23 return this._documents
26 public metadataDocumentID: number = -1
29 activeModal: NgbActiveModal,
30 private documentService: DocumentService,
31 private permissionService: PermissionsService
38 .getFew(this.documentIDs)
39 .pipe(takeUntil(this.unsubscribeNotifier))
41 this._documents = r.results
45 onDrop(event: CdkDragDrop<number[]>) {
46 moveItemInArray(this.documentIDs, event.previousIndex, event.currentIndex)
49 getDocument(documentID: number): Document {
50 return this.documents.find((d) => d.id === documentID)
53 get userOwnsAllDocuments(): boolean {
54 return this.documents.every((d) =>
55 this.permissionService.currentUserOwnsObject(d)