From c69fcd5eff13a9b245ca54bd30d03da03598de25 Mon Sep 17 00:00:00 2001 From: Quentin Laffont Date: Thu, 3 Nov 2022 08:35:49 +0100 Subject: [PATCH 01/41] feat(connections): able to save parent Id --- packages/api/src/controllers/connections.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 63b3c872c..86e8a9828 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -62,6 +62,7 @@ function getPortalCollections() { displayName: process.env[`LABEL_${id}`], isReadOnly: process.env[`READONLY_${id}`], databases: process.env[`DBCONFIG_${id}`] ? safeJsonParse(process.env[`DBCONFIG_${id}`]) : null, + parentId: process.env[`PARENT_${id}`] || undefined, // SSH tunnel useSshTunnel: process.env[`USE_SSH_${id}`], From 8ed73195c559e8b4d7cc3b65e8dcc2109fcd8209 Mon Sep 17 00:00:00 2001 From: Quentin Laffont Date: Thu, 3 Nov 2022 09:13:54 +0100 Subject: [PATCH 02/41] chore(app): add node version --- .node-version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .node-version diff --git a/.node-version b/.node-version new file mode 100644 index 000000000..d9f880069 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +16.14.2 From 9b60b7a0032af72d2c971618920792948c302fa0 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 3 Nov 2022 09:18:41 +0100 Subject: [PATCH 03/41] fix perspective error --- packages/web/src/perspectives/PerspectiveCell.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/perspectives/PerspectiveCell.svelte b/packages/web/src/perspectives/PerspectiveCell.svelte index b95168b74..712f2c942 100644 --- a/packages/web/src/perspectives/PerspectiveCell.svelte +++ b/packages/web/src/perspectives/PerspectiveCell.svelte @@ -23,7 +23,7 @@ {:else} (no image) {/if} - {:else if !value.$oid && (_.isArray(value) || _.isPlainObject(value))} + {:else if !value?.$oid && (_.isArray(value) || _.isPlainObject(value))} {:else} From 4da0b25f44654938a7d7d074da281f1f0cabf1ff Mon Sep 17 00:00:00 2001 From: Gernot Pansy Date: Thu, 3 Nov 2022 11:01:24 +0100 Subject: [PATCH 04/41] Fix connection to mongodb via database url if a ssh tunnel is used * Replaces the the port with the tunnel port in the url --- .../dbgate-plugin-mongo/src/backend/driver.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/plugins/dbgate-plugin-mongo/src/backend/driver.js b/plugins/dbgate-plugin-mongo/src/backend/driver.js index 432593d4b..516375b88 100644 --- a/plugins/dbgate-plugin-mongo/src/backend/driver.js +++ b/plugins/dbgate-plugin-mongo/src/backend/driver.js @@ -48,16 +48,17 @@ const driver = { ...driverBase, analyserClass: Analyser, async connect({ server, port, user, password, database, useDatabaseUrl, databaseUrl, ssl }) { - // let mongoUrl = databaseUrl; - // if (!useDatabaseUrl) { - // mongoUrl = user ? `mongodb://${user}:${password}@${server}:${port}` : `mongodb://${server}:${port}`; - // if (database) mongoUrl += '/' + database; - // } - const mongoUrl = useDatabaseUrl - ? databaseUrl - : user + let mongoUrl; + if (useDatabaseUrl) { + // change port to ssh tunnel port + const url = new URL(databaseUrl); + url.port = port; + mongoUrl = url.href; + } else { + mongoUrl = user ? `mongodb://${user}:${password}@${server}:${port}` : `mongodb://${server}:${port}`; + } const options = { useUnifiedTopology: true, From ec3bfb4fae19c28a5ec8ccd61d0f715e7055e9ba Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 3 Nov 2022 16:38:49 +0100 Subject: [PATCH 05/41] Screen postcss fix --- packages/web/src/Screen.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/Screen.svelte b/packages/web/src/Screen.svelte index 7db86775b..1ca9ed537 100644 --- a/packages/web/src/Screen.svelte +++ b/packages/web/src/Screen.svelte @@ -29,7 +29,7 @@ $: currentThemeType = $currentThemeDefinition?.themeType == 'dark' ? 'theme-type-dark' : 'theme-type-light'; - $: themeStyle = ``; + $: themeStyle = `${$currentThemeDefinition?.themeCss}`; const isElectron = !!getElectron(); From f713a4b1837e86a6e13f8cf0ce2f70d4bba0d5be Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 3 Nov 2022 16:40:54 +0100 Subject: [PATCH 06/41] import type refactor --- packages/datalib/src/ChangeSet.ts | 2 +- packages/datalib/src/CollectionGridDisplay.ts | 2 +- packages/datalib/src/FormViewDisplay.ts | 2 +- packages/datalib/src/FreeTableGridDisplay.ts | 2 +- packages/datalib/src/FreeTableModel.ts | 2 +- packages/datalib/src/GridConfig.ts | 3 --- packages/datalib/src/GridDisplay.ts | 2 +- packages/datalib/src/JslGridDisplay.ts | 1 - packages/datalib/src/PerspectiveCache.ts | 1 - packages/datalib/src/PerspectiveConfig.ts | 2 +- packages/datalib/src/PerspectiveDataProvider.ts | 2 +- packages/datalib/src/PerspectiveTreeNode.ts | 2 +- packages/datalib/src/TableFormViewDisplay.ts | 2 +- packages/datalib/src/TableGridDisplay.ts | 2 +- packages/datalib/src/ViewGridDisplay.ts | 2 +- packages/datalib/src/deleteCascade.ts | 2 +- packages/datalib/src/processPerspectiveDefaultColunns.ts | 2 +- packages/datalib/src/tests/chinookDbInfo.ts | 2 +- packages/filterparser/src/datetimeParser.ts | 2 +- packages/filterparser/src/parseFilter.ts | 1 - packages/sqltree/src/dumpSqlCommand.ts | 2 +- packages/sqltree/src/dumpSqlCondition.ts | 2 +- packages/sqltree/src/dumpSqlExpression.ts | 2 +- packages/sqltree/src/dumpSqlSource.ts | 2 +- packages/sqltree/src/evaluateCondition.ts | 4 ---- packages/sqltree/src/types.ts | 2 +- packages/sqltree/src/utility.ts | 2 +- packages/tools/src/SqlDumper.ts | 2 +- packages/tools/src/SqlGenerator.ts | 2 +- packages/tools/src/computeDiffRows.ts | 2 +- packages/tools/src/createBulkInsertStreamBase.ts | 1 - packages/tools/src/diffTools.ts | 2 +- packages/tools/src/nameTools.ts | 2 +- packages/tools/src/packageTools.ts | 2 +- packages/tools/src/preloadedRowsTools.ts | 2 +- packages/tools/src/schemaEditorTools.ts | 2 +- packages/tools/src/structureTools.ts | 2 +- packages/tools/src/tableTransforms.ts | 2 +- packages/web/src/appobj/AppFileAppObject.svelte | 8 +++++--- packages/web/src/charts/chartDataLoader.ts | 4 ++-- packages/web/src/commands/invalidateCommands.ts | 2 +- packages/web/src/designer/DesignerComponentCreator.ts | 4 +--- packages/web/src/designer/DesignerQueryDumper.ts | 1 - packages/web/src/designer/designerTools.ts | 7 ++++--- packages/web/src/designer/types.ts | 4 ++-- packages/web/src/perspectives/PerspectiveDesigner.svelte | 2 +- packages/web/src/plugins/fileformats.ts | 2 +- packages/web/src/settings/ThemeSkeleton.svelte | 2 +- packages/web/src/stores.ts | 2 +- packages/web/src/utility/appTools.ts | 2 +- packages/web/src/utility/createQuickExportMenu.ts | 2 +- packages/web/src/utility/dictionaryDescriptionTools.ts | 2 +- packages/web/src/utility/metadataLoaders.ts | 2 -- 53 files changed, 54 insertions(+), 67 deletions(-) diff --git a/packages/datalib/src/ChangeSet.ts b/packages/datalib/src/ChangeSet.ts index ebf95b38d..2e38d62b7 100644 --- a/packages/datalib/src/ChangeSet.ts +++ b/packages/datalib/src/ChangeSet.ts @@ -9,7 +9,7 @@ import { AllowIdentityInsert, Expression, } from 'dbgate-sqltree'; -import { NamedObjectInfo, DatabaseInfo } from 'dbgate-types'; +import type { NamedObjectInfo, DatabaseInfo } from 'dbgate-types'; export interface ChangeSetItem { pureName: string; diff --git a/packages/datalib/src/CollectionGridDisplay.ts b/packages/datalib/src/CollectionGridDisplay.ts index a70c20968..6af931bb5 100644 --- a/packages/datalib/src/CollectionGridDisplay.ts +++ b/packages/datalib/src/CollectionGridDisplay.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc, DisplayColumn } from './GridDisplay'; -import { EngineDriver, ViewInfo, ColumnInfo, CollectionInfo } from 'dbgate-types'; +import type { EngineDriver, ViewInfo, ColumnInfo, CollectionInfo } from 'dbgate-types'; import { GridConfig, GridCache } from './GridConfig'; function getObjectKeys(obj) { diff --git a/packages/datalib/src/FormViewDisplay.ts b/packages/datalib/src/FormViewDisplay.ts index 20a372a10..4bba3c55c 100644 --- a/packages/datalib/src/FormViewDisplay.ts +++ b/packages/datalib/src/FormViewDisplay.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc } from './GridConfig'; -import { TableInfo, EngineDriver, DatabaseInfo, SqlDialect } from 'dbgate-types'; +import type { TableInfo, EngineDriver, DatabaseInfo, SqlDialect } from 'dbgate-types'; import { getFilterValueExpression } from 'dbgate-filterparser'; import { ChangeCacheFunc, ChangeConfigFunc, DisplayColumn } from './GridDisplay'; diff --git a/packages/datalib/src/FreeTableGridDisplay.ts b/packages/datalib/src/FreeTableGridDisplay.ts index f636fcf82..607abf4e9 100644 --- a/packages/datalib/src/FreeTableGridDisplay.ts +++ b/packages/datalib/src/FreeTableGridDisplay.ts @@ -1,5 +1,5 @@ import _ from 'lodash'; -import { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types'; +import type { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types'; import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay'; import { GridConfig, GridCache } from './GridConfig'; import { FreeTableModel } from './FreeTableModel'; diff --git a/packages/datalib/src/FreeTableModel.ts b/packages/datalib/src/FreeTableModel.ts index e5cce2f76..616e0c8e2 100644 --- a/packages/datalib/src/FreeTableModel.ts +++ b/packages/datalib/src/FreeTableModel.ts @@ -1,4 +1,4 @@ -import { TableInfo } from 'dbgate-types'; +import type { TableInfo } from 'dbgate-types'; export interface FreeTableModel { structure: TableInfo; diff --git a/packages/datalib/src/GridConfig.ts b/packages/datalib/src/GridConfig.ts index d38a468cf..c6c7fd5eb 100644 --- a/packages/datalib/src/GridConfig.ts +++ b/packages/datalib/src/GridConfig.ts @@ -1,6 +1,3 @@ -import { DisplayColumn } from './GridDisplay'; -import { TableInfo } from 'dbgate-types'; - export interface GridConfigColumns { hiddenColumns: string[]; expandedColumns: string[]; diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts index b04f1783c..7ac527d68 100644 --- a/packages/datalib/src/GridDisplay.ts +++ b/packages/datalib/src/GridDisplay.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc, createGridConfig } from './GridConfig'; -import { +import type { ForeignKeyInfo, TableInfo, ColumnInfo, diff --git a/packages/datalib/src/JslGridDisplay.ts b/packages/datalib/src/JslGridDisplay.ts index 323f01751..698520b93 100644 --- a/packages/datalib/src/JslGridDisplay.ts +++ b/packages/datalib/src/JslGridDisplay.ts @@ -1,6 +1,5 @@ import _ from 'lodash'; import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay'; -import { QueryResultColumn } from 'dbgate-types'; import { GridConfig, GridCache } from './GridConfig'; import { analyseCollectionDisplayColumns } from './CollectionGridDisplay'; diff --git a/packages/datalib/src/PerspectiveCache.ts b/packages/datalib/src/PerspectiveCache.ts index e706b8ae4..00ef68cd9 100644 --- a/packages/datalib/src/PerspectiveCache.ts +++ b/packages/datalib/src/PerspectiveCache.ts @@ -1,4 +1,3 @@ -import { RangeDefinition } from 'dbgate-types'; import { PerspectiveDataLoadProps } from './PerspectiveDataProvider'; import _pick from 'lodash/pick'; import _zip from 'lodash/zip'; diff --git a/packages/datalib/src/PerspectiveConfig.ts b/packages/datalib/src/PerspectiveConfig.ts index d7af928f6..fd80d83bc 100644 --- a/packages/datalib/src/PerspectiveConfig.ts +++ b/packages/datalib/src/PerspectiveConfig.ts @@ -1,4 +1,4 @@ -import { DatabaseInfo, ForeignKeyInfo, NamedObjectInfo, TableInfo } from 'dbgate-types'; +import type { DatabaseInfo, ForeignKeyInfo, NamedObjectInfo, TableInfo } from 'dbgate-types'; import uuidv1 from 'uuid/v1'; // export interface PerspectiveConfigColumns { diff --git a/packages/datalib/src/PerspectiveDataProvider.ts b/packages/datalib/src/PerspectiveDataProvider.ts index 5c471c55e..130f12d69 100644 --- a/packages/datalib/src/PerspectiveDataProvider.ts +++ b/packages/datalib/src/PerspectiveDataProvider.ts @@ -1,6 +1,6 @@ import debug from 'debug'; import { Condition } from 'dbgate-sqltree'; -import { RangeDefinition } from 'dbgate-types'; +import type { RangeDefinition } from 'dbgate-types'; import { PerspectiveBindingGroup, PerspectiveCache } from './PerspectiveCache'; import { PerspectiveDataLoader } from './PerspectiveDataLoader'; import { PerspectiveDataPatternDict } from './PerspectiveDataPattern'; diff --git a/packages/datalib/src/PerspectiveTreeNode.ts b/packages/datalib/src/PerspectiveTreeNode.ts index 4518c149f..7774d73d3 100644 --- a/packages/datalib/src/PerspectiveTreeNode.ts +++ b/packages/datalib/src/PerspectiveTreeNode.ts @@ -1,4 +1,4 @@ -import { +import type { CollectionInfo, ColumnInfo, DatabaseInfo, diff --git a/packages/datalib/src/TableFormViewDisplay.ts b/packages/datalib/src/TableFormViewDisplay.ts index ca1cfd3b7..9502b85b0 100644 --- a/packages/datalib/src/TableFormViewDisplay.ts +++ b/packages/datalib/src/TableFormViewDisplay.ts @@ -1,7 +1,7 @@ import { FormViewDisplay } from './FormViewDisplay'; import _ from 'lodash'; import { ChangeCacheFunc, DisplayColumn, ChangeConfigFunc } from './GridDisplay'; -import { EngineDriver, NamedObjectInfo, DatabaseInfo } from 'dbgate-types'; +import type { EngineDriver, NamedObjectInfo, DatabaseInfo } from 'dbgate-types'; import { GridConfig, GridCache } from './GridConfig'; import { mergeConditions, Condition, OrderByExpression } from 'dbgate-sqltree'; import { TableGridDisplay } from './TableGridDisplay'; diff --git a/packages/datalib/src/TableGridDisplay.ts b/packages/datalib/src/TableGridDisplay.ts index 9252c5ab2..9896380e0 100644 --- a/packages/datalib/src/TableGridDisplay.ts +++ b/packages/datalib/src/TableGridDisplay.ts @@ -1,7 +1,7 @@ import _ from 'lodash'; import { filterName, isTableColumnUnique } from 'dbgate-tools'; import { GridDisplay, ChangeCacheFunc, DisplayColumn, DisplayedColumnInfo, ChangeConfigFunc } from './GridDisplay'; -import { +import type { TableInfo, EngineDriver, ViewInfo, diff --git a/packages/datalib/src/ViewGridDisplay.ts b/packages/datalib/src/ViewGridDisplay.ts index 82d73505b..40515db02 100644 --- a/packages/datalib/src/ViewGridDisplay.ts +++ b/packages/datalib/src/ViewGridDisplay.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay'; -import { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types'; +import type { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types'; import { GridConfig, GridCache } from './GridConfig'; export class ViewGridDisplay extends GridDisplay { diff --git a/packages/datalib/src/deleteCascade.ts b/packages/datalib/src/deleteCascade.ts index 77415f3ae..973d5772a 100644 --- a/packages/datalib/src/deleteCascade.ts +++ b/packages/datalib/src/deleteCascade.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { Command, Insert, Update, Delete, UpdateField, Condition, AllowIdentityInsert } from 'dbgate-sqltree'; -import { NamedObjectInfo, DatabaseInfo, ForeignKeyInfo, TableInfo } from 'dbgate-types'; +import type { NamedObjectInfo, DatabaseInfo, ForeignKeyInfo, TableInfo } from 'dbgate-types'; import { ChangeSet, ChangeSetItem, extractChangeSetCondition } from './ChangeSet'; export interface ChangeSetDeleteCascade { diff --git a/packages/datalib/src/processPerspectiveDefaultColunns.ts b/packages/datalib/src/processPerspectiveDefaultColunns.ts index 2e106acf7..564d2da09 100644 --- a/packages/datalib/src/processPerspectiveDefaultColunns.ts +++ b/packages/datalib/src/processPerspectiveDefaultColunns.ts @@ -1,5 +1,5 @@ import { findForeignKeyForColumn } from 'dbgate-tools'; -import { DatabaseInfo, TableInfo, ViewInfo } from 'dbgate-types'; +import type { DatabaseInfo, TableInfo, ViewInfo } from 'dbgate-types'; import { createPerspectiveNodeConfig, MultipleDatabaseInfo, PerspectiveConfig } from './PerspectiveConfig'; import { PerspectiveDataPattern, PerspectiveDataPatternDict } from './PerspectiveDataPattern'; import { PerspectiveTableNode } from './PerspectiveTreeNode'; diff --git a/packages/datalib/src/tests/chinookDbInfo.ts b/packages/datalib/src/tests/chinookDbInfo.ts index 20fbbb784..b36a8cda3 100644 --- a/packages/datalib/src/tests/chinookDbInfo.ts +++ b/packages/datalib/src/tests/chinookDbInfo.ts @@ -1,4 +1,4 @@ -import { DatabaseInfo } from 'dbgate-types'; +import type { DatabaseInfo } from 'dbgate-types'; export const chinookDbInfo: DatabaseInfo = { tables: [ diff --git a/packages/filterparser/src/datetimeParser.ts b/packages/filterparser/src/datetimeParser.ts index 22d0dd682..d4355122c 100644 --- a/packages/filterparser/src/datetimeParser.ts +++ b/packages/filterparser/src/datetimeParser.ts @@ -2,7 +2,7 @@ import P from 'parsimmon'; import moment from 'moment'; import { FilterType } from './types'; import { Condition } from 'dbgate-sqltree'; -import { TransformType } from 'dbgate-types'; +import type { TransformType } from 'dbgate-types'; import { interpretEscapes, token, word, whitespace } from './common'; const compoudCondition = conditionType => conditions => { diff --git a/packages/filterparser/src/parseFilter.ts b/packages/filterparser/src/parseFilter.ts index 35cb8fa4c..65c2b988f 100644 --- a/packages/filterparser/src/parseFilter.ts +++ b/packages/filterparser/src/parseFilter.ts @@ -2,7 +2,6 @@ import P from 'parsimmon'; import moment from 'moment'; import { FilterType } from './types'; import { Condition } from 'dbgate-sqltree'; -import { TransformType } from 'dbgate-types'; import { interpretEscapes, token, word, whitespace } from './common'; import { mongoParser } from './mongoParser'; import { datetimeParser } from './datetimeParser'; diff --git a/packages/sqltree/src/dumpSqlCommand.ts b/packages/sqltree/src/dumpSqlCommand.ts index ea7fa3aba..9a7ea6fe5 100644 --- a/packages/sqltree/src/dumpSqlCommand.ts +++ b/packages/sqltree/src/dumpSqlCommand.ts @@ -1,4 +1,4 @@ -import { SqlDumper } from 'dbgate-types'; +import type { SqlDumper } from 'dbgate-types'; import { Command, Select, Update, Delete, Insert } from './types'; import { dumpSqlExpression } from './dumpSqlExpression'; import { dumpSqlFromDefinition, dumpSqlSourceRef } from './dumpSqlSource'; diff --git a/packages/sqltree/src/dumpSqlCondition.ts b/packages/sqltree/src/dumpSqlCondition.ts index ea2abc446..a95fa86f4 100644 --- a/packages/sqltree/src/dumpSqlCondition.ts +++ b/packages/sqltree/src/dumpSqlCondition.ts @@ -1,4 +1,4 @@ -import { SqlDumper } from 'dbgate-types'; +import type { SqlDumper } from 'dbgate-types'; import { Condition, BinaryCondition } from './types'; import { dumpSqlExpression } from './dumpSqlExpression'; import { dumpSqlSelect } from './dumpSqlCommand'; diff --git a/packages/sqltree/src/dumpSqlExpression.ts b/packages/sqltree/src/dumpSqlExpression.ts index 7cd279a2f..4772a4bde 100644 --- a/packages/sqltree/src/dumpSqlExpression.ts +++ b/packages/sqltree/src/dumpSqlExpression.ts @@ -1,5 +1,5 @@ import _ from 'lodash'; -import { SqlDumper } from 'dbgate-types'; +import type { SqlDumper } from 'dbgate-types'; import { Expression, ColumnRefExpression } from './types'; import { dumpSqlSourceRef } from './dumpSqlSource'; diff --git a/packages/sqltree/src/dumpSqlSource.ts b/packages/sqltree/src/dumpSqlSource.ts index e13dc1f2f..0c5d46635 100644 --- a/packages/sqltree/src/dumpSqlSource.ts +++ b/packages/sqltree/src/dumpSqlSource.ts @@ -1,5 +1,5 @@ import { Source, FromDefinition, Relation } from './types'; -import { SqlDumper } from 'dbgate-types'; +import type { SqlDumper } from 'dbgate-types'; import { dumpSqlSelect } from './dumpSqlCommand'; import { dumpSqlCondition } from './dumpSqlCondition'; diff --git a/packages/sqltree/src/evaluateCondition.ts b/packages/sqltree/src/evaluateCondition.ts index 944c3ef89..f615af4eb 100644 --- a/packages/sqltree/src/evaluateCondition.ts +++ b/packages/sqltree/src/evaluateCondition.ts @@ -1,10 +1,6 @@ -import { SqlDumper } from 'dbgate-types'; import _ from 'lodash'; import { Condition, BinaryCondition } from './types'; -import { dumpSqlExpression } from './dumpSqlExpression'; -import { link } from 'fs'; import { evaluateExpression } from './evaluateExpression'; -import { cond } from 'lodash'; function isEmpty(value) { if (value == null) return true; diff --git a/packages/sqltree/src/types.ts b/packages/sqltree/src/types.ts index 07e9e4b03..3e3e45a1e 100644 --- a/packages/sqltree/src/types.ts +++ b/packages/sqltree/src/types.ts @@ -1,4 +1,4 @@ -import { NamedObjectInfo, RangeDefinition, TransformType } from 'dbgate-types'; +import type { NamedObjectInfo, RangeDefinition, TransformType } from 'dbgate-types'; // export interface Command { // } diff --git a/packages/sqltree/src/utility.ts b/packages/sqltree/src/utility.ts index 39301a9ee..ccab90e87 100644 --- a/packages/sqltree/src/utility.ts +++ b/packages/sqltree/src/utility.ts @@ -1,4 +1,4 @@ -import { EngineDriver, SqlDumper } from 'dbgate-types'; +import type { EngineDriver, SqlDumper } from 'dbgate-types'; import { Command, Condition } from './types'; import { dumpSqlCommand } from './dumpSqlCommand'; diff --git a/packages/tools/src/SqlDumper.ts b/packages/tools/src/SqlDumper.ts index c8bb5c6af..82af25c6c 100644 --- a/packages/tools/src/SqlDumper.ts +++ b/packages/tools/src/SqlDumper.ts @@ -1,5 +1,5 @@ import _ from 'lodash'; -import { +import type { ColumnInfo, ConstraintInfo, EngineDriver, diff --git a/packages/tools/src/SqlGenerator.ts b/packages/tools/src/SqlGenerator.ts index 48b0d103a..edcefa6b8 100644 --- a/packages/tools/src/SqlGenerator.ts +++ b/packages/tools/src/SqlGenerator.ts @@ -1,4 +1,4 @@ -import { +import type { DatabaseInfo, EngineDriver, FunctionInfo, diff --git a/packages/tools/src/computeDiffRows.ts b/packages/tools/src/computeDiffRows.ts index a5c64b48c..a1fa836ac 100644 --- a/packages/tools/src/computeDiffRows.ts +++ b/packages/tools/src/computeDiffRows.ts @@ -1,5 +1,5 @@ import { DbDiffOptions, testEqualColumns, testEqualTables, testEqualSqlObjects } from './diffTools'; -import { DatabaseInfo, EngineDriver, SqlObjectInfo, TableInfo } from 'dbgate-types'; +import type { DatabaseInfo, EngineDriver, SqlObjectInfo, TableInfo } from 'dbgate-types'; import _ from 'lodash'; export function computeDiffRowsCore(sourceList, targetList, testEqual) { diff --git a/packages/tools/src/createBulkInsertStreamBase.ts b/packages/tools/src/createBulkInsertStreamBase.ts index 01f8b1b2a..9a8812226 100644 --- a/packages/tools/src/createBulkInsertStreamBase.ts +++ b/packages/tools/src/createBulkInsertStreamBase.ts @@ -1,4 +1,3 @@ -import { EngineDriver } from 'dbgate-types'; import _intersection from 'lodash/intersection'; import { prepareTableForImport } from './tableTransforms'; diff --git a/packages/tools/src/diffTools.ts b/packages/tools/src/diffTools.ts index c7f19d3fc..f3b7fb33d 100644 --- a/packages/tools/src/diffTools.ts +++ b/packages/tools/src/diffTools.ts @@ -1,4 +1,4 @@ -import { +import type { ColumnInfo, ConstraintInfo, DatabaseInfo, diff --git a/packages/tools/src/nameTools.ts b/packages/tools/src/nameTools.ts index 14e2b8961..617481a3e 100644 --- a/packages/tools/src/nameTools.ts +++ b/packages/tools/src/nameTools.ts @@ -1,6 +1,6 @@ import _cloneDeep from 'lodash/cloneDeep'; import _isString from 'lodash/isString'; -import { +import type { ColumnInfo, ColumnReference, DatabaseInfo, diff --git a/packages/tools/src/packageTools.ts b/packages/tools/src/packageTools.ts index 5e2047129..76c3897a9 100644 --- a/packages/tools/src/packageTools.ts +++ b/packages/tools/src/packageTools.ts @@ -1,4 +1,4 @@ -import { EngineDriver, ExtensionsDirectory } from 'dbgate-types'; +import type { EngineDriver, ExtensionsDirectory } from 'dbgate-types'; import _camelCase from 'lodash/camelCase'; import _isString from 'lodash/isString'; import _isPlainObject from 'lodash/isPlainObject'; diff --git a/packages/tools/src/preloadedRowsTools.ts b/packages/tools/src/preloadedRowsTools.ts index d0be38064..09c2e083e 100644 --- a/packages/tools/src/preloadedRowsTools.ts +++ b/packages/tools/src/preloadedRowsTools.ts @@ -1,5 +1,5 @@ import _ from 'lodash'; -import { DatabaseInfo, EngineDriver } from 'dbgate-types'; +import type { DatabaseInfo, EngineDriver } from 'dbgate-types'; export async function enrichWithPreloadedRows( dbModel: DatabaseInfo, diff --git a/packages/tools/src/schemaEditorTools.ts b/packages/tools/src/schemaEditorTools.ts index c67c3d2d6..5c5c92657 100644 --- a/packages/tools/src/schemaEditorTools.ts +++ b/packages/tools/src/schemaEditorTools.ts @@ -1,6 +1,6 @@ import uuidv1 from 'uuid/v1'; import _omit from 'lodash/omit'; -import { +import type { ColumnInfo, ConstraintInfo, ForeignKeyInfo, diff --git a/packages/tools/src/structureTools.ts b/packages/tools/src/structureTools.ts index 660c5779c..42b0ffbca 100644 --- a/packages/tools/src/structureTools.ts +++ b/packages/tools/src/structureTools.ts @@ -1,4 +1,4 @@ -import { DatabaseInfo, TableInfo, ApplicationDefinition, ViewInfo, CollectionInfo } from 'dbgate-types'; +import type { DatabaseInfo, TableInfo, ApplicationDefinition, ViewInfo, CollectionInfo } from 'dbgate-types'; import _flatten from 'lodash/flatten'; export function addTableDependencies(db: DatabaseInfo): DatabaseInfo { diff --git a/packages/tools/src/tableTransforms.ts b/packages/tools/src/tableTransforms.ts index 54f46ed03..d53c38570 100644 --- a/packages/tools/src/tableTransforms.ts +++ b/packages/tools/src/tableTransforms.ts @@ -1,4 +1,4 @@ -import { TableInfo } from 'dbgate-types'; +import type { TableInfo } from 'dbgate-types'; import _cloneDeep from 'lodash/cloneDeep'; import _fromPairs from 'lodash/fromPairs'; import _get from 'lodash/get'; diff --git a/packages/web/src/appobj/AppFileAppObject.svelte b/packages/web/src/appobj/AppFileAppObject.svelte index 7a70039f4..c51176f6b 100644 --- a/packages/web/src/appobj/AppFileAppObject.svelte +++ b/packages/web/src/appobj/AppFileAppObject.svelte @@ -16,7 +16,7 @@ tabComponent, tooltip, props: { - savedFile:fileName + '.' + fileType, + savedFile: fileName + '.' + fileType, savedFolder: 'app:' + folderName, savedFormat: 'text', appFolder: folderName, @@ -28,7 +28,10 @@ } export const extractKey = data => data.fileName; - export const createMatcher = ({ fileName }) => filter => filterName(filter, fileName); + export const createMatcher = + ({ fileName }) => + filter => + filterName(filter, fileName); const APP_ICONS = { 'config.json': 'img json', 'command.sql': 'img app-command', @@ -50,7 +53,6 @@ import InputTextModal from '../modals/InputTextModal.svelte'; import ConfirmModal from '../modals/ConfirmModal.svelte'; import { apiCall } from '../utility/api'; - import { currentDatabase, currentDatabase } from '../stores'; export let data; diff --git a/packages/web/src/charts/chartDataLoader.ts b/packages/web/src/charts/chartDataLoader.ts index 49534e2db..440b8c956 100644 --- a/packages/web/src/charts/chartDataLoader.ts +++ b/packages/web/src/charts/chartDataLoader.ts @@ -1,5 +1,5 @@ -import { dumpSqlSelect, Select } from 'dbgate-sqltree'; -import { EngineDriver } from 'dbgate-types'; +import type { Select } from 'dbgate-sqltree'; +import type { EngineDriver } from 'dbgate-types'; import _ from 'lodash'; import { apiCall } from '../utility/api'; diff --git a/packages/web/src/commands/invalidateCommands.ts b/packages/web/src/commands/invalidateCommands.ts index f6fcd6301..2898bbed4 100644 --- a/packages/web/src/commands/invalidateCommands.ts +++ b/packages/web/src/commands/invalidateCommands.ts @@ -1,6 +1,6 @@ import { tick } from 'svelte'; import { commands } from '../stores'; -import { GlobalCommand } from './registerCommand'; +import type { GlobalCommand } from './registerCommand'; let isInvalidated = false; diff --git a/packages/web/src/designer/DesignerComponentCreator.ts b/packages/web/src/designer/DesignerComponentCreator.ts index 0f4ad809a..73714932d 100644 --- a/packages/web/src/designer/DesignerComponentCreator.ts +++ b/packages/web/src/designer/DesignerComponentCreator.ts @@ -1,7 +1,5 @@ import _ from 'lodash'; -import { dumpSqlSelect, Select, JoinType, Condition, Relation, mergeConditions, Source } from 'dbgate-sqltree'; -import { EngineDriver } from 'dbgate-types'; -import { DesignerInfo, DesignerTableInfo, DesignerReferenceInfo, DesignerJoinType } from './types'; +import type { DesignerInfo, DesignerTableInfo, DesignerReferenceInfo, DesignerJoinType } from './types'; import { findPrimaryTable, findConnectingReference, referenceIsJoin, referenceIsExists } from './designerTools'; export class DesignerComponent { diff --git a/packages/web/src/designer/DesignerQueryDumper.ts b/packages/web/src/designer/DesignerQueryDumper.ts index c1930861c..e4f7e026c 100644 --- a/packages/web/src/designer/DesignerQueryDumper.ts +++ b/packages/web/src/designer/DesignerQueryDumper.ts @@ -10,7 +10,6 @@ import { ResultField, Expression, } from 'dbgate-sqltree'; -import { EngineDriver } from 'dbgate-types'; import { DesignerInfo, DesignerTableInfo, DesignerReferenceInfo, DesignerJoinType } from './types'; import { DesignerComponent } from './DesignerComponentCreator'; import { diff --git a/packages/web/src/designer/designerTools.ts b/packages/web/src/designer/designerTools.ts index a1170715a..215744e74 100644 --- a/packages/web/src/designer/designerTools.ts +++ b/packages/web/src/designer/designerTools.ts @@ -1,7 +1,8 @@ import _ from 'lodash'; -import { dumpSqlSelect, Select, JoinType, Condition, Relation, mergeConditions, Source } from 'dbgate-sqltree'; -import { EngineDriver } from 'dbgate-types'; -import { DesignerInfo, DesignerTableInfo, DesignerReferenceInfo, DesignerJoinType } from './types'; +import type { Select, Condition, Source } from 'dbgate-sqltree'; +import { dumpSqlSelect, mergeConditions } from 'dbgate-sqltree'; +import type { EngineDriver } from 'dbgate-types'; +import type { DesignerInfo, DesignerTableInfo, DesignerReferenceInfo, DesignerJoinType } from './types'; import { DesignerComponentCreator } from './DesignerComponentCreator'; import { DesignerQueryDumper } from './DesignerQueryDumper'; import { getFilterType } from 'dbgate-filterparser'; diff --git a/packages/web/src/designer/types.ts b/packages/web/src/designer/types.ts index d42f2e076..7e835ef76 100644 --- a/packages/web/src/designer/types.ts +++ b/packages/web/src/designer/types.ts @@ -1,5 +1,5 @@ -import { JoinType } from 'dbgate-sqltree'; -import { TableInfo } from 'dbgate-types'; +import type { JoinType } from 'dbgate-sqltree'; +import type { TableInfo } from 'dbgate-types'; export type DesignerTableInfo = TableInfo & { designerId: string; diff --git a/packages/web/src/perspectives/PerspectiveDesigner.svelte b/packages/web/src/perspectives/PerspectiveDesigner.svelte index 7fb2fd625..c73a3a55a 100644 --- a/packages/web/src/perspectives/PerspectiveDesigner.svelte +++ b/packages/web/src/perspectives/PerspectiveDesigner.svelte @@ -8,7 +8,7 @@ PerspectiveTreeNode, switchPerspectiveReferenceDirection, } from 'dbgate-datalib'; - import { CollectionInfo } from 'dbgate-types'; + import type { CollectionInfo } from 'dbgate-types'; import _ from 'lodash'; import { tick } from 'svelte'; import runCommand from '../commands/runCommand'; diff --git a/packages/web/src/plugins/fileformats.ts b/packages/web/src/plugins/fileformats.ts index f6a1c7b35..a65aef9df 100644 --- a/packages/web/src/plugins/fileformats.ts +++ b/packages/web/src/plugins/fileformats.ts @@ -1,4 +1,4 @@ -import { FileFormatDefinition, QuickExportDefinition } from 'dbgate-types'; +import type { FileFormatDefinition, QuickExportDefinition } from 'dbgate-types'; const jsonlFormat = { storageType: 'jsonl', diff --git a/packages/web/src/settings/ThemeSkeleton.svelte b/packages/web/src/settings/ThemeSkeleton.svelte index 43008dc85..a3c1208e0 100644 --- a/packages/web/src/settings/ThemeSkeleton.svelte +++ b/packages/web/src/settings/ThemeSkeleton.svelte @@ -1,5 +1,5 @@ -
(isExpanded = !isExpanded)}> +
(isExpanded = !isExpanded)} + on:drop={e => { + var data = e.dataTransfer.getData('app_object_drag_data'); + if (data && onDropOnGroup) { + e.stopPropagation(); + onDropOnGroup(data, group); + } + }} +> diff --git a/packages/web/src/appobj/AppObjectList.svelte b/packages/web/src/appobj/AppObjectList.svelte index c301a168f..d95b14f23 100644 --- a/packages/web/src/appobj/AppObjectList.svelte +++ b/packages/web/src/appobj/AppObjectList.svelte @@ -21,6 +21,7 @@ export let groupIconFunc = plusExpandIcon; export let groupFunc = undefined; + export let onDropOnGroup = undefined; $: filtered = !groupFunc ? list.filter(data => { @@ -83,6 +84,7 @@ {passProps} {getIsExpanded} {setIsExpanded} + {onDropOnGroup} /> {/each} {:else} diff --git a/packages/web/src/widgets/ConnectionList.svelte b/packages/web/src/widgets/ConnectionList.svelte index 9e9a7d3cf..f6e5e5d25 100644 --- a/packages/web/src/widgets/ConnectionList.svelte +++ b/packages/web/src/widgets/ConnectionList.svelte @@ -26,6 +26,7 @@ import LargeButton from '../buttons/LargeButton.svelte'; import { matchingProps } from '../tabs/TableDataTab.svelte'; import { plusExpandIcon, chevronExpandIcon } from '../icons/expandIcons'; + import { safeJsonParse } from 'dbgate-tools'; const connections = useConnectionList(); const serverStatus = useServerStatus(); @@ -41,8 +42,12 @@ x => !x.unsaved || $openedConnections.includes(x._id) || $openedSingleDatabaseConnections.includes(x._id) ); - $: connectionsWithParent = connectionsWithStatusFiltered ? connectionsWithStatusFiltered?.filter((x) => x.parent !== undefined && x.parent !== null && x.parent.length !== 0) : []; - $: connectionsWithoutParent = connectionsWithStatusFiltered ? connectionsWithStatusFiltered?.filter((x) => x.parent === undefined || x.parent === null || x.parent.length === 0) : []; + $: connectionsWithParent = connectionsWithStatusFiltered + ? connectionsWithStatusFiltered?.filter(x => x.parent !== undefined && x.parent !== null && x.parent.length !== 0) + : []; + $: connectionsWithoutParent = connectionsWithStatusFiltered + ? connectionsWithStatusFiltered?.filter(x => x.parent === undefined || x.parent === null || x.parent.length === 0) + : []; const handleRefreshConnections = () => { for (const conid of $openedConnections) { @@ -50,6 +55,16 @@ } }; + const handleDropOnGroup = (data, group) => { + const json = safeJsonParse(data); + if (json?._id) { + apiCall('connections/update', { + _id: json?._id, + values: { parent: group }, + }); + } + }; + const connectionColorFactory = useConnectionColorFactory(3); @@ -65,7 +80,14 @@ - + { + var data = e.dataTransfer.getData('app_object_drag_data'); + if (data) { + handleDropOnGroup(data, ''); + } + }} +> (getConnectionLabel(connection) || '').toUpperCase())} module={connectionAppObject} @@ -81,9 +103,10 @@ groupIconFunc={chevronExpandIcon} groupFunc={data => data.parent} expandIconFunc={plusExpandIcon} + onDropOnGroup={handleDropOnGroup} /> {#if connectionsWithParent?.length > 0 && connectionsWithoutParent?.length > 0} -
+
{/if} (getConnectionLabel(connection) || '').toUpperCase())} @@ -108,8 +131,6 @@ {/if} - - diff --git a/packages/web/src/perspectives/PerspectiveTable.svelte b/packages/web/src/perspectives/PerspectiveTable.svelte index 943c16e16..4a1c3c18c 100644 --- a/packages/web/src/perspectives/PerspectiveTable.svelte +++ b/packages/web/src/perspectives/PerspectiveTable.svelte @@ -596,9 +596,9 @@ z-index: 100; } - th.filter { + /* th.filter { padding: 0; - } + } */ thead :global(tr:first-child) :global(th) { border-top: 1px solid var(--theme-border); From 909591404fb1c9499187951806f55ecf0236cd7a Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Mon, 7 Nov 2022 07:43:09 +0100 Subject: [PATCH 13/41] v5.1.6-beta.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eeff09400..081db0901 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "5.1.5", + "version": "5.1.6-beta.1", "name": "dbgate-all", "workspaces": [ "packages/*", From ebfa0a19390c82fbfc05279b3f3405da13dfaf76 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 10 Nov 2022 09:45:41 +0100 Subject: [PATCH 14/41] allow drop on group #274 --- packages/web/src/appobj/AppObjectGroup.svelte | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/web/src/appobj/AppObjectGroup.svelte b/packages/web/src/appobj/AppObjectGroup.svelte index e7f791602..bf52001ca 100644 --- a/packages/web/src/appobj/AppObjectGroup.svelte +++ b/packages/web/src/appobj/AppObjectGroup.svelte @@ -35,19 +35,17 @@ return res; }); } - -
(isExpanded = !isExpanded)} - on:drop={e => { + function handleDrop(e) { var data = e.dataTransfer.getData('app_object_drag_data'); if (data && onDropOnGroup) { e.stopPropagation(); onDropOnGroup(data, group); } - }} -> + } + + +
(isExpanded = !isExpanded)} on:drop={handleDrop}> @@ -65,18 +63,20 @@
{/if} - {#each items as item} - - {/each} +
+ {#each items as item} + + {/each} +
{/if}