diff --git a/packages/api/src/controllers/files.js b/packages/api/src/controllers/files.js index 14ea526a5..6d82c2e29 100644 --- a/packages/api/src/controllers/files.js +++ b/packages/api/src/controllers/files.js @@ -141,8 +141,8 @@ module.exports = { }, generateUploadsFile_meta: true, - async generateUploadsFile() { - const fileName = `${uuidv1()}.html`; + async generateUploadsFile({ extension }) { + const fileName = `${uuidv1()}.${extension || 'html'}`; return { fileName, filePath: path.join(uploadsdir(), fileName), diff --git a/packages/web/src/appobj/ArchiveFileAppObject.svelte b/packages/web/src/appobj/ArchiveFileAppObject.svelte index cb2072222..ecb13d8ff 100644 --- a/packages/web/src/appobj/ArchiveFileAppObject.svelte +++ b/packages/web/src/appobj/ArchiveFileAppObject.svelte @@ -70,7 +70,7 @@ import { archiveFilesAsDataSheets, currentArchive, extensions, getCurrentDatabase } from '../stores'; import createQuickExportMenu from '../utility/createQuickExportMenu'; - import { exportElectronFile } from '../utility/exportFileTools'; + import { exportQuickExportFile } from '../utility/exportFileTools'; import openNewTab from '../utility/openNewTab'; import AppObjectCore from './AppObjectCore.svelte'; import getConnectionLabel from '../utility/getConnectionLabel'; @@ -170,7 +170,7 @@ { text: 'Rename', onClick: handleRename }, data.fileType == 'jsonl' && createQuickExportMenu(fmt => async () => { - exportElectronFile( + exportQuickExportFile( data.fileName, { functionName: 'archiveReader', diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index 60f0586d2..fd4cb4154 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -414,7 +414,7 @@ if (menu.isQuickExport) { return createQuickExportMenu(fmt => async () => { const coninfo = await getConnectionInfo(data); - exportElectronFile( + exportQuickExportFile( data.pureName, { functionName: menu.functionName, @@ -620,7 +620,7 @@ import SqlGeneratorModal from '../modals/SqlGeneratorModal.svelte'; import getConnectionLabel from '../utility/getConnectionLabel'; import getElectron from '../utility/getElectron'; - import { exportElectronFile } from '../utility/exportFileTools'; + import { exportQuickExportFile } from '../utility/exportFileTools'; import createQuickExportMenu from '../utility/createQuickExportMenu'; import ConfirmSqlModal from '../modals/ConfirmSqlModal.svelte'; import { alterDatabaseDialog, renameDatabaseObjectDialog } from '../utility/alterDatabaseTools'; diff --git a/packages/web/src/datagrid/CollectionDataGridCore.svelte b/packages/web/src/datagrid/CollectionDataGridCore.svelte index f9040c97b..b7ac7db1c 100644 --- a/packages/web/src/datagrid/CollectionDataGridCore.svelte +++ b/packages/web/src/datagrid/CollectionDataGridCore.svelte @@ -122,7 +122,7 @@ import { registerMenu } from '../utility/contextMenu'; import createActivator, { getActiveComponent } from '../utility/createActivator'; import createQuickExportMenu from '../utility/createQuickExportMenu'; - import { exportElectronFile } from '../utility/exportFileTools'; + import { exportQuickExportFile } from '../utility/exportFileTools'; import { getConnectionInfo } from '../utility/metadataLoaders'; import openNewTab from '../utility/openNewTab'; import ChangeSetGrider from './ChangeSetGrider'; @@ -196,7 +196,7 @@ const quickExportHandler = fmt => async () => { const coninfo = await getConnectionInfo({ conid }); - exportElectronFile( + exportQuickExportFile( pureName || 'Data', { functionName: 'queryReader', diff --git a/packages/web/src/datagrid/JslDataGridCore.svelte b/packages/web/src/datagrid/JslDataGridCore.svelte index 337eb6eba..a188b75d0 100644 --- a/packages/web/src/datagrid/JslDataGridCore.svelte +++ b/packages/web/src/datagrid/JslDataGridCore.svelte @@ -48,7 +48,7 @@ import { registerMenu } from '../utility/contextMenu'; import createActivator, { getActiveComponent } from '../utility/createActivator'; import createQuickExportMenu from '../utility/createQuickExportMenu'; - import { exportElectronFile } from '../utility/exportFileTools'; + import { exportQuickExportFile } from '../utility/exportFileTools'; import useEffect from '../utility/useEffect'; import LoadingDataGridCore from './LoadingDataGridCore.svelte'; @@ -104,7 +104,7 @@ const quickExportHandler = fmt => async () => { const archiveMatch = jslid.match(/^archive:\/\/([^/]+)\/(.*)$/); if (archiveMatch) { - exportElectronFile( + exportQuickExportFile( archiveMatch[2], { functionName: 'archiveReader', @@ -116,7 +116,7 @@ fmt ); } else { - exportElectronFile( + exportQuickExportFile( 'Query', { functionName: 'jslDataReader', diff --git a/packages/web/src/datagrid/SqlDataGridCore.svelte b/packages/web/src/datagrid/SqlDataGridCore.svelte index 35f4005a1..c0fb43667 100644 --- a/packages/web/src/datagrid/SqlDataGridCore.svelte +++ b/packages/web/src/datagrid/SqlDataGridCore.svelte @@ -76,7 +76,7 @@ import { registerMenu } from '../utility/contextMenu'; import createActivator, { getActiveComponent } from '../utility/createActivator'; import createQuickExportMenu from '../utility/createQuickExportMenu'; - import { exportElectronFile } from '../utility/exportFileTools'; + import { exportQuickExportFile } from '../utility/exportFileTools'; import { getConnectionInfo } from '../utility/metadataLoaders'; import openNewTab from '../utility/openNewTab'; import ChangeSetGrider from './ChangeSetGrider'; @@ -181,7 +181,7 @@ const quickExportHandler = fmt => async () => { const coninfo = await getConnectionInfo({ conid }); - exportElectronFile( + exportQuickExportFile( pureName || 'Data', { functionName: 'queryReader', diff --git a/packages/web/src/utility/exportFileTools.ts b/packages/web/src/utility/exportFileTools.ts index 1fd8588d9..91cf2c798 100644 --- a/packages/web/src/utility/exportFileTools.ts +++ b/packages/web/src/utility/exportFileTools.ts @@ -4,7 +4,7 @@ import { showSnackbar, showSnackbarInfo, showSnackbarError, closeSnackbar } from import resolveApi from './resolveApi'; import { apiCall, apiOff, apiOn } from './api'; -export async function exportElectronFile(dataName, reader, format) { +export async function exportQuickExportFile(dataName, reader, format) { const electron = getElectron(); let filePath; @@ -17,7 +17,7 @@ export async function exportElectronFile(dataName, reader, format) { properties: ['showOverwriteConfirmation'], }); } else { - const resp = await apiCall('files/generate-uploads-file'); + const resp = await apiCall('files/generate-uploads-file', { extension: format.extension }); filePath = resp.filePath; pureFileName = resp.fileName; }