From 864797fc9903498c9894001468e50c141f1a383b Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sun, 26 Oct 2025 09:33:48 +0100 Subject: [PATCH] MPR advanced exports --- packages/web/src/appobj/DatabaseAppObject.svelte | 2 ++ packages/web/src/commands/stdCommands.ts | 2 +- packages/web/src/modals/NewObjectModal.svelte | 1 + packages/web/src/utility/createQuickExportMenu.ts | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/web/src/appobj/DatabaseAppObject.svelte b/packages/web/src/appobj/DatabaseAppObject.svelte index 671d5b64e..58a444190 100644 --- a/packages/web/src/appobj/DatabaseAppObject.svelte +++ b/packages/web/src/appobj/DatabaseAppObject.svelte @@ -468,12 +468,14 @@ await dbgateApi.executeQuery(${JSON.stringify( { divider: true }, isSqlOrDoc && + isProApp() && !connection.isReadOnly && hasPermission(`dbops/import`) && { onClick: handleImport, text: _t('database.import', { defaultMessage: 'Import' }), }, isSqlOrDoc && + isProApp() && hasPermission(`dbops/export`) && { onClick: handleExport, text: _t('database.export', { defaultMessage: 'Export' }), diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index cbf82fc72..b9b8d67fa 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -689,7 +689,7 @@ registerCommand({ name: 'Export database', toolbar: true, icon: 'icon export', - testEnabled: () => getCurrentDatabase() != null && hasPermission(`dbops/export`), + testEnabled: () => getCurrentDatabase() != null && hasPermission(`dbops/export`) && isProApp(), onClick: () => { openImportExportTab({ targetStorageType: getDefaultFileFormat(getExtensions()).storageType, diff --git a/packages/web/src/modals/NewObjectModal.svelte b/packages/web/src/modals/NewObjectModal.svelte index 99d140694..eb08b9f98 100644 --- a/packages/web/src/modals/NewObjectModal.svelte +++ b/packages/web/src/modals/NewObjectModal.svelte @@ -94,6 +94,7 @@ title: 'Export database', description: 'Export to file like CSV, JSON, Excel, or other DB', command: 'database.export', + isProFeature: true, testid: 'NewObjectModal_databaseExport', disabledMessage: 'Export is not available for current database', }, diff --git a/packages/web/src/utility/createQuickExportMenu.ts b/packages/web/src/utility/createQuickExportMenu.ts index 467ec1d74..a3cdc69c6 100644 --- a/packages/web/src/utility/createQuickExportMenu.ts +++ b/packages/web/src/utility/createQuickExportMenu.ts @@ -1,11 +1,12 @@ import type { QuickExportDefinition } from 'dbgate-types'; import { currentArchive, getCurrentArchive, getExtensions } from '../stores'; import hasPermission from './hasPermission'; +import { isProApp } from './proTools'; export function createQuickExportMenuItems(handler: (fmt: QuickExportDefinition) => Function, advancedExportMenuItem) { const extensions = getExtensions(); return [ - { + isProApp() && { text: 'Export advanced...', ...advancedExportMenuItem, },