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);