]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix update vs create
authorshamoon <4887959+shamoon@users.noreply.github.com>
Thu, 3 Jul 2025 05:51:56 +0000 (22:51 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Sat, 2 Aug 2025 12:22:55 +0000 (08:22 -0400)
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.html
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts
src-ui/src/app/components/document-detail/document-detail.component.spec.ts
src-ui/src/app/components/document-detail/document-detail.component.ts

index 9d9cc510bb916524563b8a14d1267101ccda3272..49a43141cceff3db69e315927b63916a548112b8 100644 (file)
 <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>
index c3ab30f20758381dfbb885c0656418a030d123a7..f417f5199e22fea8b7b7c5de342ccc063f4ddc14 100644 (file)
@@ -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 {
index 38a8cd8347b9b7025c468cb0f4976837f376c8cb..dc49e40706a7158ce0ba25eb9a644e6d3b88b040 100644 (file)
@@ -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,
       },
index d7d2559750a6acd4a4f402ee167c954d25be5f66..272bf3eda9c52b0b0784bffddb3d218e52b24bef 100644 (file)
@@ -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))