dbgate-datalib 6.6.5 → 6.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,6 +34,8 @@ export interface GridConfig extends GridConfigColumns {
34
34
  formFilterColumns: string[];
35
35
  multiColumnFilter?: string;
36
36
  searchInColumns?: string;
37
+ disabledFilterColumns: string[];
38
+ disabledMultiColumnFilter?: boolean;
37
39
  }
38
40
  export interface GridCache {
39
41
  refreshTime: number;
package/lib/GridConfig.js CHANGED
@@ -12,6 +12,7 @@ function createGridConfig() {
12
12
  focusedColumns: null,
13
13
  grouping: {},
14
14
  formFilterColumns: [],
15
+ disabledFilterColumns: [],
15
16
  };
16
17
  }
17
18
  exports.createGridConfig = createGridConfig;
@@ -98,6 +98,10 @@ export declare abstract class GridDisplay {
98
98
  showFilter(uniqueName: any): void;
99
99
  removeFilter(uniqueName: any): void;
100
100
  setFilters(dct: any): void;
101
+ toggleFilterEnabled(uniqueName: any): void;
102
+ isFilterDisabled(uniqueName: string): boolean;
103
+ toggleMultiColumnFilterEnabled(): void;
104
+ isMultiColumnFilterDisabled(): boolean;
101
105
  setSort(uniqueName: any, order: any): void;
102
106
  addToSort(uniqueName: any, order: any): void;
103
107
  clearSort(): void;
@@ -143,6 +143,8 @@ class GridDisplay {
143
143
  const column = displayedColumnInfo[uniqueName];
144
144
  if (!column)
145
145
  continue;
146
+ if (this.isFilterDisabled(uniqueName))
147
+ continue;
146
148
  try {
147
149
  const condition = (0, dbgate_filterparser_1.parseFilter)(filter, (_b = (_a = this.driver) === null || _a === void 0 ? void 0 : _a.getFilterBehaviour(column.dataType, dbgate_tools_2.standardFilterBehaviours)) !== null && _b !== void 0 ? _b : (0, dbgate_tools_2.detectSqlFilterBehaviour)(column.dataType));
148
150
  if (condition) {
@@ -163,7 +165,7 @@ class GridDisplay {
163
165
  continue;
164
166
  }
165
167
  }
166
- if (this.baseTableOrView && this.config.multiColumnFilter) {
168
+ if (this.baseTableOrView && this.config.multiColumnFilter && !this.isMultiColumnFilterDisabled()) {
167
169
  const orCondition = {
168
170
  conditionType: 'or',
169
171
  conditions: [],
@@ -298,11 +300,11 @@ class GridDisplay {
298
300
  return this.config.filters[uniqueName];
299
301
  }
300
302
  setFilter(uniqueName, value) {
301
- this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { filters: Object.assign(Object.assign({}, cfg.filters), { [uniqueName]: value }), formViewRecordNumber: 0 })));
303
+ this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { filters: Object.assign(Object.assign({}, cfg.filters), { [uniqueName]: value }), formViewRecordNumber: 0, disabledFilterColumns: cfg.disabledFilterColumns.filter(x => x != uniqueName) })));
302
304
  this.reload();
303
305
  }
304
306
  setMutliColumnFilter(value) {
305
- this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { multiColumnFilter: value, formViewRecordNumber: 0 })));
307
+ this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { multiColumnFilter: value, formViewRecordNumber: 0, disabledMultiColumnFilter: false })));
306
308
  this.reload();
307
309
  }
308
310
  showFilter(uniqueName) {
@@ -313,13 +315,32 @@ class GridDisplay {
313
315
  });
314
316
  }
315
317
  removeFilter(uniqueName) {
316
- this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { filters: lodash_1.default.omit(cfg.filters, [uniqueName]), formFilterColumns: (cfg.formFilterColumns || []).filter(x => x != uniqueName) })));
318
+ this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { filters: lodash_1.default.omit(cfg.filters, [uniqueName]), formFilterColumns: (cfg.formFilterColumns || []).filter(x => x != uniqueName), disabledFilterColumns: (cfg.disabledFilterColumns).filter(x => x != uniqueName) })));
317
319
  this.reload();
318
320
  }
319
321
  setFilters(dct) {
320
322
  this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { filters: Object.assign(Object.assign({}, cfg.filters), dct) })));
321
323
  this.reload();
322
324
  }
325
+ toggleFilterEnabled(uniqueName) {
326
+ if (this.isFilterDisabled(uniqueName)) {
327
+ this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { disabledFilterColumns: cfg.disabledFilterColumns.filter(x => x != uniqueName) })));
328
+ }
329
+ else {
330
+ this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { disabledFilterColumns: [...cfg.disabledFilterColumns, uniqueName] })));
331
+ }
332
+ this.reload();
333
+ }
334
+ isFilterDisabled(uniqueName) {
335
+ return this.config.disabledFilterColumns.includes(uniqueName);
336
+ }
337
+ toggleMultiColumnFilterEnabled() {
338
+ this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { disabledMultiColumnFilter: !cfg.disabledMultiColumnFilter })));
339
+ this.reload();
340
+ }
341
+ isMultiColumnFilterDisabled() {
342
+ return this.config.disabledMultiColumnFilter;
343
+ }
323
344
  setSort(uniqueName, order) {
324
345
  this.setConfig(cfg => (Object.assign(Object.assign({}, cfg), { sort: [{ uniqueName, order }] })));
325
346
  this.reload();
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "6.6.5",
2
+ "version": "6.6.6",
3
3
  "name": "dbgate-datalib",
4
4
  "main": "lib/index.js",
5
5
  "typings": "lib/index.d.ts",
@@ -15,14 +15,14 @@
15
15
  ],
16
16
  "dependencies": {
17
17
  "date-fns": "^4.1.0",
18
- "dbgate-filterparser": "^6.6.5",
19
- "dbgate-sqltree": "^6.6.5",
20
- "dbgate-tools": "^6.6.5",
18
+ "dbgate-filterparser": "^6.6.6",
19
+ "dbgate-sqltree": "^6.6.6",
20
+ "dbgate-tools": "^6.6.6",
21
21
  "uuid": "^3.4.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^13.7.0",
25
- "dbgate-types": "^6.6.5",
25
+ "dbgate-types": "^6.6.6",
26
26
  "jest": "^28.1.3",
27
27
  "ts-jest": "^28.0.7",
28
28
  "typescript": "^4.4.3"