mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 17:06:01 +00:00
export preserves column settings
This commit is contained in:
@@ -174,6 +174,7 @@
|
||||
initialValues.sourceDatabaseName = database;
|
||||
initialValues.sourceSql = getExportQuery();
|
||||
initialValues.sourceList = [pureName];
|
||||
initialValues[`columns_${pureName}`] = display.getExportColumnMap();
|
||||
showModal(ImportExportModal, { initialValues });
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
import RowsArrayGrider from './RowsArrayGrider';
|
||||
|
||||
export let jslid;
|
||||
export let display;
|
||||
|
||||
export const activator = createActivator('JslDataGridCore', false);
|
||||
|
||||
@@ -93,10 +94,12 @@
|
||||
initialValues.sourceStorageType = 'archive';
|
||||
initialValues.sourceArchiveFolder = archiveMatch[1];
|
||||
initialValues.sourceList = [archiveMatch[2]];
|
||||
initialValues[`columns_${archiveMatch[2]}`] = display.getExportColumnMap();
|
||||
} else {
|
||||
initialValues.sourceStorageType = 'jsldata';
|
||||
initialValues.sourceJslId = jslid;
|
||||
initialValues.sourceList = ['query-data'];
|
||||
initialValues[`columns_query-data`] = display.getExportColumnMap();
|
||||
}
|
||||
showModal(ImportExportModal, { initialValues });
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@
|
||||
initialValues.sourceDatabaseName = database;
|
||||
initialValues.sourceSql = display.getExportQuery();
|
||||
initialValues.sourceList = display.baseTableOrSimilar ? [display.baseTableOrSimilar.pureName] : [];
|
||||
initialValues[`columns_${pureName}`] = display.getExportColumnMap();
|
||||
showModal(ImportExportModal, { initialValues });
|
||||
}
|
||||
|
||||
|
||||
@@ -186,10 +186,16 @@ export default async function createImpExpScript(extensions, values, addEditorIn
|
||||
// @ts-ignore
|
||||
script.assign(targetVar, ...getTargetExpr(extensions, sourceName, values, targetConnection, targetDriver));
|
||||
|
||||
const colmap = (values[`columns_${sourceName}`] || []).filter(x => !x.skip);
|
||||
let colmap = values[`columns_${sourceName}`] || [];
|
||||
if (!colmap.find(x => !x.ignore)) {
|
||||
// all values are ignored, ignore column map
|
||||
colmap = [];
|
||||
}
|
||||
colmap = colmap.filter(x => !x.skip);
|
||||
let colmapVar = null;
|
||||
if (colmap.length > 0) {
|
||||
colmapVar = script.allocVariable();
|
||||
colmap = colmap.map(x => _.omit(x, ['ignore']));
|
||||
script.assignValue(colmapVar, colmap);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,19 +36,22 @@
|
||||
<svelte:fragment slot="4" let:row let:index>
|
||||
<CheckboxField
|
||||
checked={!row['skip']}
|
||||
on:change={e => (value = (value || []).map((x, i) => (i == index ? { ...x, skip: !e.target.checked } : x)))}
|
||||
on:change={e =>
|
||||
(value = (value || []).map((x, i) => (i == index ? { ...x, skip: !e.target.checked, ignore: false } : x)))}
|
||||
/>
|
||||
</svelte:fragment>
|
||||
<svelte:fragment slot="1" let:row let:index>
|
||||
<TextField
|
||||
value={row['src']}
|
||||
on:change={e => (value = (value || []).map((x, i) => (i == index ? { ...x, src: e.target.value } : x)))}
|
||||
on:change={e =>
|
||||
(value = (value || []).map((x, i) => (i == index ? { ...x, src: e.target.value, ignore: false } : x)))}
|
||||
/>
|
||||
</svelte:fragment>
|
||||
<svelte:fragment slot="2" let:row let:index>
|
||||
<TextField
|
||||
value={row['dst']}
|
||||
on:change={e => (value = (value || []).map((x, i) => (i == index ? { ...x, dst: e.target.value } : x)))}
|
||||
on:change={e =>
|
||||
(value = (value || []).map((x, i) => (i == index ? { ...x, dst: e.target.value, ignore: false } : x)))}
|
||||
/>
|
||||
</svelte:fragment>
|
||||
<svelte:fragment slot="3" let:index>
|
||||
|
||||
Reference in New Issue
Block a user