From: Bill Erickson Date: Mon, 16 Jul 2018 20:26:49 +0000 (-0400) Subject: LP#1779158 Import item views X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=6105ed870325b02598be816462ba0fd6d7569f86;p=working%2FEvergreen.git LP#1779158 Import item views Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue-items.component.html b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue-items.component.html new file mode 100644 index 0000000000..8bc896f5b6 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue-items.component.html @@ -0,0 +1,19 @@ +
+
+ +
+
+ + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue-items.component.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue-items.component.ts new file mode 100644 index 0000000000..d72a81bfa8 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue-items.component.ts @@ -0,0 +1,60 @@ +import {Component, OnInit, ViewChild} from '@angular/core'; +import {Observable} from 'rxjs/Observable'; +import 'rxjs/add/observable/of'; +import {map} from 'rxjs/operators/map'; +import {Router, ActivatedRoute, ParamMap} from '@angular/router'; +import {Pager} from '@eg/share/util/pager'; +import {IdlObject} from '@eg/core/idl.service'; +import {NetService} from '@eg/core/net.service'; +import {AuthService} from '@eg/core/auth.service'; +import {GridComponent} from '@eg/share/grid/grid.component'; +import {GridDataSource} from '@eg/share/grid/grid'; +import {VandelayService} from './vandelay.service'; + +@Component({ + templateUrl: 'queue-items.component.html' +}) +export class QueueItemsComponent { + + queueType: string; + queueId: number; + filterImportErrors: boolean; + limitToImportErrors: (checked: boolean) => void; + + gridSource: GridDataSource; + @ViewChild('itemsGrid') itemsGrid: GridComponent; + + constructor( + private router: Router, + private route: ActivatedRoute, + private net: NetService, + private auth: AuthService, + private vandelay: VandelayService) { + + this.route.paramMap.subscribe((params: ParamMap) => { + this.queueId = +params.get('id'); + this.queueType = params.get('qtype'); + }); + + this.gridSource = new GridDataSource(); + + // queue API does not support sorting + this.gridSource.getRows = (pager: Pager) => { + return this.net.request( + 'open-ils.vandelay', + 'open-ils.vandelay.import_item.queue.retrieve', + this.auth.token(), this.queueId, { + with_import_error: this.filterImportErrors, + offset: pager.offset, + limit: pager.limit + } + ); + }; + + this.limitToImportErrors = (checked: boolean) => { + this.filterImportErrors = checked; + this.itemsGrid.reload(); + } + } +} + diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html index 728b3ed559..bd991070ef 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html @@ -62,7 +62,10 @@
  • - {{row.import_error}} +
    + {{row.import_error}} +
    +
    + Items ({{row.error_items.length}}) +
    diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts index f6571f52c9..e8b3747979 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts @@ -163,6 +163,8 @@ export class QueueComponent implements OnInit, AfterViewInit { error_detail: rec.error_detail(), import_time: rec.import_time(), imported_as: rec.imported_as(), + import_items: rec.import_items(), + error_items: rec.import_items().filter(i => i.import_error()), matches: rec.matches() }; diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html index a9a0d20b92..d9e85347e0 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html @@ -22,4 +22,10 @@ + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/record-items.component.html b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/record-items.component.html new file mode 100644 index 0000000000..012a579a1b --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/record-items.component.html @@ -0,0 +1,6 @@ + + + diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/record-items.component.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/record-items.component.ts new file mode 100644 index 0000000000..37383a809e --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/record-items.component.ts @@ -0,0 +1,37 @@ +import {Component, Input, ViewChild} from '@angular/core'; +import {Pager} from '@eg/share/util/pager'; +import {IdlObject} from '@eg/core/idl.service'; +import {NetService} from '@eg/core/net.service'; +import {PcrudService} from '@eg/core/pcrud.service'; +import {AuthService} from '@eg/core/auth.service'; +import {GridComponent} from '@eg/share/grid/grid.component'; +import {GridDataSource} from '@eg/share/grid/grid'; +import {VandelayService} from './vandelay.service'; + +@Component({ + selector: 'eg-queued-record-items', + templateUrl: 'record-items.component.html' +}) +export class RecordItemsComponent { + + @Input() recordId: number; + + gridSource: GridDataSource; + @ViewChild('itemsGrid') itemsGrid: GridComponent; + + constructor( + private net: NetService, + private auth: AuthService, + private pcrud: PcrudService, + private vandelay: VandelayService) { + + this.gridSource = new GridDataSource(); + + // queue API does not support sorting + this.gridSource.getRows = (pager: Pager) => { + return this.pcrud.search('vii', + {record: this.recordId}, {order_by: {vii: ['id']}) + }; + } +} + diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/routing.module.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/routing.module.ts index f6ce368047..3378f86809 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/routing.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/routing.module.ts @@ -9,6 +9,7 @@ import {QueuedRecordComponent} from './queued-record.component'; import {DisplayAttrsComponent} from './display-attrs.component'; import {MergeProfilesComponent} from './merge-profiles.component'; import {HoldingsProfilesComponent} from './holdings-profiles.component'; +import {QueueItemsComponent} from './queue-items.component'; const routes: Routes = [{ path: '', @@ -36,6 +37,9 @@ const routes: Routes = [{ path: 'queue/:qtype/:id/record/:recordId/:recordTab', component: QueuedRecordComponent }, { + path: 'queue/:qtype/:id/items', + component: QueueItemsComponent + }, { path: 'display_attrs', component: DisplayAttrsComponent }, { diff --git a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts index a8265789ca..9f0e8db666 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts @@ -14,6 +14,8 @@ import {QueuedRecordMatchesComponent} from './queued-record-matches.component'; import {DisplayAttrsComponent} from './display-attrs.component'; import {MergeProfilesComponent} from './merge-profiles.component'; import {HoldingsProfilesComponent} from './holdings-profiles.component'; +import {QueueItemsComponent} from './queue-items.component'; +import {RecordItemsComponent} from './record-items.component'; @NgModule({ declarations: [ @@ -26,7 +28,9 @@ import {HoldingsProfilesComponent} from './holdings-profiles.component'; QueuedRecordMatchesComponent, DisplayAttrsComponent, MergeProfilesComponent, - HoldingsProfilesComponent + HoldingsProfilesComponent, + QueueItemsComponent, + RecordItemsComponent ], imports: [ StaffCommonModule,