From 9c27c224ec0ce50cde9040b0477addfa4e1c468c Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sat, 27 Mar 2021 16:45:51 +0100 Subject: [PATCH] fullscreen modal template, sql generator modal --- packages/web/src/commands/stdCommands.ts | 20 +++++- packages/web/src/icons/FontIcon.svelte | 1 + .../web/src/modals/ImportExportModal.svelte | 71 +++++++------------ packages/web/src/modals/ModalBase.svelte | 45 +++++++----- .../web/src/modals/SqlGeneratorModal.svelte | 28 ++++++++ packages/web/src/stores.ts | 7 ++ 6 files changed, 109 insertions(+), 63 deletions(-) create mode 100644 packages/web/src/modals/SqlGeneratorModal.svelte diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index 369ffbcc0..85fc5bbbc 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -5,6 +5,7 @@ import { ThemeDefinition } from 'dbgate-types'; import ConnectionModal from '../modals/ConnectionModal.svelte'; import AboutModal from '../modals/AboutModal.svelte'; import ImportExportModal from '../modals/ImportExportModal.svelte'; +import SqlGeneratorModal from '../modals/SqlGeneratorModal.svelte'; import { showModal } from '../modals/modalTools'; import newQuery from '../query/newQuery'; import saveTabFile from '../utility/saveTabFile'; @@ -12,7 +13,7 @@ import openNewTab from '../utility/openNewTab'; import getElectron from '../utility/getElectron'; import { openElectronFile } from '../utility/openElectronFile'; import { getDefaultFileFormat } from '../plugins/fileformats'; -import { getCurrentConfig } from '../stores'; +import { getCurrentConfig, getCurrentDatabase } from '../stores'; import './recentDatabaseSwitch'; const electron = getElectron(); @@ -188,6 +189,23 @@ registerCommand({ }), }); +registerCommand({ + id: 'sql.generator', + category: 'SQL', + name: 'SQL Generator', + toolbar: true, + icon: 'icon sql-generator', + testEnabled: () => getCurrentDatabase() != null, + onClick: () => + showModal(SqlGeneratorModal, { + importToArchive: true, + initialValues: { + conid: getCurrentDatabase()?.connection?._id, + database: getCurrentDatabase()?.name, + }, + }), +}); + export function registerFileCommands({ idPrefix, category, diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte index a01070472..36f145d97 100644 --- a/packages/web/src/icons/FontIcon.svelte +++ b/packages/web/src/icons/FontIcon.svelte @@ -16,6 +16,7 @@ 'icon add': 'mdi mdi-plus-circle', 'icon connection': 'mdi mdi-connection', 'icon cell-data': 'mdi mdi-details', + 'icon sql-generator': 'mdi mdi-cog-transfer', 'icon database': 'mdi mdi-database', 'icon server': 'mdi mdi-server', diff --git a/packages/web/src/modals/ImportExportModal.svelte b/packages/web/src/modals/ImportExportModal.svelte index d20190072..f5bf9b1f7 100644 --- a/packages/web/src/modals/ImportExportModal.svelte +++ b/packages/web/src/modals/ImportExportModal.svelte @@ -113,7 +113,7 @@ ...initialValues, }} > - + Import/Export {#if busy} @@ -121,33 +121,31 @@ {/if} -
- -
- -
+ +
+ +
- - - - - - - - - - - - - - - - - -
-
+ + + + + + + + + + + + + + + + + + - +
diff --git a/packages/web/src/modals/SqlGeneratorModal.svelte b/packages/web/src/modals/SqlGeneratorModal.svelte new file mode 100644 index 000000000..40e0bd5b0 --- /dev/null +++ b/packages/web/src/modals/SqlGeneratorModal.svelte @@ -0,0 +1,28 @@ + + + + + SQL Generator + {#if busy} + + {/if} + + + +
+ Close +
+
+
diff --git a/packages/web/src/stores.ts b/packages/web/src/stores.ts index 9a8ea8c80..b847936ec 100644 --- a/packages/web/src/stores.ts +++ b/packages/web/src/stores.ts @@ -119,3 +119,10 @@ recentDatabases.subscribe(value => { recentDatabasesValue = value; }); export const getRecentDatabases = () => _.compact(recentDatabasesValue); + +let currentDatabaseValue = null; +currentDatabase.subscribe(value => { + currentDatabaseValue = value; + invalidateCommands(); +}); +export const getCurrentDatabase = () => currentDatabaseValue;