From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 17 May 2022 17:36:43 +0000 (-0700) Subject: Manually dirty check title on doc change X-Git-Tag: v1.8.0-beta.rc1~101^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F979%2Fhead;p=thirdparty%2Fpaperless-ngx.git Manually dirty check title on doc change --- diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index 3d4289ad85..f3515c974c 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -172,6 +172,7 @@ export class DocumentDetailComponent this.route.paramMap .pipe( + takeUntil(this.unsubscribeNotifier), switchMap((paramMap) => { const documentId = +paramMap.get('id') this.docChangeNotifier.next(documentId) @@ -206,9 +207,20 @@ export class DocumentDetailComponent takeUntil(this.docChangeNotifier), takeUntil(this.unsubscribeNotifier) ) - .subscribe((titleValue) => { - this.title = titleValue - this.documentForm.patchValue({ title: titleValue }) + .subscribe({ + next: (titleValue) => { + this.title = titleValue + this.documentForm.patchValue({ title: titleValue }) + }, + complete: () => { + // doc changed so we manually check dirty in case title was changed + if ( + this.store.getValue().title !== + this.documentForm.get('title').value + ) { + this.openDocumentService.setDirty(doc.id, true) + } + }, }) this.ogDate = new Date(normalizeDateStr(doc.created.toString())) @@ -238,7 +250,6 @@ export class DocumentDetailComponent return this.isDirty$.pipe(map((dirty) => ({ doc, dirty }))) }) ) - .pipe(takeUntil(this.unsubscribeNotifier)) .subscribe({ next: ({ doc, dirty }) => { this.openDocumentService.setDirty(doc.id, dirty)