diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index e0e451cc5..2e34f9239 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -618,15 +618,22 @@ }); } else if (menu.isImport) { const { conid, database } = data; - showModal(ImportExportModal, { - initialValues: { - sourceStorageType: getDefaultFileFormat(getExtensions()).storageType, - targetStorageType: 'database', - targetConnectionId: conid, - targetDatabaseName: database, - fixedTargetPureName: data.pureName, - }, + openImportExportTab({ + sourceStorageType: getDefaultFileFormat(getExtensions()).storageType, + targetStorageType: 'database', + targetConnectionId: conid, + targetDatabaseName: database, + fixedTargetPureName: data.pureName, }); + // showModal(ImportExportModal, { + // initialValues: { + // sourceStorageType: getDefaultFileFormat(getExtensions()).storageType, + // targetStorageType: 'database', + // targetConnectionId: conid, + // targetDatabaseName: database, + // fixedTargetPureName: data.pureName, + // }, + // }); } else { openDatabaseObjectDetail( menu.tab, diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index 34f2f7bef..eeb689a37 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -44,6 +44,7 @@ import ErrorMessageModal from '../modals/ErrorMessageModal.svelte'; import NewCollectionModal from '../modals/NewCollectionModal.svelte'; import ConfirmModal from '../modals/ConfirmModal.svelte'; import localforage from 'localforage'; +import { openImportExportTab } from '../utility/importExportTools'; // function themeCommand(theme: ThemeDefinition) { // return { @@ -483,10 +484,18 @@ registerCommand({ toolbar: true, icon: 'icon import', onClick: () => - showModal(ImportExportModal, { - importToCurrentTarget: true, - initialValues: { sourceStorageType: getDefaultFileFormat(get(extensions)).storageType }, - }), + openImportExportTab( + { + sourceStorageType: getDefaultFileFormat(get(extensions)).storageType, + }, + { + importToCurrentTarget: true, + } + ), + // showModal(ImportExportModal, { + // importToCurrentTarget: true, + // initialValues: { sourceStorageType: getDefaultFileFormat(get(extensions)).storageType }, + // }), }); registerCommand({ @@ -595,8 +604,6 @@ registerCommand({ onClick: () => getElectron().send('check-for-updates'), }); - - export function registerFileCommands({ idPrefix, category, diff --git a/packages/web/src/datagrid/CollectionDataGridCore.svelte b/packages/web/src/datagrid/CollectionDataGridCore.svelte index b8fbf7e75..8151d67cb 100644 --- a/packages/web/src/datagrid/CollectionDataGridCore.svelte +++ b/packages/web/src/datagrid/CollectionDataGridCore.svelte @@ -136,6 +136,7 @@ import LoadingDataGridCore from './LoadingDataGridCore.svelte'; import { mongoFilterBehaviour, standardFilterBehaviours } from 'dbgate-tools'; + import { openImportExportTab } from '../utility/importExportTools'; export let conid; export let display; @@ -207,7 +208,8 @@ initialValues.sourceQueryType = coninfo.isReadOnly ? 'json' : 'native'; initialValues.sourceList = [pureName]; initialValues[`columns_${pureName}`] = display.getExportColumnMap(); - showModal(ImportExportModal, { initialValues }); + openImportExportTab(initialValues); + // showModal(ImportExportModal, { initialValues }); } export function openQuery() { diff --git a/packages/web/src/datagrid/JslDataGridCore.svelte b/packages/web/src/datagrid/JslDataGridCore.svelte index 18d0cfb33..83f817621 100644 --- a/packages/web/src/datagrid/JslDataGridCore.svelte +++ b/packages/web/src/datagrid/JslDataGridCore.svelte @@ -59,6 +59,7 @@ import LoadingDataGridCore from './LoadingDataGridCore.svelte'; import RowsArrayGrider from './RowsArrayGrider'; + import { openImportExportTab } from '../utility/importExportTools'; export let jslid; export let display; @@ -152,7 +153,8 @@ initialValues.sourceList = ['query-data']; initialValues[`columns_query-data`] = display.getExportColumnMap(); } - showModal(ImportExportModal, { initialValues }); + openImportExportTab(initialValues); + // showModal(ImportExportModal, { initialValues }); } const quickExportHandler = fmt => async () => { diff --git a/packages/web/src/datagrid/SqlDataGridCore.svelte b/packages/web/src/datagrid/SqlDataGridCore.svelte index df8157d86..64cbd9afe 100644 --- a/packages/web/src/datagrid/SqlDataGridCore.svelte +++ b/packages/web/src/datagrid/SqlDataGridCore.svelte @@ -84,6 +84,7 @@ import LoadingDataGridCore from './LoadingDataGridCore.svelte'; import hasPermission from '../utility/hasPermission'; + import { openImportExportTab } from '../utility/importExportTools'; export let conid; export let display; @@ -145,7 +146,8 @@ initialValues.sourceQueryType = coninfo.isReadOnly ? 'json' : 'native'; initialValues.sourceList = display.baseTableOrSimilar ? [display.baseTableOrSimilar.pureName] : []; initialValues[`columns_${pureName}`] = display.getExportColumnMap(); - showModal(ImportExportModal, { initialValues }); + openImportExportTab(initialValues); + // showModal(ImportExportModal, { initialValues }); } export function openQuery() { diff --git a/packages/web/src/tabs/ShellTab.svelte b/packages/web/src/tabs/ShellTab.svelte index 05a4eea74..1e865a47a 100644 --- a/packages/web/src/tabs/ShellTab.svelte +++ b/packages/web/src/tabs/ShellTab.svelte @@ -60,6 +60,7 @@ import { showSnackbarError } from '../utility/snackbar'; import useEffect from '../utility/useEffect'; import useTimerLabel from '../utility/useTimerLabel'; + import { openImportExportTab } from '../utility/importExportTools'; export let tabid; @@ -156,7 +157,8 @@ export function openWizard() { const jsonTextMatch = ($editorValue || '').match(configRegex); if (jsonTextMatch) { - showModal(ImportExportModal, { initialValues: JSON.parse(jsonTextMatch[1]) }); + openImportExportTab(JSON.parse(jsonTextMatch[1])); + // showModal(ImportExportModal, { initialValues: JSON.parse(jsonTextMatch[1]) }); } else { showSnackbarError('No wizard info found'); } diff --git a/packages/web/src/utility/importExportTools.ts b/packages/web/src/utility/importExportTools.ts index 597fcd89b..c7fa89dac 100644 --- a/packages/web/src/utility/importExportTools.ts +++ b/packages/web/src/utility/importExportTools.ts @@ -1,11 +1,12 @@ import openNewTab from './openNewTab'; -export function openImportExportTab(editorProps) { +export function openImportExportTab(editorProps, additionalProps = {}) { openNewTab( { tabComponent: 'ImportExportTab', title: 'Import/Export', icon: 'img export', + ...additionalProps, }, { editor: editorProps, diff --git a/packages/web/src/utility/openElectronFile.ts b/packages/web/src/utility/openElectronFile.ts index a7f1e4fef..a07782e79 100644 --- a/packages/web/src/utility/openElectronFile.ts +++ b/packages/web/src/utility/openElectronFile.ts @@ -5,13 +5,14 @@ import ImportExportModal from '../modals/ImportExportModal.svelte'; import getElectron from './getElectron'; import { currentDatabase, extensions, getCurrentDatabase } from '../stores'; import { getUploadListener } from './uploadFiles'; -import {getConnectionLabel, getDatabaseFileLabel } from 'dbgate-tools'; +import { getConnectionLabel, getDatabaseFileLabel } from 'dbgate-tools'; import { apiCall } from './api'; import openNewTab from './openNewTab'; import { openJsonDocument } from '../tabs/JsonTab.svelte'; import { SAVED_FILE_HANDLERS } from '../appobj/SavedFileAppObject.svelte'; import _ from 'lodash'; import ErrorMessageModal from '../modals/ErrorMessageModal.svelte'; +import { openImportExportTab } from './importExportTools'; export function canOpenByElectron(file, extensions) { if (!file) return false; @@ -178,17 +179,30 @@ export function openElectronFileCore(filePath, extensions) { shortName: parsed.name, }); } else { - showModal(ImportExportModal, { - openedFile: { - filePath, - storageType: format.storageType, - shortName: parsed.name, - }, - importToCurrentTarget: true, - initialValues: { + openImportExportTab( + { sourceStorageType: format.storageType, }, - }); + { + openedFile: { + filePath, + storageType: format.storageType, + shortName: parsed.name, + }, + } + ); + + // showModal(ImportExportModal, { + // openedFile: { + // filePath, + // storageType: format.storageType, + // shortName: parsed.name, + // }, + // importToCurrentTarget: true, + // initialValues: { + // sourceStorageType: format.storageType, + // }, + // }); } } } diff --git a/packages/web/src/utility/uploadFiles.ts b/packages/web/src/utility/uploadFiles.ts index 88d6a8d89..7fe245df3 100644 --- a/packages/web/src/utility/uploadFiles.ts +++ b/packages/web/src/utility/uploadFiles.ts @@ -8,6 +8,7 @@ import { showModal } from '../modals/modalTools'; import ImportExportModal from '../modals/ImportExportModal.svelte'; import ErrorMessageModal from '../modals/ErrorMessageModal.svelte'; import openNewTab from './openNewTab'; +import { openImportExportTab } from './importExportTools'; let uploadListener; @@ -79,13 +80,23 @@ export default function uploadFiles(files) { uploadListener(fileData); } else { if (findFileFormat(ext, fileData.storageType)) { - showModal(ImportExportModal, { - uploadedFile: fileData, - importToCurrentTarget: true, - initialValues: { + openImportExportTab( + { sourceStorageType: fileData.storageType, }, - }); + { + uploadedFile: fileData, + importToCurrentTarget: true, + } + ); + + // showModal(ImportExportModal, { + // uploadedFile: fileData, + // importToCurrentTarget: true, + // initialValues: { + // sourceStorageType: fileData.storageType, + // }, + // }); } }