From 23b0bf2262399f35becdcc87229483116f8d2814 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 20 Mar 2019 16:06:27 -0400 Subject: [PATCH] lpxxx Angular holdings maintenance wip Signed-off-by: Bill Erickson --- .../staff/catalog/record/holdings.component.html | 26 +++++++++++++ .../app/staff/catalog/record/holdings.component.ts | 43 +++++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html index f3d1be8685..25938bc036 100644 --- a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html +++ b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html @@ -71,6 +71,32 @@ + + + + + + + + + + + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts index 86e05b6947..dda8c78c30 100644 --- a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts @@ -15,6 +15,7 @@ import {MarkDamagedDialogComponent } from '@eg/staff/share/holdings/mark-damaged-dialog.component'; import {MarkMissingDialogComponent } from '@eg/staff/share/holdings/mark-missing-dialog.component'; +import {AnonCacheService} from '@eg/share/util/anon-cache.service'; // The holdings grid models a single HoldingsTree, composed of HoldingsTreeNodes @@ -122,7 +123,8 @@ export class HoldingsMaintenanceComponent implements OnInit { private pcrud: PcrudService, private staffCat: StaffCatalogService, private store: ServerStoreService, - private localStore: StoreService + private localStore: StoreService, + private anonCache: AnonCacheService ) { // Set some sane defaults before settings are loaded. this.gridDataSource = new GridDataSource(); @@ -631,6 +633,43 @@ export class HoldingsMaintenanceComponent implements OnInit { this.localStore.setLocalItem('eg.cat.transfer_target_record', this.recordId); this.localStore.setLocalItem('eg.cat.transfer_target_lib', orgId); } -} + openAngJsWindow(path: string) { + const url = `/eg/staff/${path}`; + window.open(url, '_blank'); + } + + openItemHolds(rows: HoldingsEntry[]) { + if (rows.length > 0 && rows[0].copy) { + this.openAngJsWindow(`cat/item/${rows[0].copy.id()}/holds`); + } + } + openItemStatusList(rows: HoldingsEntry[]) { + const ids = this.selectedCopyIds(rows); + if (ids.length > 0) { + return this.openAngJsWindow(`cat/item/search/${ids.join(',')}`); + } + } + + openItemStatus(rows: HoldingsEntry[]) { + if (rows.length > 0 && rows[0].copy) { + return this.openAngJsWindow(`cat/item/${rows[0].copy.id()}`); + } + } + + openItemTriggeredEvents(rows: HoldingsEntry[]) { + if (rows.length > 0 && rows[0].copy) { + return this.openAngJsWindow( + `cat/item/${rows[0].copy.id()}/triggered_events`); + } + } + + openItemPrintLabels(rows: HoldingsEntry[]) { + const ids = this.selectedCopyIds(rows); + if (ids.length === 0) { return; } + + this.anonCache.setItem(null, 'print-labels-these-copies', {copies: ids}) + .then(key => this.openAngJsWindow(`cat/printlabels/${key}`)); + } +} -- 2.11.0