diff --git a/packages/web/src/appobj/ArchiveFileAppObject.svelte b/packages/web/src/appobj/ArchiveFileAppObject.svelte index d50b2cb3c..cb2072222 100644 --- a/packages/web/src/appobj/ArchiveFileAppObject.svelte +++ b/packages/web/src/appobj/ArchiveFileAppObject.svelte @@ -169,7 +169,7 @@ { text: 'Delete', onClick: handleDelete }, { text: 'Rename', onClick: handleRename }, data.fileType == 'jsonl' && - createQuickExportMenu($extensions, fmt => async () => { + createQuickExportMenu(fmt => async () => { exportElectronFile( data.fileName, { diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index 2cd312c91..60f0586d2 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -412,7 +412,7 @@ if (menu.divider) return menu; if (menu.isQuickExport) { - return createQuickExportMenu(getExtensions(), fmt => async () => { + return createQuickExportMenu(fmt => async () => { const coninfo = await getConnectionInfo(data); exportElectronFile( data.pureName, diff --git a/packages/web/src/buttons/ToolStripExportButton.svelte b/packages/web/src/buttons/ToolStripExportButton.svelte index 1d90d5e8e..bbbbb4f1d 100644 --- a/packages/web/src/buttons/ToolStripExportButton.svelte +++ b/packages/web/src/buttons/ToolStripExportButton.svelte @@ -1,6 +1,5 @@ diff --git a/packages/web/src/datagrid/SqlDataGridCore.svelte b/packages/web/src/datagrid/SqlDataGridCore.svelte index aba9182a3..35f4005a1 100644 --- a/packages/web/src/datagrid/SqlDataGridCore.svelte +++ b/packages/web/src/datagrid/SqlDataGridCore.svelte @@ -66,12 +66,11 @@ diff --git a/packages/web/src/tabs/TableDataTab.svelte b/packages/web/src/tabs/TableDataTab.svelte index 764c8a336..35ade672e 100644 --- a/packages/web/src/tabs/TableDataTab.svelte +++ b/packages/web/src/tabs/TableDataTab.svelte @@ -50,14 +50,11 @@ import { showSnackbarSuccess } from '../utility/snackbar'; import StatusBarTabItem from '../widgets/StatusBarTabItem.svelte'; import openNewTab from '../utility/openNewTab'; - import { getBoolSettingsValue } from '../settings/settingsTools'; import { setContext } from 'svelte'; import { apiCall } from '../utility/api'; import { getLocalStorage, setLocalStorage } from '../utility/storageCache'; import ToolStripContainer from '../buttons/ToolStripContainer.svelte'; import ToolStripCommandButton from '../buttons/ToolStripCommandButton.svelte'; - import ToolStripDropDownButton from '../buttons/ToolStripDropDownButton.svelte'; - import { createQuickExportMenuItems } from '../utility/createQuickExportMenu'; import ToolStripExportButton, { createQuickExportHandlerRef } from '../buttons/ToolStripExportButton.svelte'; export let tabid; diff --git a/packages/web/src/utility/createQuickExportMenu.ts b/packages/web/src/utility/createQuickExportMenu.ts index 5872ade54..3d860a2e9 100644 --- a/packages/web/src/utility/createQuickExportMenu.ts +++ b/packages/web/src/utility/createQuickExportMenu.ts @@ -1,30 +1,27 @@ import { ExtensionsDirectory, QuickExportDefinition } from 'dbgate-types'; +import { getExtensions } from '../stores'; import getElectron from './getElectron'; -export function createQuickExportMenuItems( - extensions: ExtensionsDirectory, - handler: (fmt: QuickExportDefinition) => Function -) { - const electron = getElectron(); - if (!electron) { - return null; - } +export function createQuickExportMenuItems(handler: (fmt: QuickExportDefinition) => Function) { + // const electron = getElectron(); + // if (!electron) { + // return null; + // } + const extensions = getExtensions(); + console.log('extensions', extensions); return extensions.quickExports.map(fmt => ({ text: fmt.label, onClick: handler(fmt), })); } -export default function createQuickExportMenu( - extensions: ExtensionsDirectory, - handler: (fmt: QuickExportDefinition) => Function -) { - const electron = getElectron(); - if (!electron) { - return { _skip: true }; - } +export default function createQuickExportMenu(handler: (fmt: QuickExportDefinition) => Function) { + // const electron = getElectron(); + // if (!electron) { + // return { _skip: true }; + // } return { text: 'Quick export', - submenu: createQuickExportMenuItems(extensions, handler), + submenu: createQuickExportMenuItems(handler), }; } diff --git a/packages/web/src/utility/exportFileTools.ts b/packages/web/src/utility/exportFileTools.ts index 2bb288d5c..1fd8588d9 100644 --- a/packages/web/src/utility/exportFileTools.ts +++ b/packages/web/src/utility/exportFileTools.ts @@ -6,14 +6,21 @@ import { apiCall, apiOff, apiOn } from './api'; export async function exportElectronFile(dataName, reader, format) { const electron = getElectron(); - const filters = [{ name: format.label, extensions: [format.extension] }]; - const filePath = await electron.showSaveDialog({ - filters, - defaultPath: `${dataName}.${format.extension}`, - properties: ['showOverwriteConfirmation'], - }); - if (!filePath) return; + let filePath; + let pureFileName; + if (electron) { + const filters = [{ name: format.label, extensions: [format.extension] }]; + filePath = electron.showSaveDialog({ + filters, + defaultPath: `${dataName}.${format.extension}`, + properties: ['showOverwriteConfirmation'], + }); + } else { + const resp = await apiCall('files/generate-uploads-file'); + filePath = resp.filePath; + pureFileName = resp.fileName; + } const script = new ScriptWriter(); @@ -50,6 +57,10 @@ export async function exportElectronFile(dataName, reader, format) { apiOff(`runner-done-${runid}`, handleRunnerDone); if (isCanceled) showSnackbarError(`Export ${dataName} canceled`); else showSnackbarInfo(`Export ${dataName} finished`); + + if (!electron) { + window.open(`${resolveApi()}/uploads/get?file=${pureFileName}`, '_blank'); + } } apiOn(`runner-done-${runid}`, handleRunnerDone);