LP#1929749: catch and report upload errors
authorGalen Charlton <gmc@equinoxOLI.org>
Thu, 13 Jan 2022 23:27:58 +0000 (18:27 -0500)
committerGalen Charlton <gmc@equinoxOLI.org>
Thu, 13 Jan 2022 23:27:58 +0000 (18:27 -0500)
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.component.html
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.component.ts

index 8a805eb..ebf7d2f 100644 (file)
   </div>
 
   <div class="row" [hidden]="!uploadComplete">
-    <div class="col-lg-3 offset-lg-3">
-      <h2><label i18n>Upload Complete!</label></h2>
-    </div>
-    </div>
-    <div class="row" [hidden]="!uploadComplete">
-      <div class="col-sm-1 offset-lg-3">
-        <label i18n>Go to:</label>
-    </div>
-    <div><a routerLink="/staff/cat/vandelay/queue/{{recordType}}/{{activeQueueId}}" target="_blank" i18n>Queue</a></div>
-    <div class="col-sm-1" [hidden]="!selectedSelectionList"><a routerLink="/staff/acq/picklist/{{activeSelectionListId}}" target="_blank">Selection List</a></div>
-    <div class="col-sm-2" [hidden]="!createPurchaseOrder"><a routerLink="/staff/acq/po/{{newPO}}" target="_blank">Purchase Order</a></div>
-    </div>
+    <ng-container *ngIf="uploadError">
+      <div class="col-lg-6 offset-lg-3">
+        <h2><label i18n>Upload Error!</label></h2>
+        <div class="row">
+          <div class="col alert-danger" i18n>Error {{uploadErrorCode}} ({{uploadErrorText}})</div>
+        </div>
+      </div>
+    </ng-container>
+    <ng-container *ngIf="!uploadError">
+      <div class="col-lg-6 offset-lg-3">
+        <h2><label i18n>Upload Complete!</label></h2>
+        <div class="row" [hidden]="!uploadComplete">
+          <div class="col-2">
+            <label i18n>Go to:</label>
+          </div>
+          <div class="col-2"><a routerLink="/staff/cat/vandelay/queue/{{recordType}}/{{activeQueueId}}" target="_blank" i18n>Queue</a></div>
+          <div class="col-2" [hidden]="!selectedSelectionList"><a routerLink="/staff/acq/picklist/{{activeSelectionListId}}" target="_blank">Selection List</a></div>
+          <div class="col-2" [hidden]="!createPurchaseOrder"><a routerLink="/staff/acq/po/{{newPO}}" target="_blank">Purchase Order</a></div>
+        </div>
+      </div>
+    </ng-container>
+  </div>
index 3b797b7..f862c83 100644 (file)
@@ -106,6 +106,9 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
 
     isUploading: boolean;
     uploadProcessing: boolean;
+    uploadError: boolean;
+    uploadErrorCode: string;
+    uploadErrorText: string;
     uploadComplete: boolean;
 
     // Generated by the server
@@ -508,6 +511,7 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
     processUpload():  Promise<any> {
 
         this.uploadProcessing = true;
+        this.uploadError = false;
 
         if (this.vlagent.importSelection) {
             return Promise.resolve();
@@ -549,7 +553,14 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
                 progress => {
                     const resp = this.evt.parse(progress);
                     console.log(progress);
-                    if (resp) { console.error(resp); return reject(); }
+                    if (resp) {
+                        this.uploadError = true;
+                        this.uploadErrorCode = resp.textcode;
+                        this.uploadErrorText = resp.payload;
+                        this.uploadProcessing = false;
+                        this.uploadComplete = true;
+                        return reject();
+                    }
                     if (progress.complete) {
                         this.uploadProcessing = false;
                         this.uploadComplete = true;