From c5ae3377bdb025271f2f31df91c9c7d6511070e3 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 24 Mar 2021 22:16:51 -0700 Subject: [PATCH] Basic error handling --- .../upload-file-widget.component.scss | 5 ----- .../split-merge/split-merge.component.html | 9 +++++++-- .../split-merge/split-merge.component.ts | 9 ++++++++- src-ui/src/app/services/split-merge.service.ts | 14 +++++++++++--- src-ui/src/theme.scss | 7 ++++++- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss b/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss index c13a7bd4..b7e0451e 100644 --- a/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss +++ b/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.scss @@ -4,11 +4,6 @@ form { position: relative; } -.alert-heading { - font-size: 80%; - font-weight: bold; -} - .alerts-hidden { .btn { line-height: 1; diff --git a/src-ui/src/app/components/split-merge/split-merge.component.html b/src-ui/src/app/components/split-merge/split-merge.component.html index e9938fe8..9040acce 100644 --- a/src-ui/src/app/components/split-merge/split-merge.component.html +++ b/src-ui/src/app/components/split-merge/split-merge.component.html @@ -121,7 +121,12 @@
- + +
An error occurred during operation
+

Please check document settings and parts.

+

Message: {{error}}

+
+
-
+
Preview
Loading... diff --git a/src-ui/src/app/components/split-merge/split-merge.component.ts b/src-ui/src/app/components/split-merge/split-merge.component.ts index cc0a59ca..268b0bd9 100644 --- a/src-ui/src/app/components/split-merge/split-merge.component.ts +++ b/src-ui/src/app/components/split-merge/split-merge.component.ts @@ -31,6 +31,8 @@ export class SplitMergeComponent implements OnInit, OnDestroy { private previewSub: Subscription + public error: string + constructor( public splitMergeService: SplitMergeService, private documentService: DocumentService, @@ -47,6 +49,7 @@ export class SplitMergeComponent implements OnInit, OnDestroy { this.save(true) } else { this.previewUrls = [] + this.error = undefined } }) this.previewDebounce$.next() @@ -103,14 +106,18 @@ export class SplitMergeComponent implements OnInit, OnDestroy { this.previewUrls = [] this.splitMergeService.executeSplitMerge(preview, this.delete_source_documents, this.metadata_setting).subscribe( result => { - console.log('API split_merge result:', result) this.loading = false + this.error = undefined if (preview) { this.previewUrls = result.map(r => this.splitMergeService.getPreviewUrl(r)) } else { this.splitMergeService.clear() this.router.navigate([""]) } + }, + error => { + this.error = error + this.loading = false } ) } diff --git a/src-ui/src/app/services/split-merge.service.ts b/src-ui/src/app/services/split-merge.service.ts index 705af848..4b20b041 100644 --- a/src-ui/src/app/services/split-merge.service.ts +++ b/src-ui/src/app/services/split-merge.service.ts @@ -1,6 +1,7 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { Observable } from 'rxjs'; +import { Observable, throwError } from 'rxjs'; +import { catchError } from 'rxjs/operators'; import { environment } from 'src/environments/environment'; import { PaperlessDocument, PaperlessDocumentPart, PaperlessDocumentSeparator } from '../data/paperless-document'; import { SplitMergeMetadata, SplitMergeRequest } from '../data/split-merge-request'; @@ -79,7 +80,14 @@ export class SplitMergeService { metadata: metadata, split_merge_plan: split_merge_plan } - return this.http.post(`${environment.apiBaseUrl}split_merge/`, request) + return this.http.post(`${environment.apiBaseUrl}split_merge/`, request).pipe( + catchError(this.handleError) + ) + } + + handleError(error: HttpErrorResponse) { + console.log('API split_merge result error:', error) + return throwError(error.message) } getPreviewUrl(previewKey: string) { diff --git a/src-ui/src/theme.scss b/src-ui/src/theme.scss index df2aea00..4d360baf 100644 --- a/src-ui/src/theme.scss +++ b/src-ui/src/theme.scss @@ -4,4 +4,9 @@ $primaryFaded: #d1ddd2; $theme-colors: ( "primary": $primary -); \ No newline at end of file +); + +.alert-heading { + font-size: 80%; + font-weight: bold; +}