From: Bill Erickson Date: Tue, 8 May 2018 22:29:10 +0000 (-0400) Subject: LP#1775466 more grid X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a3f98c9d5677c82145aed1eb55b756b31f6baeb4;p=working%2FEvergreen.git LP#1775466 more grid Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.html b/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.html index e509ce1255..5b582dba45 100644 --- a/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.html +++ b/Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.html @@ -30,6 +30,8 @@ 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 af54b26edf..f75a5f2c96 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 @@ -5,11 +5,13 @@ import {Pager} from '@eg/share/util/pager'; export class EgGridDataSource { data: any[]; + sort: any[]; pager: Pager; allRowsRetrieved: boolean; - getRows: (pager: Pager) => Observable; + getRows: (pager: Pager, sort: any[]) => Observable; constructor() { + this.sort = []; this.reset(); } @@ -44,7 +46,7 @@ export class EgGridDataSource { if (!this.getRows) return; let idx = pager.offset; - this.getRows(pager).subscribe( + this.getRows(pager, this.sort).subscribe( row => this.data[idx++] = row, err => console.error(`grid getRows() error ${err}`), () => this.checkAllRetrieved(pager, idx) diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.html b/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.html index 622de577ac..14aeec66f5 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.html +++ b/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.html @@ -14,7 +14,9 @@ (dragleave)="onColumnDragLeave($event, col)" [ngClass]="{'dragover' : col.isDragTarget}" class="eg-grid-cell eg-grid-header-cell" [ngStyle]="{flex:col.flex}"> - {{col.label}} + + {{col.label}} + {{col.label}} diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.ts b/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.ts index aaadba3e8e..4234d46b31 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.ts +++ b/Open-ILS/src/eg2/src/app/share/grid/grid-header.component.ts @@ -1,5 +1,7 @@ -import {Component, Input, OnInit, HostListener} from '@angular/core'; +import {Component, Input, OnInit, Host} from '@angular/core'; import {EgGridService, EgGridColumn, EgGridColumnSet} from './grid.service'; +import {EgGridDataSource} from './grid-data-source'; +import {EgGridComponent} from './grid.component'; @Component({ selector: 'eg-grid-header', @@ -10,9 +12,13 @@ export class EgGridHeaderComponent implements OnInit { @Input() columnSet: EgGridColumnSet; @Input() selected: {[idx:number] : boolean}; + @Input() dataSource: EgGridDataSource; dragColumn: EgGridColumn; - constructor(private gridSvc: EgGridService) { } + constructor( + private gridSvc: EgGridService, + @Host() private grid: EgGridComponent + ) { } ngOnInit() { } @@ -32,5 +38,17 @@ export class EgGridHeaderComponent implements OnInit { this.columnSet.insertBefore(this.dragColumn, col); this.columnSet.columns.forEach(c => c.isDragTarget = false); } + + sortOneColumn(col: EgGridColumn) { + let dir = 'ASC'; + let sort = this.dataSource.sort; + + if (sort.length && sort[0].name == col.name && sort[0].dir == 'ASC') { + dir = 'DESC'; + } + + this.dataSource.sort = [{name: col.name, dir: dir}]; + this.grid.reload(); + } } 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 ad655cbd74..ac9ed9a917 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 @@ -2,7 +2,7 @@
- +
- + diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts index dce24dfde7..dc28098dac 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts @@ -41,11 +41,15 @@ export class BillingTypeComponent implements OnInit { ngOnInit() { - this.dataSource.getRows = (pager: Pager) => { + this.dataSource.getRows = (pager: Pager, sort: any[]) => { + let orderBy = {}; + if (sort.length) + orderBy = {cbt: sort[0].name + ' ' + sort[0].dir}; + return this.pcrud.retrieveAll('cbt', { offset: pager.offset, limit: pager.limit, - order_by: {cbt: 'name'} + order_by: orderBy }); }