From 6acad22d3a7bf04da25aa46009fe134b204e1018 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Fri, 14 Aug 2020 11:02:26 -0400 Subject: [PATCH] LPXXX Patron UI WIP Signed-off-by: Bill Erickson --- .../app/staff/circ/patron/patron.component.html | 9 +++- .../src/app/staff/share/holds/grid.component.html | 18 +++++-- .../src/app/staff/share/holds/grid.component.ts | 61 +++++++++++++++------- .../sql/Pg/upgrade/XXXX.data.angular-patron.sql | 24 +++++++++ 4 files changed, 88 insertions(+), 24 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.angular-patron.sql diff --git a/Open-ILS/src/eg2/src/app/staff/circ/patron/patron.component.html b/Open-ILS/src/eg2/src/app/staff/circ/patron/patron.component.html index b5bb77624c..3780ca4012 100644 --- a/Open-ILS/src/eg2/src/app/staff/circ/patron/patron.component.html +++ b/Open-ILS/src/eg2/src/app/staff/circ/patron/patron.component.html @@ -62,8 +62,13 @@
  • Holds -
    -
    +
  • diff --git a/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html b/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html index 898048babc..79b76bbc74 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html +++ b/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html @@ -19,7 +19,7 @@
    -
    +
    Pickup Library
    @@ -35,9 +35,11 @@ [multiSortable]="true" [persistKey]="persistKey" (onRowActivate)="showDetail($event)"> - - + + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts b/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts index ff2514919e..aba05cdaf8 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts @@ -1,4 +1,5 @@ import {Component, OnInit, Input, ViewChild} from '@angular/core'; +import {Location} from '@angular/common'; import {Observable, Observer, of} from 'rxjs'; import {IdlObject} from '@eg/core/idl.service'; import {NetService} from '@eg/core/net.service'; @@ -83,13 +84,20 @@ export class HoldsGridComponent implements OnInit { } } - _userId: number; - @Input() set userId(id: number) { - this._userId = id; + get recordId(): number { + return this._recordId; + } + + _patronId: number; + @Input() set patronId(id: number) { + this._patronId = id; if (this.initDone) { this.holdsGrid.reload(); } } + get patronId(): number { + return this._patronId; + } // Include holds canceled on or after the provided date. // If no value is passed, canceled holds are not displayed. @@ -100,6 +108,9 @@ export class HoldsGridComponent implements OnInit { this.holdsGrid.reload(); } } + get showCanceledSince(): Date { + return this._showCanceledSince; + } // Include holds fulfilled on or after hte provided date. // If no value is passed, fulfilled holds are not displayed. @@ -110,10 +121,14 @@ export class HoldsGridComponent implements OnInit { this.holdsGrid.reload(); } } + get showFulfilledSince(): Date { + return this._showFulfilledSince; + } cellTextGenerator: GridCellTextGenerator; constructor( + private ngLocation: Location, private net: NetService, private org: OrgService, private store: ServerStoreService, @@ -126,14 +141,15 @@ export class HoldsGridComponent implements OnInit { ngOnInit() { this.initDone = true; - this.pickupLib = this.org.get(this.initialPickupLib); - - if (this.preFetchSetting) { - this.store.getItem(this.preFetchSetting).then( - applied => this.enablePreFetch = Boolean(applied) - ); + if (this.initialPickupLib) { + this.pickupLib = this.org.get(this.initialPickupLib); + } + if (this.preFetchSetting) { + this.store.getItem(this.preFetchSetting).then( + applied => this.enablePreFetch = Boolean(applied) + ); } if (!this.defaultSort) { @@ -180,10 +196,10 @@ export class HoldsGridComponent implements OnInit { applyFilters(): any { const filters: any = { is_staff_request: true, - fulfillment_time: this._showFulfilledSince ? - this._showFulfilledSince.toISOString() : null, - cancel_time: this._showCanceledSince ? - this._showCanceledSince.toISOString() : null, + fulfillment_time: this.showFulfilledSince ? + this.showFulfilledSince.toISOString() : null, + cancel_time: this.showCanceledSince ? + this.showCanceledSince.toISOString() : null, }; if (this.pickupLib) { @@ -191,12 +207,12 @@ export class HoldsGridComponent implements OnInit { this.org.descendants(this.pickupLib, true); } - if (this._recordId) { - filters.record_id = this._recordId; + if (this.recordId) { + filters.record_id = this.recordId; } - if (this._userId) { - filters.usr_id = this._userId; + if (this.patronId) { + filters.usr_id = this.patronId; } return filters; @@ -205,7 +221,7 @@ export class HoldsGridComponent implements OnInit { fetchHolds(pager: Pager, sort: any[]): Observable { // We need at least one filter. - if (!this._recordId && !this.pickupLib && !this._userId) { + if (!this.recordId && !this.pickupLib && !this.patronId) { return of([]); } @@ -266,6 +282,15 @@ export class HoldsGridComponent implements OnInit { this.showDetail(rows[0]); } + showHoldsForTitle(rows: any[]) { + if (rows.length === 0) { return; } + + const url = this.ngLocation.prepareExternalUrl( + `/staff/catalog/record/${rows[0].record_id}/holds`); + + window.open(url, '_blank'); + } + showDetail(row: any) { if (row) { this.mode = 'detail'; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.angular-patron.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.angular-patron.sql new file mode 100644 index 0000000000..c7b9bad124 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.angular-patron.sql @@ -0,0 +1,24 @@ + +BEGIN; + +-- SELECT evergreen.upgrade_deps_block_check('TODO', :eg_version); + +/* +INSERT INTO config.workstation_setting_type (name, grp, datatype, label) +VALUES ( + 'eg.catalog.results.count', 'gui', 'integer', + oils_i18n_gettext( + 'eg.catalog.results.count', + 'Catalog Results Page Size', + 'cwst', 'label' + ) +); +*/ + +eg.circ.patron.holds.prefetch + +eg.grid.circ.patron.holds + +holds_for_patron print template + +COMMIT; -- 2.11.0