From: Bill Erickson Date: Tue, 8 May 2018 18:50:15 +0000 (-0400) Subject: LP#1775466 more grid X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2b0bb7583a8836127f9a1fa1eb82730220c42e56;p=working%2FEvergreen.git LP#1775466 more grid Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid-column-config.component.html b/Open-ILS/src/eg2/src/app/share/grid/grid-column-config.component.html index 7ce0cf04d2..3af756c9b9 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid-column-config.component.html +++ b/Open-ILS/src/eg2/src/app/share/grid/grid-column-config.component.html @@ -10,21 +10,16 @@ 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 8e41b2bb0b..a6f6bd86a0 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 @@ -26,6 +26,12 @@ border-color: #b8daff; } +.eg-grid-header-cell a.sortable { + cursor: pointer; + color: #007bff; + text-decoration:underline; +} + .eg-grid-cell { flex: 1; /* applied per column */ padding: 6px; @@ -44,7 +50,7 @@ flex: none; } -.eg-grid-column-config-dialog.visible { +.eg-grid-column-config-dialog .visible { color: #000; background-color: rgb(201, 221, 225); border-bottom: 1px solid #888; diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts b/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts index 865ca900ea..35495d277c 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts +++ b/Open-ILS/src/eg2/src/app/share/grid/grid.component.ts @@ -18,6 +18,7 @@ export class EgGridComponent implements OnInit { @Input() dataSource: EgGridDataSource; @Input() idlClass: string; + @Input() isSortable: boolean; @Input() isMultiSortable: boolean; @Input() persistKey: string; @@ -37,6 +38,7 @@ export class EgGridComponent implements OnInit { ngOnInit() { this.columnSet = new EgGridColumnSet(this.idlClass); + this.columnSet.isSortable = this.isSortable; this.columnSet.isMultiSortable = this.isMultiSortable; this.gridSvc.generateColumns(this.columnSet); this.dataSource.requestPage(this.pager); diff --git a/Open-ILS/src/eg2/src/app/share/grid/grid.service.ts b/Open-ILS/src/eg2/src/app/share/grid/grid.service.ts index 110ed2c4d0..6891907d4d 100644 --- a/Open-ILS/src/eg2/src/app/share/grid/grid.service.ts +++ b/Open-ILS/src/eg2/src/app/share/grid/grid.service.ts @@ -82,6 +82,7 @@ export class EgGridColumn { cellTemplate: TemplateRef; isPkey: boolean; isDragTarget: boolean; + isSortable: boolean; isMultiSortable: boolean; } @@ -90,6 +91,7 @@ export class EgGridColumnSet { columns: EgGridColumn[]; idlClass: string; pkeyColumn: EgGridColumn; + isSortable: boolean; isMultiSortable: boolean; constructor(idlClass?: string) { @@ -105,12 +107,20 @@ export class EgGridColumnSet { col.visible = !col.hidden; - // If a column set is multisortable, all columns are multisortable - // by default. TODO: add isNotMultiSortable ? + this.applyColumnSortability(col); + + this.columns.push(col); + } + + applyColumnSortability(col: EgGridColumn) { + // column sortability defaults to the sortability of the column set. + if (col.isSortable === undefined && this.isSortable) + col.isSortable = true; + if (col.isMultiSortable === undefined && this.isMultiSortable) col.isMultiSortable = true; - this.columns.push(col); + if (col.isMultiSortable) col.isSortable = true; } displayColumns(): EgGridColumn[] { @@ -118,15 +128,15 @@ export class EgGridColumnSet { } insertBefore(source: EgGridColumn, target: EgGridColumn) { - let targetIdx = 0; - let sourceIdx = 0; + let targetIdx = -1; + let sourceIdx = -1; this.columns.forEach((col, idx) => { if (col.name == target.name) targetIdx = idx; }); this.columns.forEach((col, idx) => { if (col.name == source.name) sourceIdx = idx; }); - if (sourceIdx) + if (sourceIdx >= 0) this.columns.splice(sourceIdx, 1); this.columns.splice(targetIdx, 0, source); @@ -169,7 +179,6 @@ export class EgGridColumnSet { this.columns.splice(targetIdx, 0, col); } - } export class EgGridToolbarButton { diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.html b/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.html index 538bbc75dd..94b39f5c74 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.html +++ b/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.html @@ -1,7 +1,7 @@ - +