diff --git a/packages/types/engines.d.ts b/packages/types/engines.d.ts index 5556b5b10..656ba1224 100644 --- a/packages/types/engines.d.ts +++ b/packages/types/engines.d.ts @@ -253,6 +253,7 @@ export interface EngineDriver extends FilterBeha collectionPluralLabel?: string; collectionNameLabel?: string; newCollectionFormParams?: any[]; + icon?: any; supportedCreateDatabase?: boolean; showConnectionField?: ( diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index afdaa91e5..0c3d848c8 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -431,13 +431,14 @@ } $: apps = useAllApps(); + $: driver = $extensions.drivers.find(x => x.engine == data.engine); - +{#if isSvgString} + + {@html icon} + +{:else} + +{/if} '; const spatialTypes = [ 'POINT', 'LINESTRING', @@ -395,6 +396,7 @@ const mysqlDriver = { __analyserInternals: { quoteDefaultValues: true, }, + icon: mySqlIcon, }; const mariaDbDialect = { @@ -436,6 +438,7 @@ const mariaDriver = { __analyserInternals: { quoteDefaultValues: false, }, + icon: mariaDbIcon, }; module.exports = [mysqlDriver, mariaDriver]; diff --git a/plugins/dbgate-plugin-oracle/src/frontend/driver.js b/plugins/dbgate-plugin-oracle/src/frontend/driver.js index 49cd9ee5e..e5124b11f 100644 --- a/plugins/dbgate-plugin-oracle/src/frontend/driver.js +++ b/plugins/dbgate-plugin-oracle/src/frontend/driver.js @@ -1,6 +1,7 @@ const { driverBase } = global.DBGATE_PACKAGES['dbgate-tools']; const Dumper = require('./Dumper'); const { oracleSplitterOptions } = require('dbgate-query-splitter/lib/options'); +const oracleIcon = ''; const spatialTypes = ['GEOGRAPHY']; @@ -106,6 +107,7 @@ const oracleDriver = { implicitTransactions: true, databaseUrlPlaceholder: 'e.g. localhost:1521/orcl', + icon: oracleIcon, showConnectionField: (field, values, { config }) => { if (field == 'useDatabaseUrl') return true; diff --git a/plugins/dbgate-plugin-postgres/src/frontend/drivers.js b/plugins/dbgate-plugin-postgres/src/frontend/drivers.js index 190e92ba9..6aaa35a1c 100644 --- a/plugins/dbgate-plugin-postgres/src/frontend/drivers.js +++ b/plugins/dbgate-plugin-postgres/src/frontend/drivers.js @@ -1,7 +1,9 @@ const { driverBase } = global.DBGATE_PACKAGES['dbgate-tools']; const Dumper = require('./Dumper'); const { postgreSplitterOptions } = require('dbgate-query-splitter/lib/options'); - +const postgresIcon = '' +const cockroachIcon = 'CL'; +const redshiftIcon = ''; const spatialTypes = ['GEOGRAPHY', 'GEOMETRY']; /** @type {import('dbgate-types').SqlDialect} */ @@ -370,7 +372,7 @@ const postgresDriver = { ...dialect, materializedViews: true, }, - + icon : postgresIcon, dialectByVersion(version) { if (version) { return { @@ -401,6 +403,7 @@ const cockroachDriver = { dropPrimaryKey: false, }, __analyserInternals: {}, + icon: cockroachIcon, }; /** @type {import('dbgate-types').EngineDriver} */ @@ -419,6 +422,7 @@ const redshiftDriver = { defaultPort: 5439, premiumOnly: true, databaseUrlPlaceholder: 'e.g. redshift-cluster-1.xxxx.redshift.amazonaws.com:5439/dev', + icon: redshiftIcon, showConnectionField: (field, values) => ['databaseUrl', 'user', 'password', 'isReadOnly', 'useSeparateSchemas'].includes(field), beforeConnectionSave: connection => { diff --git a/plugins/dbgate-plugin-redis/src/frontend/driver.js b/plugins/dbgate-plugin-redis/src/frontend/driver.js index 3182cbc25..d5355c161 100644 --- a/plugins/dbgate-plugin-redis/src/frontend/driver.js +++ b/plugins/dbgate-plugin-redis/src/frontend/driver.js @@ -1,6 +1,7 @@ const { driverBase } = global.DBGATE_PACKAGES['dbgate-tools']; const { redisSplitterOptions } = require('dbgate-query-splitter/lib/options'); const Dumper = require('./Dumper'); +const redisIcon = ''; /** @type {import('dbgate-types').SqlDialect} */ const dialect = { @@ -30,6 +31,7 @@ const driver = { databaseUrlPlaceholder: 'e.g. redis://:authpassword@127.0.0.1:6380/4', authTypeLabel: 'Connection mode', defaultAuthTypeName: 'node', + icon: redisIcon, supportedKeyTypes: [ { name: 'string', diff --git a/plugins/dbgate-plugin-sqlite/src/frontend/drivers.js b/plugins/dbgate-plugin-sqlite/src/frontend/drivers.js index 91fc37fa3..c4bb396bf 100644 --- a/plugins/dbgate-plugin-sqlite/src/frontend/drivers.js +++ b/plugins/dbgate-plugin-sqlite/src/frontend/drivers.js @@ -3,6 +3,7 @@ const { driverBase } = global.DBGATE_PACKAGES['dbgate-tools']; const Dumper = require('./Dumper'); const { sqliteSplitterOptions, noSplitSplitterOptions } = require('dbgate-query-splitter/lib/options'); +const sqlLiteIcon = ''; function getDatabaseFileLabel(databaseFile) { if (!databaseFile) return databaseFile; @@ -59,6 +60,7 @@ const sqliteDriverBase = { showConnectionTab: (field) => false, predefinedDataTypes: ['integer', 'real', 'text', 'blob'], + icon: sqlLiteIcon, }; /** @type {import('dbgate-types').EngineDriver} */