+<eg-string #updateSuccess i18n-text text="Record Update Succeeded"></eg-string>
+
<div class="row mb-3">
<div class="col-lg-2">
<button class="btn btn-info label-with-material-icon"
</div>
<ngb-tabset #recordTabs [activeId]="recordTab" (tabChange)="onTabChange($event)">
- <ngb-tab title="Queued Record MARC" i18n-title id="marc">
- <ng-template ngbTabContent>
+ <ngb-tab title="Queued Record MARC" i18n-title id="marc">
+ <ng-template ngbTabContent>
<eg-marc-html [recordId]="recordId" [recordType]="'vandelay-'+queueType">
</eg-marc-html>
- </ng-template>
- </ngb-tab>
- <ngb-tab title="Record Matches" i18n-title id="matches">
- <ng-template ngbTabContent>
+ </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()"
+ [hideFullEditorLink]="true"
+ [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">
</eg-queued-record-matches>
- </ng-template>
- </ngb-tab>
- <ngb-tab title="Import Items" i18n-title id="items">
- <ng-template ngbTabContent>
+ </ng-template>
+ </ngb-tab>
+ <ngb-tab title="Import Items" i18n-title id="items">
+ <ng-template ngbTabContent>
<eg-queued-record-items [recordId]="recordId">
</eg-queued-record-items>
- </ng-template>
- </ngb-tab>
+ </ng-template>
+ </ngb-tab>
</ngb-tabset>
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';
+import {ToastService} from '@eg/share/toast/toast.service';
+import {StringComponent} from '@eg/share/string/string.component';
@Component({
templateUrl: 'queued-record.component.html'
queueType: string;
recordId: number;
recordTab: string;
+ queuedRecord: IdlObject;
+
+ @ViewChild('updateSuccess') updateSuccess: StringComponent;
constructor(
private router: Router,
- private route: ActivatedRoute) {
+ private route: ActivatedRoute,
+ private toast: ToastService,
+ 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();
+ }
});
}
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 => this.toast.success(this.updateSuccess.text),
+ error => {
+ console.error(error);
+ this.toast.danger(error);
+ }
+ );
+ }
}