mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Fix update vs create
This commit is contained in:
		@@ -76,18 +76,18 @@
 | 
			
		||||
<div class="modal-footer flex-column">
 | 
			
		||||
  <div class="d-flex w-100 justify-content-between align-items-center">
 | 
			
		||||
    <div class="btn-group" role="group">
 | 
			
		||||
      <input type="radio" class="btn-check" [(ngModel)]="editMode" [value]="EditMode.Create" id="editModeCreate" name="editmode">
 | 
			
		||||
      <input type="radio" class="btn-check" [(ngModel)]="editMode" [value]="PdfEditorEditMode.Create" id="editModeCreate" name="editmode">
 | 
			
		||||
      <label for="editModeCreate" class="btn btn-outline-primary btn-sm">
 | 
			
		||||
        <i-bs name="plus"></i-bs>
 | 
			
		||||
        <span class="form-check-label ms-1" i18n>Create new document(s)</span>
 | 
			
		||||
      </label>
 | 
			
		||||
      <input type="radio" class="btn-check" [(ngModel)]="editMode" [value]="EditMode.Update" id="editModeUpdate" name="editmode" [disabled]="hasSplit()">
 | 
			
		||||
      <input type="radio" class="btn-check" [(ngModel)]="editMode" [value]="PdfEditorEditMode.Update" id="editModeUpdate" name="editmode" [disabled]="hasSplit()">
 | 
			
		||||
      <label for="editModeUpdate" class="btn btn-outline-primary btn-sm">
 | 
			
		||||
        <i-bs name="pencil"></i-bs>
 | 
			
		||||
        <span class="form-check-label ms-2" i18n>Update existing document</span>
 | 
			
		||||
      </label>
 | 
			
		||||
    </div>
 | 
			
		||||
    @if (editMode === EditMode.Create) {
 | 
			
		||||
    @if (editMode === PdfEditorEditMode.Create) {
 | 
			
		||||
      <div class="form-check ms-3">
 | 
			
		||||
        <input class="form-check-input" type="checkbox" id="copyMeta" [(ngModel)]="includeMetadata">
 | 
			
		||||
        <label class="form-check-label" for="copyMeta" i18n>Copy metadata</label>
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ interface PageOperation {
 | 
			
		||||
  loaded?: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum EditMode {
 | 
			
		||||
export enum PdfEditorEditMode {
 | 
			
		||||
  Update = 'update',
 | 
			
		||||
  Create = 'create',
 | 
			
		||||
}
 | 
			
		||||
@@ -36,7 +36,7 @@ enum EditMode {
 | 
			
		||||
  ],
 | 
			
		||||
})
 | 
			
		||||
export class PDFEditorComponent extends ConfirmDialogComponent {
 | 
			
		||||
  public EditMode = EditMode
 | 
			
		||||
  public PdfEditorEditMode = PdfEditorEditMode
 | 
			
		||||
 | 
			
		||||
  private documentService = inject(DocumentService)
 | 
			
		||||
  activeModal: NgbActiveModal = inject(NgbActiveModal)
 | 
			
		||||
@@ -44,9 +44,8 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
 | 
			
		||||
  documentID: number
 | 
			
		||||
  pages: PageOperation[] = []
 | 
			
		||||
  totalPages = 0
 | 
			
		||||
  editMode: EditMode = EditMode.Create
 | 
			
		||||
  editMode: PdfEditorEditMode = PdfEditorEditMode.Create
 | 
			
		||||
  deleteOriginal: boolean = false
 | 
			
		||||
  updateDocument: boolean = false
 | 
			
		||||
  includeMetadata: boolean = true
 | 
			
		||||
 | 
			
		||||
  get pdfSrc(): string {
 | 
			
		||||
@@ -88,7 +87,7 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
 | 
			
		||||
    this.pages[i].splitAfter = !this.pages[i].splitAfter
 | 
			
		||||
    if (this.pages[i].splitAfter) {
 | 
			
		||||
      // force create mode
 | 
			
		||||
      this.editMode = EditMode.Create
 | 
			
		||||
      this.editMode = PdfEditorEditMode.Create
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -117,12 +116,11 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getOperations() {
 | 
			
		||||
    const operations = this.pages.map((p, idx) => ({
 | 
			
		||||
    return this.pages.map((p, idx) => ({
 | 
			
		||||
      page: p.page,
 | 
			
		||||
      rotate: p.rotate,
 | 
			
		||||
      doc: this.computeDocIndex(idx),
 | 
			
		||||
    }))
 | 
			
		||||
    return operations
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private computeDocIndex(index: number): number {
 | 
			
		||||
 
 | 
			
		||||
@@ -1175,6 +1175,7 @@ describe('DocumentDetailComponent', () => {
 | 
			
		||||
      method: 'edit_pdf',
 | 
			
		||||
      parameters: {
 | 
			
		||||
        operations: [{ page: 1, rotate: 0, doc: 0 }],
 | 
			
		||||
        delete_original: false,
 | 
			
		||||
        update_document: false,
 | 
			
		||||
        include_metadata: true,
 | 
			
		||||
      },
 | 
			
		||||
 
 | 
			
		||||
@@ -99,7 +99,10 @@ import { TagsComponent } from '../common/input/tags/tags.component'
 | 
			
		||||
import { TextComponent } from '../common/input/text/text.component'
 | 
			
		||||
import { UrlComponent } from '../common/input/url/url.component'
 | 
			
		||||
import { PageHeaderComponent } from '../common/page-header/page-header.component'
 | 
			
		||||
import { PDFEditorComponent } from '../common/pdf-editor/pdf-editor.component'
 | 
			
		||||
import {
 | 
			
		||||
  PDFEditorComponent,
 | 
			
		||||
  PdfEditorEditMode,
 | 
			
		||||
} from '../common/pdf-editor/pdf-editor.component'
 | 
			
		||||
import { ShareLinksDialogComponent } from '../common/share-links-dialog/share-links-dialog.component'
 | 
			
		||||
import { DocumentHistoryComponent } from '../document-history/document-history.component'
 | 
			
		||||
import { DocumentNotesComponent } from '../document-notes/document-notes.component'
 | 
			
		||||
@@ -1363,7 +1366,9 @@ export class DocumentDetailComponent
 | 
			
		||||
        this.documentsService
 | 
			
		||||
          .bulkEdit([this.document.id], 'edit_pdf', {
 | 
			
		||||
            operations: modal.componentInstance.getOperations(),
 | 
			
		||||
            update_document: modal.componentInstance.updateDocument,
 | 
			
		||||
            delete_original: modal.componentInstance.deleteOriginal,
 | 
			
		||||
            update_document:
 | 
			
		||||
              modal.componentInstance.editMode == PdfEditorEditMode.Update,
 | 
			
		||||
            include_metadata: modal.componentInstance.includeMetadata,
 | 
			
		||||
          })
 | 
			
		||||
          .pipe(first(), takeUntil(this.unsubscribeNotifier))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user