mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-08-24 01:06:17 +00:00
Fix: prevent loss of changes when switching between open docs (#10659)
This commit is contained in:
@@ -442,7 +442,11 @@ export class DocumentDetailComponent
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.documentForm.dirty) {
|
// Prevent mutating stale form values into the next document: only sync if it still matches the active document.
|
||||||
|
if (
|
||||||
|
this.documentForm.dirty &&
|
||||||
|
(this.document?.id === openDocument.id || !this.document)
|
||||||
|
) {
|
||||||
Object.assign(openDocument, this.documentForm.value)
|
Object.assign(openDocument, this.documentForm.value)
|
||||||
openDocument['owner'] =
|
openDocument['owner'] =
|
||||||
this.documentForm.get('permissions_form').value['owner']
|
this.documentForm.get('permissions_form').value['owner']
|
||||||
@@ -489,7 +493,11 @@ export class DocumentDetailComponent
|
|||||||
this.store.getValue().title !==
|
this.store.getValue().title !==
|
||||||
this.documentForm.get('title').value
|
this.documentForm.get('title').value
|
||||||
) {
|
) {
|
||||||
this.openDocumentService.setDirty(doc, true)
|
this.openDocumentService.setDirty(
|
||||||
|
doc,
|
||||||
|
true,
|
||||||
|
this.getChangedFields()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@@ -682,6 +690,11 @@ export class DocumentDetailComponent
|
|||||||
|
|
||||||
this.documentForm.patchValue(docFormValues, { emitEvent: false })
|
this.documentForm.patchValue(docFormValues, { emitEvent: false })
|
||||||
if (!this.userCanEdit) this.documentForm.disable()
|
if (!this.userCanEdit) this.documentForm.disable()
|
||||||
|
setTimeout(() => {
|
||||||
|
// check again after a tick in case form was dirty
|
||||||
|
if (!this.userCanEdit) this.documentForm.disable()
|
||||||
|
else this.documentForm.enable()
|
||||||
|
}, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
get customFieldFormFields(): FormArray {
|
get customFieldFormFields(): FormArray {
|
||||||
|
Reference in New Issue
Block a user