filter controls

This commit is contained in:
Jan Prochazka
2020-03-12 08:02:13 +01:00
parent 8da0c359ff
commit 8f6b211b1b
7 changed files with 563 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
import _ from 'lodash';
import { GridConfig, GridCache } from './GridConfig';
import { GridConfig, GridCache, GridConfigColumns } from './GridConfig';
import { ForeignKeyInfo, TableInfo, ColumnInfo } from '@dbgate/types';
import { filterName } from './filterName';
import { Select } from '@dbgate/sqltree';
@@ -54,7 +54,7 @@ export abstract class GridDisplay {
});
}
includeInColumnSet(field: keyof GridConfig, uniqueName: string, isIncluded: boolean) {
includeInColumnSet(field: keyof GridConfigColumns, uniqueName: string, isIncluded: boolean) {
if (isIncluded) {
this.setConfig({
...this.config,
@@ -248,13 +248,15 @@ export abstract class GridDisplay {
}
getDisplayColumns(table: TableInfo, parentPath: string[]) {
return table?.columns
?.map(col => this.getDisplayColumn(table, col, parentPath))
?.map(col => ({
...col,
isChecked: this.isColumnChecked(col),
hintColumnName: col.foreignKey ? `hint_${col.uniqueName}` : null,
}));
return (
table?.columns
?.map(col => this.getDisplayColumn(table, col, parentPath))
?.map(col => ({
...col,
isChecked: this.isColumnChecked(col),
hintColumnName: col.foreignKey ? `hint_${col.uniqueName}` : null,
})) || []
);
}
getColumns(columnFilter) {
@@ -272,4 +274,19 @@ export abstract class GridDisplay {
toggleExpandedColumn(uniqueName: string) {
this.includeInColumnSet('expandedColumns', uniqueName, !this.isExpandedColumn(uniqueName));
}
getFilter(uniqueName: string) {
return this.config.filters[uniqueName];
}
setFilter(uniqueName, value) {
this.setConfig({
...this.config,
filters: {
...this.config.filters,
[uniqueName]: value,
},
});
this.reload();
}
}