From b44b17a4558c11ba95f876904a475f62bdafaf8e Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 30 Apr 2018 22:58:13 -0400 Subject: [PATCH] LP#1626157 grid experiment Signed-off-by: Bill Erickson --- .../src/app/share/grid/grid-body.component.html | 2 +- .../eg2/src/app/share/grid/grid-body.component.ts | 5 ----- .../src/eg2/src/app/share/grid/grid-data-source.ts | 22 +++++++++++++++++++--- .../src/eg2/src/app/share/grid/grid.component.css | 3 +++ .../src/eg2/src/app/share/grid/grid.component.html | 4 +--- Open-ILS/src/eg2/src/app/share/grid/grid.module.ts | 4 +++- Open-ILS/src/eg2/src/app/share/util/pager.ts | 7 +++++++ .../src/app/staff/sandbox/sandbox.component.html | 2 +- .../eg2/src/app/staff/sandbox/sandbox.component.ts | 13 +++++-------- 9 files changed, 40 insertions(+), 22 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.html b/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.html index e7387216fb..670cc6b8b4 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.html +++ b/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.html @@ -1,7 +1,7 @@
+ *ngFor="let row of dataSource.getPage(pager) | async; let idx = index">
diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.ts b/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.ts index a85f9e0425..16a873825a 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.ts +++ b/Open-ILS/src/eg2/src/app/share/grid/grid-body.component.ts @@ -17,10 +17,5 @@ export class EgGridBodyComponent implements OnInit { ngOnInit() { } - - currentPage(): any[] { - if (!this.dataSource.data) return []; - return this.dataSource.data.slice(this.pager.offset, this.pager.limit); - } } diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-data-source.ts b/Open-ILS/src/eg2/src/app/share/grid/grid-data-source.ts index 5120678a89..a498100cb0 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid-data-source.ts +++ b/Open-ILS/src/eg2/src/app/share/grid/grid-data-source.ts @@ -1,15 +1,31 @@ -//import {Observable} from 'rxjs/Rx'; +import {Observable} from 'rxjs/Rx'; +import {Pager} from '@eg/share/util/pager'; export class EgGridDataSource { - data: any[] = []; - sortSpec: any[] = []; + data: any[]; + sortSpec: any[]; // Do we know how many items we have in total? indeterminate: boolean + constructor() { + this.data = []; + this.sortSpec = []; + } + applySort() { } + + getPage(pager: Pager): Observable> { + + if (!this.data) return Observable.from([]); + + if (this.data[pager.offset] !== undefined) { + return Observable.of( + this.data.slice(pager.offset, pager.limit + pager.offset)); + } + } } diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid.component.css b/Open-ILS/src/eg2/src/app/share/grid/grid.component.css index 0d9a331886..d20ce1050b 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid.component.css +++ b/Open-ILS/src/eg2/src/app/share/grid/grid.component.css @@ -29,4 +29,7 @@ .eg-grid-body-cell { } +.eg-grid-toolbar { + display: flex; +} diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid.component.html b/Open-ILS/src/eg2/src/app/share/grid/grid.component.html index 0b4a533776..813e6bc419 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid.component.html +++ b/Open-ILS/src/eg2/src/app/share/grid/grid.component.html @@ -1,8 +1,6 @@
- + ; + + constructor() { + this.onChange$ = new EventEmitter(); + } isFirstPage(): boolean { return this.offset == 0; @@ -29,6 +35,7 @@ export class Pager { setPage(page: number): void { this.offset = (this.limit * (page - 1)); + this.onChange$.emit(this.offset); } pageCount(): number { diff --git a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html index 87b075c266..f2ae275e4e 100644 --- a/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html +++ b/Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html @@ -62,7 +62,7 @@ - +