From d862762758b769b7725c449c9a851a1bc47d9201 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 23 Jun 2022 14:23:46 +0200 Subject: [PATCH 1/5] runscript WIP --- packages/web/src/modals/ConfirmSqlModal.svelte | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/web/src/modals/ConfirmSqlModal.svelte b/packages/web/src/modals/ConfirmSqlModal.svelte index ac0073b75..3f827ddb8 100644 --- a/packages/web/src/modals/ConfirmSqlModal.svelte +++ b/packages/web/src/modals/ConfirmSqlModal.svelte @@ -1,3 +1,21 @@ + + @@ -26,9 +26,12 @@ import FontIcon from '../icons/FontIcon.svelte'; import newQuery from '../query/newQuery'; import SqlEditor from '../query/SqlEditor.svelte'; + import { apiCall } from '../utility/api'; + import { showSnackbarSuccess } from '../utility/snackbar'; + import ErrorMessageModal from './ErrorMessageModal.svelte'; import ModalBase from './ModalBase.svelte'; - import { closeCurrentModal } from './modalTools'; + import { closeCurrentModal, showModal } from './modalTools'; export let sql; export let onConfirm; diff --git a/packages/web/src/utility/alterDatabaseTools.ts b/packages/web/src/utility/alterDatabaseTools.ts index 197309bc2..1e174547f 100644 --- a/packages/web/src/utility/alterDatabaseTools.ts +++ b/packages/web/src/utility/alterDatabaseTools.ts @@ -4,7 +4,7 @@ import InputTextModal from '../modals/InputTextModal.svelte'; import { showModal } from '../modals/modalTools'; import { getExtensions } from '../stores'; import { getConnectionInfo, getDatabaseInfo } from './metadataLoaders'; -import ConfirmSqlModal from '../modals/ConfirmSqlModal.svelte'; +import ConfirmSqlModal, { saveScriptToDatabase } from '../modals/ConfirmSqlModal.svelte'; import { apiCall } from './api'; export async function alterDatabaseDialog(conid, database, updateFunc) { @@ -21,8 +21,7 @@ export async function alterDatabaseDialog(conid, database, updateFunc) { sql, recreates, onConfirm: async () => { - const resp = await apiCall('database-connections/run-script', { conid, database, sql }); - await apiCall('database-connections/sync-model', { conid, database }); + saveScriptToDatabase({ conid, database }, sql); }, engine: driver.engine, }); From f4fb92be913d4773587e65acf919321142ef8be1 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 23 Jun 2022 14:42:28 +0200 Subject: [PATCH 3/5] v5.0.6-beta.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b04c91ae0..7b31d5a01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "5.0.6-beta.4", + "version": "5.0.6-beta.5", "name": "dbgate-all", "workspaces": [ "packages/*", From de444e84859c076db16ab475bd4dea3488e046f1 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 23 Jun 2022 14:58:26 +0200 Subject: [PATCH 4/5] changed table ctx menu for redonly connections --- .../web/src/appobj/DatabaseObjectAppObject.svelte | 12 ++++++++++-- packages/web/src/widgets/SqlObjectList.svelte | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index f9d84fb0c..de8301bf6 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -47,18 +47,22 @@ { label: 'Drop table', isDrop: true, + requiresWriteAccess: true, }, { label: 'Rename table', isRename: true, + requiresWriteAccess: true, }, { label: 'Create table backup', isDuplicateTable: true, + requiresWriteAccess: true, }, { label: 'Query designer', isQueryDesigner: true, + requiresWriteAccess: true, }, { label: 'Show diagram', @@ -75,6 +79,7 @@ { label: 'Import', isImport: true, + requiresWriteAccess: true, }, { label: 'Open as data sheet', @@ -613,7 +618,7 @@ ); } - export function createDatabaseObjectMenu(data) { + export function createDatabaseObjectMenu(data, connection = null) { const { objectTypeField } = data; return menus[objectTypeField] .filter(x => x) @@ -652,6 +657,9 @@ ); } + if (connection?.isReadOnly && menu.requiresWriteAccess) { + return null; + } return { text: menu.label, onClick: () => { @@ -712,7 +720,7 @@ } function createMenu() { - return createDatabaseObjectMenu(data); + return createDatabaseObjectMenu(data, passProps?.connection); } $: isPinned = !!$pinnedTables.find(x => testEqual(data, x)); diff --git a/packages/web/src/widgets/SqlObjectList.svelte b/packages/web/src/widgets/SqlObjectList.svelte index 5ce05a76e..1aa440ef8 100644 --- a/packages/web/src/widgets/SqlObjectList.svelte +++ b/packages/web/src/widgets/SqlObjectList.svelte @@ -145,7 +145,7 @@ data.objectTypeField == 'tables' || data.objectTypeField == 'views' || data.objectTypeField == 'matviews'} expandIconFunc={chevronExpandIcon} {filter} - passProps={{ showPinnedInsteadOfUnpin: true }} + passProps={{ showPinnedInsteadOfUnpin: true, connection: $connection }} /> {/if} From 261cec7ec2be4d3f97e0f1432c9d9eb2ff205af1 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 23 Jun 2022 14:58:41 +0200 Subject: [PATCH 5/5] v5.0.6-beta.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7b31d5a01..a18ca090c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "5.0.6-beta.5", + "version": "5.0.6-beta.6", "name": "dbgate-all", "workspaces": [ "packages/*",