From 8a3f753a48b396b178938627ad2b77c549fe306b Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 22 Jun 2022 17:31:09 -0400 Subject: [PATCH] LP1840773 SCKO Angular Signed-off-by: Bill Erickson --- Open-ILS/src/eg2/src/app/scko/holds.component.html | 27 ++++++++++ Open-ILS/src/eg2/src/app/scko/holds.component.ts | 63 ++++++++++++++++++++++ Open-ILS/src/eg2/src/app/scko/items.component.ts | 16 +++--- Open-ILS/src/eg2/src/app/scko/routing.module.ts | 6 ++- Open-ILS/src/eg2/src/app/scko/scko.module.ts | 2 + .../src/eg2/src/app/scko/summary.component.html | 2 +- 6 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 Open-ILS/src/eg2/src/app/scko/holds.component.html create mode 100644 Open-ILS/src/eg2/src/app/scko/holds.component.ts diff --git a/Open-ILS/src/eg2/src/app/scko/holds.component.html b/Open-ILS/src/eg2/src/app/scko/holds.component.html new file mode 100644 index 0000000000..0834559589 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/scko/holds.component.html @@ -0,0 +1,27 @@ +
+ + + + + + + + + + + + + + + + + +
TitleAuthorStatus
{{hold.title}}{{hold.author}} + + Ready for Pickup + + + #{{hold.relative_queue_position}} in line with {{hold.potentials}} copie(s) + +
+
diff --git a/Open-ILS/src/eg2/src/app/scko/holds.component.ts b/Open-ILS/src/eg2/src/app/scko/holds.component.ts new file mode 100644 index 0000000000..bed7a26472 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/scko/holds.component.ts @@ -0,0 +1,63 @@ +import {Component, OnInit, ViewEncapsulation} from '@angular/core'; +import {Router, ActivatedRoute, NavigationEnd} from '@angular/router'; +import {tap} from 'rxjs/operators'; +import {AuthService} from '@eg/core/auth.service'; +import {PcrudService} from '@eg/core/pcrud.service'; +import {NetService} from '@eg/core/net.service'; +import {IdlObject} from '@eg/core/idl.service'; +import {SckoService} from './scko.service'; +import {ServerStoreService} from '@eg/core/server-store.service'; + +@Component({ + templateUrl: 'holds.component.html' +}) + +export class SckoHoldsComponent implements OnInit { + + holds: IdlObject[] = []; + + constructor( + private router: Router, + private route: ActivatedRoute, + private net: NetService, + private auth: AuthService, + private pcrud: PcrudService, + public scko: SckoService + ) {} + + ngOnInit() { + + if (!this.scko.patronSummary) { + this.router.navigate(['/scko']); + return; + } + + const orderBy = [ + {shelf_time: {nulls: 'last'}}, + {capture_time: {nulls: 'last'}}, + {request_time: {nulls: 'last'}} + ]; + + const filters = { + usr_id: this.scko.patronSummary.id, + fulfillment_time: null + }; + + let first = true; + this.net.request( + 'open-ils.circ', + 'open-ils.circ.hold.wide_hash.stream', + this.auth.token(), filters, orderBy, 1000, 0, {} + ).subscribe(holdData => { + + if (first) { // First response is the hold count. + first = false; + return; + } + + this.holds.push(holdData); + }); + } +} + + diff --git a/Open-ILS/src/eg2/src/app/scko/items.component.ts b/Open-ILS/src/eg2/src/app/scko/items.component.ts index 54a9186660..fd76733997 100644 --- a/Open-ILS/src/eg2/src/app/scko/items.component.ts +++ b/Open-ILS/src/eg2/src/app/scko/items.component.ts @@ -48,16 +48,16 @@ export class SckoItemsComponent implements OnInit { .then(data => { const ids = data.out.concat(data.overdue).concat(data.long_overdue); - return this.pcrud.search('circ', {id: ids}, { - flesh: CIRC_FLESH_DEPTH, - flesh_fields: CIRC_FLESH_FIELDS, - order_by : {circ : 'due_date'}, + return this.pcrud.search('circ', {id: ids}, { + flesh: CIRC_FLESH_DEPTH, + flesh_fields: CIRC_FLESH_FIELDS, + order_by : {circ : 'due_date'}, - select: {bre : ['id']} + select: {bre : ['id']} - }).pipe(tap(circ => { - this.circs.push(circ); - })).toPromise(); + }).pipe(tap(circ => { + this.circs.push(circ); + })).toPromise(); }); } diff --git a/Open-ILS/src/eg2/src/app/scko/routing.module.ts b/Open-ILS/src/eg2/src/app/scko/routing.module.ts index 02e4930e27..82378e2cb3 100644 --- a/Open-ILS/src/eg2/src/app/scko/routing.module.ts +++ b/Open-ILS/src/eg2/src/app/scko/routing.module.ts @@ -3,6 +3,7 @@ import {RouterModule, Routes} from '@angular/router'; import {SckoComponent} from './scko.component'; import {SckoCheckoutComponent} from './checkout.component'; import {SckoItemsComponent} from './items.component'; +import {SckoHoldsComponent} from './holds.component'; const routes: Routes = [{ path: '', @@ -13,7 +14,10 @@ const routes: Routes = [{ }, { path: 'items', component: SckoItemsComponent - }] + }, { + path: 'holds', + component: SckoHoldsComponent + }] }]; @NgModule({ diff --git a/Open-ILS/src/eg2/src/app/scko/scko.module.ts b/Open-ILS/src/eg2/src/app/scko/scko.module.ts index b3823c4790..6b4ef7f9a8 100644 --- a/Open-ILS/src/eg2/src/app/scko/scko.module.ts +++ b/Open-ILS/src/eg2/src/app/scko/scko.module.ts @@ -12,6 +12,7 @@ import {SckoBannerComponent} from './banner.component'; import {SckoSummaryComponent} from './summary.component'; import {SckoCheckoutComponent} from './checkout.component'; import {SckoItemsComponent} from './items.component'; +import {SckoHoldsComponent} from './holds.component'; @NgModule({ declarations: [ @@ -20,6 +21,7 @@ import {SckoItemsComponent} from './items.component'; SckoSummaryComponent, SckoCheckoutComponent, SckoItemsComponent, + SckoHoldsComponent ], imports: [ EgCommonModule, diff --git a/Open-ILS/src/eg2/src/app/scko/summary.component.html b/Open-ILS/src/eg2/src/app/scko/summary.component.html index 20d22b09f2..cdcb24a5b2 100644 --- a/Open-ILS/src/eg2/src/app/scko/summary.component.html +++ b/Open-ILS/src/eg2/src/app/scko/summary.component.html @@ -64,7 +64,7 @@ total holds. -- 2.11.0