column manager search box, hide all, show all

This commit is contained in:
Jan Prochazka
2020-03-07 18:13:44 +01:00
parent 49a0a16c25
commit d64ae4b688
7 changed files with 67 additions and 23 deletions

View File

@@ -1,4 +1,3 @@
export default interface GridConfig {
hiddenColumns: string[];
export interface GridConfig {
hiddenColumns: string[];
}

View File

@@ -1,5 +1,5 @@
import _ from 'lodash';
import GridConfig from './GridConfig';
import { GridConfig } from './GridConfig';
import { ForeignKeyInfo } from '@dbgate/types';
export interface DisplayColumn {
@@ -14,7 +14,7 @@ export interface DisplayColumn {
isChecked: boolean;
}
export default abstract class GridDisplay {
export abstract class GridDisplay {
constructor(public config: GridConfig, protected setConfig: (config: GridConfig) => void) {}
abstract getPageQuery(offset: number, count: number): string;
columns: DisplayColumn[];
@@ -32,6 +32,20 @@ export default abstract class GridDisplay {
}
}
showAllColumns() {
this.setConfig({
...this.config,
hiddenColumns: [],
});
}
hideAllColumns() {
this.setConfig({
...this.config,
hiddenColumns: this.columns.map(x => x.uniqueName),
});
}
get hiddenColumnIndexes() {
return (this.config.hiddenColumns || []).map(x => _.findIndex(this.columns, y => y.uniqueName == x));
}

View File

@@ -1,9 +1,9 @@
import GridDisplay from './GridDisplay';
import { GridDisplay } from './GridDisplay';
import { Select, treeToSql, dumpSqlSelect } from '@dbgate/sqltree';
import { TableInfo, EngineDriver } from '@dbgate/types';
import GridConfig from './GridConfig';
import { GridConfig } from './GridConfig';
export default class TableGridDisplay extends GridDisplay {
export class TableGridDisplay extends GridDisplay {
constructor(
public table: TableInfo,
public driver: EngineDriver,

View File

@@ -0,0 +1,5 @@
export function filterName(filter: string, name: string) {
if (!filter) return true;
if (!name) return false;
return name.toUpperCase().includes(filter.toUpperCase());
}

View File

@@ -1,2 +1,3 @@
export { default as GridDisplay, DisplayColumn } from "./GridDisplay";
export { default as TableGridDisplay } from "./TableGridDisplay";
export * from "./GridDisplay";
export * from "./TableGridDisplay";
export * from "./filterName";