diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index 4dbd0d081..03595a080 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -764,31 +764,31 @@ }, { onClick: () => { - // openNewTab( - // { - // tabComponent: 'ImportExportTab', - // title: 'Import/Export', - // icon: 'img export', - // }, - // { - // editor: { - // sourceStorageType: 'database', - // sourceConnectionId: data.conid, - // sourceDatabaseName: data.database, - // sourceSchemaName: data.schemaName, - // sourceList: [data.pureName], - // }, - // } - // ); - showModal(ImportExportModal, { - initialValues: { - sourceStorageType: 'database', - sourceConnectionId: data.conid, - sourceDatabaseName: data.database, - sourceSchemaName: data.schemaName, - sourceList: [data.pureName], + openNewTab( + { + tabComponent: 'ImportExportTab', + title: 'Import/Export', + icon: 'img export', }, - }); + { + editor: { + sourceStorageType: 'database', + sourceConnectionId: data.conid, + sourceDatabaseName: data.database, + sourceSchemaName: data.schemaName, + sourceList: [data.pureName], + }, + } + ); + // showModal(ImportExportModal, { + // initialValues: { + // sourceStorageType: 'database', + // sourceConnectionId: data.conid, + // sourceDatabaseName: data.database, + // sourceSchemaName: data.schemaName, + // sourceList: [data.pureName], + // }, + // }); }, } ); diff --git a/packages/web/src/tabs/ImportExportTab.svelte b/packages/web/src/tabs/ImportExportTab.svelte index 2e065d33f..286b2714e 100644 --- a/packages/web/src/tabs/ImportExportTab.svelte +++ b/packages/web/src/tabs/ImportExportTab.svelte @@ -24,6 +24,9 @@ import WidgetColumnBar from '../widgets/WidgetColumnBar.svelte'; import WidgetColumnBarItem from '../widgets/WidgetColumnBarItem.svelte'; import useEditorData from '../query/useEditorData'; + import ToolStripContainer from '../buttons/ToolStripContainer.svelte'; + import ToolStripButton from '../buttons/ToolStripButton.svelte'; + import FormProviderCore from '../forms/FormProviderCore.svelte'; let busy = false; let executeNumber = 0; @@ -39,10 +42,24 @@ const refreshArchiveFolderRef = createRef(null); + const formValues = writable({ + sourceStorageType: 'database', + targetStorageType: getDefaultFileFormat($extensions).storageType, + targetArchiveFolder: $currentArchive, + sourceArchiveFolder: $currentArchive, + ...detectCurrentTarget(), + ...initialValues, + }); + const { editorState, editorValue, setEditorData } = useEditorData({ tabid, + onInitialData: value => { + $formValues = value; + }, }); + $: setEditorData($formValues); + function detectCurrentTarget() { if (!importToCurrentTarget) return {}; @@ -94,7 +111,8 @@ }; const handleGenerateScript = async e => { - const code = await createImpExpScript($extensions, e.detail, undefined, true); + const values = $formValues; + const code = await createImpExpScript($extensions, values, undefined, true); openNewTab( { title: 'Shell #', @@ -107,7 +125,7 @@ const handleExecute = async e => { if (busy) return; - const values = e.detail; + const values = $formValues; busy = true; const script = await createImpExpScript($extensions, values); executeNumber += 1; @@ -130,49 +148,41 @@ }; - - - - + + + + + - {#if busy} - - {/if} - + {#if busy} + + {/if} + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + {#if busy} + Stop + {:else} + Run + {/if} + Generate script + +