LP#1929749: improvements to provider selector
authorGalen Charlton <gmc@equinoxOLI.org>
Thu, 13 Jan 2022 15:30:57 +0000 (10:30 -0500)
committerGalen Charlton <gmc@equinoxOLI.org>
Thu, 13 Jan 2022 15:32:17 +0000 (10:32 -0500)
This patch converts the provider combobox to use
the automatic PCRUD data source so that the OU label
shows up by default. This also means that all providers
visible to the user are available, not just the ones
owned by the WS OU or its ancestors.

This patch also tweaks a couple of the selectors so
that they get properly updated when a template is selected.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.component.html
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.component.ts
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.service.ts

index 8b26861..c597f6f 100644 (file)
   
     <div class="col-lg-3">
       <eg-combobox #providerSelector
-        id="provider-select"
-        [entries]="formatEntries('providersList')"
-        (onChange)="selectEntry($event, 'providersList')"
+        domId="provider-select"
+        [selectedId]="selectedProvider" (onChange)="selectedProvider = $event.id"
+        style="border-left-width: 0px"
         [required]="true"
-        [startId]="selectedProvider">
+        [asyncSupportsEmptyTermClick]="true"
+        idlIncludeLibraryInLabel="owner"
+        [idlQueryAnd]="{active: 't'}" idlClass="acqpro">
       </eg-combobox>
     </div>
 
index 47b990c..0f6ba13 100644 (file)
@@ -123,9 +123,9 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
         private formTemplateSelector: ComboboxComponent;
     @ViewChild('bibSourceSelector', { static: true })
         private bibSourceSelector: ComboboxComponent;
-    @ViewChild('providerSelector', {static: true})
+    @ViewChild('providerSelector', {static: false})
         private providerSelector: ComboboxComponent;
-    @ViewChild('fiscalYearSelector', { static: true })
+    @ViewChild('fiscalYearSelector', { static: false })
         private fiscalYearSelector: ComboboxComponent;
     @ViewChild('selectionListSelector', { static: true })
         private selectionListSelector: ComboboxComponent;
@@ -210,7 +210,6 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
             this.vlagent.getMatchSets('bib'),
             this.vlagent.getBibSources(),
             this.vlagent.getFiscalYears(),
-            this.vlagent.getProvidersList(),
             this.vlagent.getSelectionLists(),
             this.vlagent.getItemImportDefs(),
            this.org.settings(['vandelay.default_match_set']).then(
@@ -260,12 +259,6 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
                         return {id: s.id(), label: s.source()};
                     });
 
-            case 'providersList':
-                return (this.vlagent.providersList || []).map(
-                    p => {
-                        return {id: p.id(), label: p.code()};
-                    });
-
             case 'fiscalYears':
                 return (this.vlagent.fiscalYears || []).map(
                     fy => {
@@ -308,10 +301,6 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
                 this.recordType = id;
                 break;
 
-            case 'providersList':
-                this.selectedProvider = id;
-                break;
-
             case 'bibSources':
                 this.selectedBibSource = id;
                 break;
@@ -605,7 +594,7 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
 
         this.bibSourceSelector.applyEntryId(this.selectedBibSource);
         this.matchSetSelector.applyEntryId(this.selectedMatchSet);
-        this.providerSelector.applyEntryId(this.selectedProvider);
+        this.providerSelector.selectedId = this.selectedProvider;
         this.fiscalYearSelector.applyEntryId(this.selectedFiscalYear);
         this.mergeProfileSelector.applyEntryId(this.selectedMergeProfile);
         this.fallThruMergeProfileSelector.applyEntryId(this.selectedFallThruMergeProfile);
index 7b1f739..15e78f7 100644 (file)
@@ -79,20 +79,6 @@ export class PicklistUploadService {
         });
     }
 
-    getProvidersList(): Promise<IdlObject[]> {
-        if (this.providersList) {
-            return Promise.resolve(this.providersList);
-        }
-
-        const owners = this.org.ancestors(this.auth.user().ws_ou(), true);
-        return this.pcrud.search('acqpro',
-            {owner: owners}, {order_by: {acqpro: ['code']}}, {atomic: true})
-        .toPromise().then(providers => {
-            this.providersList = providers;
-            return providers;
-        });
-    }
-
     getSelectionLists(): Promise<IdlObject[]> {
         if (this.selectionLists) {
             return Promise.resolve(this.selectionLists);