From a63319e0f8ba61f6e33d2a47d1de6f8a36e65881 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 26 Dec 2018 11:45:50 -0500 Subject: [PATCH] LP1806087 Grouped results jump to detail on single rec Signed-off-by: Bill Erickson --- Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts | 4 ++++ Open-ILS/src/eg2/src/app/staff/catalog/result/record.component.ts | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts b/Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts index 6b00e7912b..686423f98f 100644 --- a/Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts +++ b/Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts @@ -24,6 +24,7 @@ export const HOLDINGS_XPATH = export class BibRecordSummary { id: number; // == record.id() for convenience metabibId: number; // If present, this is a metabib summary + metabibRecords: number[]; // all constituent bib records orgId: number; orgDepth: number; record: IdlObject; @@ -42,6 +43,7 @@ export class BibRecordSummary { this.display = {}; this.attributes = {}; this.bibCallNumber = null; + this.metabibRecords = []; } ingest() { @@ -223,6 +225,8 @@ export class BibRecordService { this.getBibSummary(metabib.master_record(), orgId, orgDepth) .subscribe(summary => { summary.metabibId = metabib.id(); + summary.metabibRecords = + metabib.source_maps().map(map => Number(map.source())) let promise; diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/result/record.component.ts b/Open-ILS/src/eg2/src/app/staff/catalog/result/record.component.ts index 5e6d25b382..737de6f9d3 100644 --- a/Open-ILS/src/eg2/src/app/staff/catalog/result/record.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/catalog/result/record.component.ts @@ -79,14 +79,16 @@ export class ResultRecordComponent implements OnInit, OnDestroy { navigatToRecord(summary: BibRecordSummary) { const params = this.catUrl.toUrlParams(this.searchContext); - if (summary.metabibId) { + // Jump to metarecord constituent records page when a + // MR has more than 1 constituents. + if (summary.metabibId && summary.metabibRecords.length > 1) { this.searchContext.termSearch.fromMetarecord = summary.metabibId; this.staffCat.search(); return; } this.router.navigate( - ['/staff/catalog/record/' + summary.id], {queryParams: params}); + ['/staff/catalog/record/' + summary.id], {queryParams: params}); } toggleBasketEntry() { -- 2.11.0