export preserves column settings

This commit is contained in:
Jan Prochazka
2022-03-13 14:33:21 +01:00
parent 34dae68a62
commit 84725f0586
6 changed files with 32 additions and 4 deletions

View File

@@ -174,6 +174,7 @@
initialValues.sourceDatabaseName = database;
initialValues.sourceSql = getExportQuery();
initialValues.sourceList = [pureName];
initialValues[`columns_${pureName}`] = display.getExportColumnMap();
showModal(ImportExportModal, { initialValues });
}

View File

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

View File

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

View File

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

View File

@@ -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>