Merge branch 'feature/impexp'

This commit is contained in:
SPRINX0\prochazka
2025-02-27 08:20:05 +01:00
3 changed files with 130 additions and 107 deletions

View File

@@ -694,7 +694,9 @@
targetConnectionId: conid,
targetDatabaseName: extractDbNameFromComposite(database),
targetSchemaName: data.schemaName,
fixedTargetPureName: data.pureName,
sourceList: ['__TEMPLATE__'],
targetName___TEMPLATE__: data.pureName,
// fixedTargetPureName: data.pureName,
});
// showModal(ImportExportModal, {
// initialValues: {

View File

@@ -25,14 +25,26 @@
await (format.addFileToSourceList || addFileToSourceListDefault)(file, newSources, newValues, apiCall);
}
}
newValues['sourceList'] = [...(values.sourceList || []).filter(x => !newSources.includes(x)), ...newSources];
const templateTarget = values['targetName___TEMPLATE__'];
newValues['sourceList'] = [
...(values.sourceList || []).filter(x => !newSources.includes(x) && x != '__TEMPLATE__'),
...newSources,
];
if (preferedStorageType && preferedStorageType != values.sourceStorageType) {
newValues['sourceStorageType'] = preferedStorageType;
}
valuesStore.set({
if (templateTarget) {
const source = newSources[0];
if (source) {
newValues[`targetName_${source}`] = templateTarget;
}
}
const newValuesAll = {
...values,
...newValues,
});
};
delete newValuesAll['targetName___TEMPLATE__'];
valuesStore.set(newValuesAll);
if (setPreviewSource && newSources.length == 1) {
setPreviewSource(newSources[0]);
}
@@ -91,6 +103,8 @@
$: sourceEngine = $sourceConnectionInfo?.engine;
$: sourceList = $values.sourceList;
let targetEditKey = 0;
const previewSource = writable(null);
$: supportsPreview =
@@ -125,6 +139,7 @@
previewSource.set
);
// setFieldValue('sourceList', [...(sourceList || []), file.originalName]);
targetEditKey += 1;
}
$: effectActiveTab = useEffect(() => {
@@ -138,30 +153,30 @@
}
});
const lastSourcesRef = createRef(null);
function setFixedTargetForNewSources(values, valuesStore) {
if (lastSourcesRef.get() && values.fixedTargetPureName) {
const newSources = values.sourceList.filter(x => !lastSourcesRef.get()?.includes(x));
const newValues = {};
for (const source of newSources) {
if (values.fixedTargetPureName) {
if (!values[`targetName_${source}`]) {
newValues[`targetName_${source}`] = values.fixedTargetPureName;
}
if (!values[`actionType_${source}`]) {
newValues[`actionType_${source}`] = 'appendData';
}
}
}
valuesStore.set({
...values,
...newValues,
});
}
lastSourcesRef.set(values.sourceList);
}
// const lastSourcesRef = createRef(null);
// function setFixedTargetForNewSources(values, valuesStore) {
// if (lastSourcesRef.get() && values.fixedTargetPureName) {
// const newSources = values.sourceList.filter(x => !lastSourcesRef.get()?.includes(x));
// const newValues = {};
// for (const source of newSources) {
// if (values.fixedTargetPureName) {
// if (!values[`targetName_${source}`]) {
// newValues[`targetName_${source}`] = values.fixedTargetPureName;
// }
// if (!values[`actionType_${source}`]) {
// newValues[`actionType_${source}`] = 'appendData';
// }
// }
// }
// valuesStore.set({
// ...values,
// ...newValues,
// });
// }
// lastSourcesRef.set(values.sourceList);
// }
$: setFixedTargetForNewSources($values, values);
// $: setFixedTargetForNewSources($values, values);
$effectActiveTab;
</script>
@@ -195,8 +210,10 @@
<div class="m-2">
<div class="title"><FontIcon icon="icon tables" /> Map source tables/files</div>
{#key targetEditKey}
<TableControl
rows={$values.sourceList || []}
passProps={{ targetEditKeyValue: targetEditKey }}
columns={[
{
fieldName: 'source',
@@ -255,7 +272,10 @@
menu={() => {
return $targetDbinfo.tables.map(opt => ({
text: opt.pureName,
onClick: () => setFieldValue(`targetName_${row}`, opt.pureName),
onClick: () => {
setFieldValue(`targetName_${row}`, opt.pureName);
targetEditKey += 1;
},
}));
}}
/>
@@ -278,6 +298,7 @@
</Link>
</svelte:fragment>
</TableControl>
{/key}
</div>
</div>

View File

@@ -24,7 +24,7 @@
</script>
<div class="flex space-between">
<div>{name}</div>
<div>{name == '__TEMPLATE__' ? '(not selected)' : name}</div>
<div class="flex">
{#if obj && !!obj.isDownload}
<div class="icon" on:click={handleChangeUrl} title={obj && obj.fileName}>