From: Bill Erickson <berickxx@gmail.com>
Date: Thu, 17 Oct 2019 21:59:08 +0000 (-0400)
Subject: LP1830923 Vandelay queued record editing
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1623058e0b084e15998da9ea93021ecc8c7961d9;p=evergreen%2Fjoelewis.git

LP1830923 Vandelay queued record editing

This patch adds MARC record editing the the Angular
Vandelay interface using the Angular MARC editor
component, which as of the date of this patch offers
a flat-text mode.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
---

diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html
index d9e85347e0..ceb70a1704 100644
--- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html
@@ -16,6 +16,15 @@
       </eg-marc-html>
 		</ng-template>
 	</ngb-tab>
+	<ngb-tab title="Edit Record" i18n-title id="edit">
+		<ng-template ngbTabContent>
+      <ng-container *ngIf="queuedRecord">
+        <eg-marc-editor [inPlaceMode]="true" [recordXml]="queuedRecord.marc()" 
+          [recordSource]="queuedRecord.bib_source()"
+          (recordSaved)="handleMarcRecordSaved($event)"></eg-marc-editor>   
+      </ng-container>
+		</ng-template>
+	</ngb-tab>
 	<ngb-tab title="Record Matches" i18n-title id="matches">
 		<ng-template ngbTabContent>
       <eg-queued-record-matches [recordId]="recordId" [queueType]="queueType">
diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.ts
index 7bbf5a8d8e..f0705a719d 100644
--- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.ts
@@ -1,6 +1,8 @@
 import {Component, OnInit, ViewChild} from '@angular/core';
 import {Router, ActivatedRoute, ParamMap} from '@angular/router';
 import {NgbTabset, NgbTabChangeEvent} from '@ng-bootstrap/ng-bootstrap';
+import {PcrudService} from '@eg/core/pcrud.service';
+import {IdlObject} from '@eg/core/idl.service';
 
 @Component({
   templateUrl: 'queued-record.component.html'
@@ -11,16 +13,21 @@ export class QueuedRecordComponent {
     queueType: string;
     recordId: number;
     recordTab: string;
+    queuedRecord: IdlObject;
 
     constructor(
         private router: Router,
-        private route: ActivatedRoute) {
+        private route: ActivatedRoute,
+        private pcrud: PcrudService) {
 
         this.route.paramMap.subscribe((params: ParamMap) => {
             this.queueId = +params.get('id');
             this.recordId = +params.get('recordId');
             this.queueType = params.get('qtype');
             this.recordTab = params.get('recordTab');
+            if (this.recordTab === 'edit') {
+                this.loadRecord();
+            }
         });
     }
 
@@ -38,5 +45,21 @@ export class QueuedRecordComponent {
 
         this.router.navigate([url]);
     }
+
+    loadRecord() {
+        this.queuedRecord = null;
+        this.pcrud.retrieve('vqbr', this.recordId)
+        .subscribe(rec => this.queuedRecord = rec);
+    }
+
+    handleMarcRecordSaved(saveEvent: any) {
+        this.queuedRecord.marc(saveEvent.marcXml);
+        this.queuedRecord.bib_source(saveEvent.bibSource);
+        this.pcrud.update(this.queuedRecord).subscribe(
+            response => {
+                console.log('response = ', response);
+            }
+        );
+    }
 }
 
diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts
index 0f394285e3..5b01400a33 100644
--- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts
+++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts
@@ -25,6 +25,7 @@ import {MatchSetExpressionComponent} from './match-set-expression.component';
 import {MatchSetQualityComponent} from './match-set-quality.component';
 import {MatchSetNewPointComponent} from './match-set-new-point.component';
 import {RecentImportsComponent} from './recent-imports.component';
+import {MarcEditModule} from '@eg/staff/share/marc-edit/marc-edit.module';
 
 @NgModule({
   declarations: [
@@ -52,6 +53,7 @@ import {RecentImportsComponent} from './recent-imports.component';
     StaffCommonModule,
     FmRecordEditorModule,
     AdminPageModule,
+    MarcEditModule,
     CatalogCommonModule,
     VandelayRoutingModule,
     HttpClientModule,