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