better save eligibility testing
authorJason Etheridge <phasefx@gmail.com>
Sun, 14 May 2023 00:58:38 +0000 (20:58 -0400)
committerJason Etheridge <phasefx@gmail.com>
Sun, 14 May 2023 13:04:51 +0000 (09:04 -0400)
Signed-off-by: Jason Etheridge <phasefx@gmail.com>
Open-ILS/src/eg2/src/app/share/grid/grid-manage-filters-dialog.component.html
Open-ILS/src/eg2/src/app/share/grid/grid-manage-filters-dialog.component.ts

index 21b0fc8..adfb483 100644 (file)
@@ -20,6 +20,7 @@
                 type="text" pattern="[\s\S]*\S[\s\S]*"
                 placeholder="Name..." i18n-placeholder
                 required="false"
+                [disabled]="disableSaveNameTest()"
                 (ngModelChange)="saveFilterNameModelChanged.next($event)"
                 [ngModel]="saveFilterName"/>
                 <div *ngIf="nameCollision" class="alert alert-warning" i18n>
@@ -31,7 +32,7 @@
             <div class="col-lg-3">
             </div>
             <div class="col-lg-9">
-                <button type="button" class="btn btn-success" [disabled]="saveFilterName === ''"
+              <button type="button" class="btn btn-success" [disabled]="disableSaveButtonTest()"
                     (click)="saveFilters()" i18n>
                     Save Active Filters</button>
             </div>
index 2015a18..c614def 100644 (file)
@@ -85,6 +85,24 @@ export class GridManageFiltersDialogComponent extends DialogComponent implements
         close();
     }
 
+       disableSaveNameTest(): boolean {
+         const isEmpty = (obj: any): boolean => {
+        console.log('Name: isEmpty',obj);
+               return obj && Object.keys(obj).length === 0;
+         };
+
+         return isEmpty(this.gridContext?.dataSource?.filters);
+       }
+
+       disableSaveButtonTest(): boolean {
+         const isEmpty = (obj: any): boolean => {
+        console.log('Button: isEmpty',obj);
+               return obj && Object.keys(obj).length === 0;
+         };
+
+         return this.nameCollision || this.saveFilterName === '' || isEmpty(this.gridContext?.dataSource?.filters);
+       }
+
     refreshEntries() {
         this.filterSetEntries = [];
         this.store.getItem('eg.grid.filters.' + this.gridContext.persistKey).then( setting => {