diff --git a/packages/web/src/appobj/ArchiveFileAppObject.svelte b/packages/web/src/appobj/ArchiveFileAppObject.svelte
index ecb13d8ff..02c92fbdf 100644
--- a/packages/web/src/appobj/ArchiveFileAppObject.svelte
+++ b/packages/web/src/appobj/ArchiveFileAppObject.svelte
@@ -169,31 +169,33 @@
{ text: 'Delete', onClick: handleDelete },
{ text: 'Rename', onClick: handleRename },
data.fileType == 'jsonl' &&
- createQuickExportMenu(fmt => async () => {
- exportQuickExportFile(
- data.fileName,
- {
- functionName: 'archiveReader',
- props: {
- fileName: data.fileName,
- folderName: data.folderName,
+ createQuickExportMenu(
+ fmt => async () => {
+ exportQuickExportFile(
+ data.fileName,
+ {
+ functionName: 'archiveReader',
+ props: {
+ fileName: data.fileName,
+ folderName: data.folderName,
+ },
},
+ fmt
+ );
+ },
+ {
+ text: 'Export',
+ onClick: () => {
+ showModal(ImportExportModal, {
+ initialValues: {
+ sourceStorageType: 'archive',
+ sourceArchiveFolder: data.folderName,
+ sourceList: [data.fileName],
+ },
+ });
},
- fmt
- );
- }),
- data.fileType == 'jsonl' && {
- text: 'Export',
- onClick: () => {
- showModal(ImportExportModal, {
- initialValues: {
- sourceStorageType: 'archive',
- sourceArchiveFolder: data.folderName,
- sourceList: [data.fileName],
- },
- });
- },
- },
+ }
+ ),
data.fileType.endsWith('.sql') && { text: 'Open SQL', onClick: handleOpenSqlFile },
data.fileType.endsWith('.yaml') && { text: 'Open YAML', onClick: handleOpenYamlFile },
];
diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
index fd4cb4154..c7bb2c01f 100644
--- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte
+++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
@@ -60,12 +60,9 @@
{
divider: true,
},
- {
- isQuickExport: true,
- functionName: 'tableReader',
- },
{
label: 'Export',
+ functionName: 'tableReader',
isExport: true,
},
{
@@ -131,13 +128,10 @@
{
divider: true,
},
- {
- isQuickExport: true,
- functionName: 'tableReader',
- },
{
label: 'Export',
isExport: true,
+ functionName: 'tableReader',
},
{
label: 'Open as data sheet',
@@ -196,13 +190,10 @@
{
divider: true,
},
- {
- isQuickExport: true,
- functionName: 'tableReader',
- },
{
label: 'Export',
isExport: true,
+ functionName: 'tableReader',
},
{
label: 'Open as data sheet',
@@ -304,13 +295,10 @@
},
},
},
- {
- isQuickExport: true,
- functionName: 'tableReader',
- },
{
label: 'Export',
isExport: true,
+ functionName: 'tableReader',
},
{
label: 'Drop collection',
@@ -411,40 +399,45 @@
.map(menu => {
if (menu.divider) return menu;
- if (menu.isQuickExport) {
- return createQuickExportMenu(fmt => async () => {
- const coninfo = await getConnectionInfo(data);
- exportQuickExportFile(
- data.pureName,
- {
- functionName: menu.functionName,
- props: {
- connection: {
- ..._.omit(coninfo, ['_id', 'displayName']),
- ..._.pick(data, ['database']),
+ if (menu.isExport) {
+ return createQuickExportMenu(
+ fmt => async () => {
+ const coninfo = await getConnectionInfo(data);
+ exportQuickExportFile(
+ data.pureName,
+ {
+ functionName: menu.functionName,
+ props: {
+ connection: {
+ ..._.omit(coninfo, ['_id', 'displayName']),
+ ..._.pick(data, ['database']),
+ },
+ ..._.pick(data, ['pureName', 'schemaName']),
},
- ..._.pick(data, ['pureName', 'schemaName']),
},
+ fmt
+ );
+ },
+ {
+ onClick: () => {
+ showModal(ImportExportModal, {
+ initialValues: {
+ sourceStorageType: 'database',
+ sourceConnectionId: data.conid,
+ sourceDatabaseName: data.database,
+ sourceSchemaName: data.schemaName,
+ sourceList: [data.pureName],
+ },
+ });
},
- fmt
- );
- });
+ }
+ );
}
return {
text: menu.label,
onClick: async () => {
- if (menu.isExport) {
- showModal(ImportExportModal, {
- initialValues: {
- sourceStorageType: 'database',
- sourceConnectionId: data.conid,
- sourceDatabaseName: data.database,
- sourceSchemaName: data.schemaName,
- sourceList: [data.pureName],
- },
- });
- } else if (menu.isOpenFreeTable) {
+ if (menu.isOpenFreeTable) {
const coninfo = await getConnectionInfo(data);
openNewTab({
title: data.pureName,
diff --git a/packages/web/src/buttons/ToolStripExportButton.svelte b/packages/web/src/buttons/ToolStripExportButton.svelte
index bbbbb4f1d..4e6311e52 100644
--- a/packages/web/src/buttons/ToolStripExportButton.svelte
+++ b/packages/web/src/buttons/ToolStripExportButton.svelte
@@ -23,23 +23,21 @@
import ToolStripCommandButton from './ToolStripCommandButton.svelte';
import ToolStripDropDownButton from './ToolStripDropDownButton.svelte';
- const electron = getElectron();
-
export let quickExportHandlerRef = null;
export let command = 'sqlDataGrid.export';
- export let label = 'Advanced settings';
+ export let label = 'Export';
function getExportMenu() {
return [
- quickExportHandlerRef?.value ? createQuickExportMenuItems(quickExportHandlerRef?.value) : null,
- { divider: true },
- { command, text: label },
+ quickExportHandlerRef?.value
+ ? createQuickExportMenuItems(quickExportHandlerRef?.value, { command })
+ : { command },
];
}
-{#if quickExportHandlerRef && electron}
-
+{#if quickExportHandlerRef}
+
{:else}
{/if}
diff --git a/packages/web/src/datagrid/CollectionDataGridCore.svelte b/packages/web/src/datagrid/CollectionDataGridCore.svelte
index b7ac7db1c..a3f798ba2 100644
--- a/packages/web/src/datagrid/CollectionDataGridCore.svelte
+++ b/packages/web/src/datagrid/CollectionDataGridCore.svelte
@@ -214,15 +214,10 @@
registerQuickExportHandler(quickExportHandler);
- registerMenu(
- { command: 'collectionDataGrid.openQuery', tag: 'export' },
- () => ({
- ...createQuickExportMenu(quickExportHandler),
- tag: 'export',
- }),
-
- { command: 'collectionDataGrid.export', tag: 'export' }
- );
+ registerMenu({ command: 'collectionDataGrid.openQuery', tag: 'export' }, () => ({
+ ...createQuickExportMenu(quickExportHandler, { command: 'collectionDataGrid.export' }),
+ tag: 'export',
+ }));
({
- ...createQuickExportMenu(quickExportHandler),
- tag: 'export',
- }),
- { command: 'jslTableGrid.export', tag: 'export' }
- );
+ registerMenu(() => ({
+ ...createQuickExportMenu(quickExportHandler, { command: 'jslTableGrid.export' }),
+ tag: 'export',
+ }));
({
- ...createQuickExportMenu(quickExportHandler),
+ ...createQuickExportMenu(quickExportHandler, { command: 'sqlDataGrid.export' }),
tag: 'export',
- }),
- { command: 'sqlDataGrid.export', tag: 'export' }
+ })
);
diff --git a/packages/web/src/utility/createQuickExportMenu.ts b/packages/web/src/utility/createQuickExportMenu.ts
index 3d860a2e9..b304881c9 100644
--- a/packages/web/src/utility/createQuickExportMenu.ts
+++ b/packages/web/src/utility/createQuickExportMenu.ts
@@ -1,27 +1,27 @@
-import { ExtensionsDirectory, QuickExportDefinition } from 'dbgate-types';
+import { QuickExportDefinition } from 'dbgate-types';
import { getExtensions } from '../stores';
-import getElectron from './getElectron';
-export function createQuickExportMenuItems(handler: (fmt: QuickExportDefinition) => Function) {
- // const electron = getElectron();
- // if (!electron) {
- // return null;
- // }
+export function createQuickExportMenuItems(handler: (fmt: QuickExportDefinition) => Function, advancedExportMenuItem) {
const extensions = getExtensions();
- console.log('extensions', extensions);
- return extensions.quickExports.map(fmt => ({
- text: fmt.label,
- onClick: handler(fmt),
- }));
+ return [
+ ...extensions.quickExports.map(fmt => ({
+ text: fmt.label,
+ onClick: handler(fmt),
+ })),
+ { divider: true },
+ {
+ text: 'More...',
+ ...advancedExportMenuItem,
+ },
+ ];
}
-export default function createQuickExportMenu(handler: (fmt: QuickExportDefinition) => Function) {
- // const electron = getElectron();
- // if (!electron) {
- // return { _skip: true };
- // }
+export default function createQuickExportMenu(
+ handler: (fmt: QuickExportDefinition) => Function,
+ advancedExportMenuItem
+) {
return {
- text: 'Quick export',
- submenu: createQuickExportMenuItems(handler),
+ text: 'Export',
+ submenu: createQuickExportMenuItems(handler, advancedExportMenuItem),
};
}