From b8659c4aa5a4ad2e504841f316c730324b0502bd Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 27 Jul 2020 14:21:09 -0400 Subject: [PATCH] LP1889113 Staff catalog record holds sticky org select Teaches the record holds grid to use a persistkey for making the pickup lib selector sticky. Additionaly, teach the holds retrieval code to wait until the org select has settled on a value before collecting any data. Also adds the new workstation setting type 'eg.orgselect.cat.catalog.wide_holds' Signed-off-by: Bill Erickson Signed-off-by: Terran McCanna Signed-off-by: Jane Sandberg --- .../app/staff/share/holds/grid.component.html | 3 ++- .../app/staff/share/holds/grid.component.ts | 18 +++++++++++++----- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 9 +++++++++ .../XXXX.data.holds-for-bib-org-select.sql | 17 +++++++++++++++++ 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.holds-for-bib-org-select.sql 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..7a9aceb4ab 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 @@ -24,7 +24,8 @@
Pickup Library
- + 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..01b44bf653 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 @@ -53,6 +53,7 @@ export class HoldsGridComponent implements OnInit { initDone = false; holdsCount: number; pickupLib: IdlObject; + plCompLoaded = false; gridDataSource: GridDataSource; detailHold: any; editHolds: number[]; @@ -129,11 +130,9 @@ export class HoldsGridComponent implements OnInit { this.pickupLib = this.org.get(this.initialPickupLib); if (this.preFetchSetting) { - - this.store.getItem(this.preFetchSetting).then( - applied => this.enablePreFetch = Boolean(applied) - ); - + this.store.getItem(this.preFetchSetting).then( + applied => this.enablePreFetch = Boolean(applied) + ); } if (!this.defaultSort) { @@ -141,6 +140,15 @@ export class HoldsGridComponent implements OnInit { } this.gridDataSource.getRows = (pager: Pager, sort: any[]) => { + + if (!this.hidePickupLibFilter && !this.plCompLoaded) { + // When the pickup lib selector is active, avoid any + // data fetches until it has settled on a default value. + // Once the final value is applied, its onchange will + // fire and we'll be back here with plCompLoaded=true. + return of([]); + } + sort = sort.length > 0 ? sort : this.defaultSort; return this.fetchHolds(pager, sort); }; diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index 18086b3704..19398d4328 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -20439,4 +20439,13 @@ VALUES ( ) ); +INSERT INTO config.workstation_setting_type (name, grp, datatype, label) +VALUES ( + 'eg.orgselect.cat.catalog.wide_holds', 'gui', 'integer', + oils_i18n_gettext( + 'eg.orgselect.cat.catalog.wide_holds', + 'Default org unit for catalog holds org unit selector', + 'cwst', 'label' + ) +); diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.holds-for-bib-org-select.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.holds-for-bib-org-select.sql new file mode 100644 index 0000000000..ba516b5904 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.holds-for-bib-org-select.sql @@ -0,0 +1,17 @@ +BEGIN; + +-- SELECT evergreen.upgrade_deps_block_check('TODO', :eg_version); + +INSERT INTO config.workstation_setting_type (name, grp, datatype, label) +VALUES ( + 'eg.orgselect.cat.catalog.wide_holds', 'gui', 'integer', + oils_i18n_gettext( + 'eg.orgselect.cat.catalog.wide_holds', + 'Default org unit for catalog holds org unit selector', + 'cwst', 'label' + ) +); + +COMMIT; + + -- 2.43.2