From fcff45d309b3e27d9283c1400de79bec0d41bc12 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Wed, 18 Mar 2020 11:10:34 -0400 Subject: [PATCH] address and contact stubs Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- .../acq/provider/provider-addresses.component.html | 8 +++ .../acq/provider/provider-addresses.component.ts | 69 ++++++++++++++++++++++ .../acq/provider/provider-contacts.component.html | 18 ++++++ .../acq/provider/provider-contacts.component.ts | 69 ++++++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.html create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.ts create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.html create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.ts diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.html b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.html new file mode 100644 index 0000000000..a353d2a46b --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.html @@ -0,0 +1,8 @@ + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.ts new file mode 100644 index 0000000000..b48a0eb851 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.ts @@ -0,0 +1,69 @@ +import {Component, OnInit, Input, ViewChild} from '@angular/core'; +import {empty, throwError, Observable} from 'rxjs'; +import {map} from 'rxjs/operators'; +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, GridCellTextGenerator} from '@eg/share/grid/grid'; +// ??? import {AcqProviderStateService} from './acq-provider-search.service'; +import {AcqProviderSearchFormComponent} from './acq-provider-search-form.component'; + +@Component({ + selector: 'eg-provider-addresses', + templateUrl: 'provider-addresses.component.html', + providers: [AcqProviderStateService] +}) +export class ProviderResultsComponent implements OnInit { + + @Input() provider: any; + addresses: any[] = []; + + gridSource: GridDataSource; + @ViewChild('acqProviderAddressesGrid', { static: true }) providerAddressesGrid: GridComponent; + + cellTextGenerator: GridCellTextGenerator; + + constructor( + private router: Router, + private route: ActivatedRoute, + private net: NetService, + private auth: AuthService, + private providerState: AcqProviderStateService) { + } + + ngOnInit() { + this.gridSource = this.getDataSource() + this.cellTextGenerator = {}; + } + + getDataSource(): GridDataSource { + const gridSource = new GridDataSource(); + + gridSource.getRows = (pager: Pager, sort: any[]) => { + let addresses = this.provider.addresses() + + if (sort.length > 0) { + addresses = addresses.sort((a, b) => { + for (let i = 0; i < sort.length; i++) { + let lt = -1; + let sfield = sort[i].name; + if (sort[i].dir.substring(0,1).toLowerCase() === 'd') { + lt *= -1; + } + if (a[sfield]() < b[sfield]()) { return lt } + if (a[sfield]() > b[sfield]()) { return lt * -1 } + } + return 0; + }); + + } + + return Observable.from(addresses.slice(pager.offset, pager.offset + pager.limit - 1)); + }; + return gridSource; + } + +} diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.html b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.html new file mode 100644 index 0000000000..e1095049a0 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.html @@ -0,0 +1,18 @@ + + + {{contact.email()}} + + + + {{contact.phone()}} + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.ts new file mode 100644 index 0000000000..2b38456815 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.ts @@ -0,0 +1,69 @@ +import {Component, OnInit, Input, ViewChild} from '@angular/core'; +import {empty, throwError, Observable} from 'rxjs'; +import {map} from 'rxjs/operators'; +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, GridCellTextGenerator} from '@eg/share/grid/grid'; +// ??? import {AcqProviderStateService} from './acq-provider-search.service'; +import {AcqProviderSearchFormComponent} from './acq-provider-search-form.component'; + +@Component({ + selector: 'eg-provider-contacts', + templateUrl: 'provider-contacts.component.html', + providers: [AcqProviderStateService] +}) +export class ProviderResultsComponent implements OnInit { + + @Input() provider: any; + contacts: any[] = []; + + gridSource: GridDataSource; + @ViewChild('acqProviderContactsGrid', { static: true }) providerContactsGrid: GridComponent; + + cellTextGenerator: GridCellTextGenerator; + + constructor( + private router: Router, + private route: ActivatedRoute, + private net: NetService, + private auth: AuthService, + private providerState: AcqProviderStateService) { + } + + ngOnInit() { + this.gridSource = this.getDataSource() + this.cellTextGenerator = {}; + } + + getDataSource(): GridDataSource { + const gridSource = new GridDataSource(); + + gridSource.getRows = (pager: Pager, sort: any[]) => { + let contacts = this.provider.contacts() + + if (sort.length > 0) { + contacts = contacts.sort((a, b) => { + for (let i = 0; i < sort.length; i++) { + let lt = -1; + let sfield = sort[i].name; + if (sort[i].dir.substring(0,1).toLowerCase() === 'd') { + lt *= -1; + } + if (a[sfield]() < b[sfield]()) { return lt } + if (a[sfield]() > b[sfield]()) { return lt * -1 } + } + return 0; + }); + + } + + return Observable.from(contacts.slice(pager.offset, pager.offset + pager.limit - 1)); + }; + return gridSource; + } + +} -- 2.11.0