LP1821382 Angular grid optoin to disable paging
authorBill Erickson <berickxx@gmail.com>
Mon, 18 Mar 2019 21:46:34 +0000 (17:46 -0400)
committerDan Wells <dbw2@calvin.edu>
Wed, 29 May 2019 19:30:49 +0000 (15:30 -0400)
Hides the paging controls in the toolbar and puts the grid into "fetch
all" mode.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/eg2/src/app/share/grid/grid-toolbar.component.html
Open-ILS/src/eg2/src/app/share/grid/grid.component.ts
Open-ILS/src/eg2/src/app/share/grid/grid.ts

index af223fe..68f7fad 100644 (file)
@@ -56,6 +56,8 @@
     </div>
   </div>
 
+  <ng-container *ngIf="!gridContext.disablePaging">
+
   <button [disabled]="gridContext.pager.isFirstPage()" type="button"
     class="btn btn-outline-dark mr-1" (click)="gridContext.pager.toFirst()">
     <span title="First Page" i18n-title
     <span title="Next Page" i18n-title
         class="material-icons mat-icon-in-button">keyboard_arrow_right</span>
   </button>
-
-  <!--
-  Hiding jump-to-last since there's no analog in the angularjs grid and
-  it has limited value since the size of the data set is often unknown.
-  <button [disabled]="!gridContext.pager.resultCount || gridContext.pager.isLastPage()"
-    type="button" class="btn btn-outline-dark mr-1" (click)="gridContext.pager.toLast()">
-    <span title="First Page" i18n-title
-        class="material-icons mat-icon-in-button">last_page</span>
-  </button>
-  -->
-
   <div ngbDropdown class="mr-1" placement="bottom-right">
     <button ngbDropdownToggle class="btn btn-outline-dark text-button">
       <span title="Select Row Count" i18n-title i18n>
@@ -96,6 +87,9 @@
       </a>
     </div>
   </div>
+  
+  </ng-container><!-- if disablePaging-->
+
 
   <button type="button"
     class="btn btn-outline-dark mr-1"
index 25b8d0d..e1f988f 100644 (file)
@@ -96,6 +96,8 @@ export class GridComponent implements OnInit, AfterViewInit, OnDestroy {
     // field on the "aout" class.
     @Input() showLinkSelectors: boolean;
 
+    @Input() disablePaging: boolean;
+
     context: GridContext;
 
     // These events are emitted from our grid-body component.
@@ -132,6 +134,7 @@ export class GridComponent implements OnInit, AfterViewInit, OnDestroy {
         this.context.disableMultiSelect = this.disableMultiSelect === true;
         this.context.rowFlairIsEnabled = this.rowFlairIsEnabled  === true;
         this.context.rowFlairCallback = this.rowFlairCallback;
+        this.context.disablePaging = this.disablePaging === true;
         if (this.showFields) {
             this.context.defaultVisibleFields = this.showFields.split(',');
         }
index 8017938..64f3321 100644 (file)
@@ -442,6 +442,7 @@ export class GridContext {
     defaultHiddenFields: string[];
     overflowCells: boolean;
     showLinkSelectors: boolean;
+    disablePaging: boolean;
 
     // Allow calling code to know when the select-all-rows-in-page
     // action has occurred.
@@ -464,7 +465,6 @@ export class GridContext {
         this.store = store;
         this.format = format;
         this.pager = new Pager();
-        this.pager.limit = 10;
         this.rowSelector = new GridRowSelector();
         this.toolbarButtons = [];
         this.toolbarCheckboxes = [];
@@ -478,6 +478,9 @@ export class GridContext {
         this.columnSet.isMultiSortable = this.isMultiSortable === true;
         this.columnSet.defaultHiddenFields = this.defaultHiddenFields;
         this.columnSet.defaultVisibleFields = this.defaultVisibleFields;
+        if (!this.pager.limit) {
+            this.pager.limit = this.disablePaging ? MAX_ALL_ROW_COUNT : 10;
+        }
         this.generateColumns();
     }