From 7ffb3e2a7c6f509f2bf2c92c285e9915e25de08e Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 26 Mar 2020 16:42:52 -0400 Subject: [PATCH] start work on provider details tab TODO: teach the record editor how to do a two-column layout TODO: add delete button Signed-off-by: Galen Charlton --- .../staff/acq/provider/acq-provider.component.html | 2 +- .../staff/acq/provider/acq-provider.component.ts | 5 +++ .../app/staff/acq/provider/acq-provider.module.ts | 2 + .../acq/provider/provider-details.component.html | 16 ++++++++ .../acq/provider/provider-details.component.ts | 48 ++++++++++++++++++++++ 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.html create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.ts diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html index e5a41537b9..5187113c94 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html @@ -35,7 +35,7 @@ - PROVIDER DETAILS TAB + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.ts index daecf55b94..1db460efa1 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.ts @@ -5,6 +5,7 @@ import {StaffCommonModule} from '@eg/staff/common.module'; import {IdlService, IdlObject} from '@eg/core/idl.service'; import {PcrudService} from '@eg/core/pcrud.service'; import {AcqProviderSummaryPaneComponent} from './summary-pane.component'; +import {ProviderDetailsComponent} from './provider-details.component'; import {ProviderRecordService} from './provider-record.service'; import {FmRecordEditorComponent} from '@eg/share/fm-editor/fm-editor.component'; import {StringComponent} from '@eg/share/string/string.component'; @@ -23,6 +24,7 @@ export class AcqProviderComponent implements OnInit, AfterViewInit { validTabTypes = ['details', 'addresses', 'contacts', 'attributes', 'holdings', 'edi_accounts', 'purchase_orders', 'invoices']; defaultTabType = 'details'; @ViewChild('acqSearchProviderSummary', { static: true }) providerSummaryPane: AcqProviderSummaryPaneComponent; + @ViewChild('providerDetails', { static: false }) providerDetails: ProviderDetailsComponent; @ViewChild('createDialog', { static: true }) createDialog: FmRecordEditorComponent; @ViewChild('createString', { static: false }) createString: StringComponent; @ViewChild('createErrString', { static: false }) createErrString: StringComponent; @@ -81,6 +83,9 @@ export class AcqProviderComponent implements OnInit, AfterViewInit { this.onDesireSummarize = ($event) => { // $event is a provider ID this.providerSummaryPane.update($event); + if (this.providerDetails) { + this.providerDetails.refresh(); + } this.id = $event; this.providerRecord.fetch(this.id); this.showSearchForm = false; diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts index aa52908712..368dc93005 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts @@ -5,6 +5,7 @@ import {AcqProviderComponent} from './acq-provider.component'; import {AcqProviderSearchFormComponent} from './acq-provider-search-form.component'; import {AcqProviderSummaryPaneComponent} from './summary-pane.component'; import {ProviderResultsComponent} from './provider-results.component'; +import {ProviderDetailsComponent} from './provider-details.component'; import {ProviderAddressesComponent} from './provider-addresses.component'; import {ProviderContactsComponent} from './provider-contacts.component'; import {ProviderHoldingsComponent} from './provider-holdings.component'; @@ -20,6 +21,7 @@ import {ProviderRecordService} from './provider-record.service'; AcqProviderSearchFormComponent, AcqProviderSummaryPaneComponent, ProviderResultsComponent, + ProviderDetailsComponent, ProviderAddressesComponent, ProviderContactsComponent, ProviderHoldingsComponent, diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.html b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.html new file mode 100644 index 0000000000..97266f7fd3 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.html @@ -0,0 +1,16 @@ + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.ts new file mode 100644 index 0000000000..07d3b000d2 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.ts @@ -0,0 +1,48 @@ +import {Component, OnInit, Input, ViewChild} from '@angular/core'; +import {empty, throwError, Observable, from} from 'rxjs'; +import {map} from 'rxjs/operators'; +import {Router, ActivatedRoute, ParamMap} from '@angular/router'; +import {IdlService, IdlObject} from '@eg/core/idl.service'; +import {NetService} from '@eg/core/net.service'; +import {AuthService} from '@eg/core/auth.service'; +import {ProviderRecord, ProviderRecordService} from './provider-record.service'; +import {FmRecordEditorComponent} from '@eg/share/fm-editor/fm-editor.component'; +import {StringComponent} from '@eg/share/string/string.component'; +import {ToastService} from '@eg/share/toast/toast.service'; + +@Component({ + selector: 'eg-provider-details', + templateUrl: 'provider-details.component.html', +}) +export class ProviderDetailsComponent implements OnInit { + + @ViewChild('successString', { static: true }) successString: StringComponent; + @ViewChild('updateFailedString', { static: false }) updateFailedString: StringComponent; + @ViewChild('deleteFailedString', { static: true }) deleteFailedString: StringComponent; + @ViewChild('deleteSuccessString', { static: true }) deleteSuccessString: StringComponent; + + provider: IdlObject; + + permissions: {[name: string]: boolean}; + + constructor( + private router: Router, + private route: ActivatedRoute, + private net: NetService, + private idl: IdlService, + private auth: AuthService, + private providerRecord: ProviderRecordService, + private toast: ToastService) { + } + + ngOnInit() { + this.refresh(); + } + + refresh() { + this.providerRecord.refreshCurrent().then(() => { + this.provider = this.providerRecord.current(); + }); + } + +} -- 2.11.0