eg-grid: fix disabling filter controls when data is being fetched
authorGalen Charlton <gmc@equinoxinitiative.org>
Mon, 2 Mar 2020 17:08:04 +0000 (12:08 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Mon, 2 Mar 2020 17:08:04 +0000 (12:08 -0500)
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/eg2/src/app/share/grid/grid-filter-control.component.html
Open-ILS/src/eg2/src/app/share/grid/grid.ts

index c6440cd..052de1c 100644 (file)
@@ -17,6 +17,7 @@
           </div>
         </div>
         <eg-combobox [asyncSupportsEmptyTermClick]="col.asyncSupportsEmptyTermClick" [idlClass]="col.idlFieldDef.class" (onChange)="applyLinkFilter($event, col)" 
+          [disabled]="col.filterInputDisabled || context.dataSource.requestingData"
           i18n-placeholder placeholder="Enter value to filter by"></eg-combobox>
       </div>
     </div>
@@ -36,7 +37,8 @@
             </div>
           </div>
         </div>
-        <select class="custom-select" [(ngModel)]="col.filterValue" (change)="applyBooleanFilter(col)">
+        <select class="custom-select" [(ngModel)]="col.filterValue" (change)="applyBooleanFilter(col)"
+            [disabled]="col.filterInputDisabled || context.dataSource.requestingData">
           <option value="" i18n>Any</option>
           <option value="t" i18n>True</option>
           <option value="f" i18n>False</option>
         <div [hidden]="col.filterOperator !== 'between'" class="form-inline form-group">
           <label for="eg-filter-end-date-select-{{col.name}}" style="width: 3em;" i18n>and</label>
           <eg-date-select [hidden]="col.filterOperator !== 'between'" (onChangeAsYmd)="applyDateFilter(datesel.currentAsYmd(), col, $event)"
+                          [disabled]="col.filterInputDisabled || context.dataSource.requestingData"
                           [required]="col.filterOperator == 'between'" #dateendsel></eg-date-select>
         </div>
       </div>
             </div>
           </div>
         </div>
-        <eg-org-select [applyOrgId]="col.filterValue" (onChange)="applyOrgFilter($event, col)" 
+        <eg-org-select [applyOrgId]="col.filterValue" (onChange)="applyOrgFilter($event, col)"
+          [disabled]="col.filterInputDisabled || context.dataSource.requestingData"
           i18n-placeholder placeholder="Enter library to filter by" #ousel></eg-org-select>
       </div>
     </div>
index 258153a..5d8a409 100644 (file)
@@ -1203,7 +1203,8 @@ export class GridDataSource {
             return this.getRows(pager, this.sort).subscribe(
                 row => {
                     this.data[idx++] = row;
-                    this.requestingData = false;
+                    // not updating this.requestingData, as having
+                    // retrieved one row doesn't mean we're done
                     this.retrievalError = false;
                 },
                 err => {