{_t('importExport.mapSourceTablesFiles', { defaultMessage: "Map source tables/files" })}
{#key targetEditKey}
{#key progressHolder}
({ name: row }),
},
{
fieldName: 'action',
header: _t('importExport.action', { defaultMessage: "Action" }),
component: SourceAction,
getProps: row => ({ name: row, targetDbinfo }),
},
{
fieldName: 'target',
header: _t('importExport.target', { defaultMessage: "Target" }),
slot: 1,
},
supportsPreview && {
fieldName: 'preview',
header: _t('importExport.preview', { defaultMessage: "Preview" }),
slot: 0,
},
!!progressHolder && {
fieldName: 'status',
header: _t('importExport.status', { defaultMessage: "Status" }),
slot: 3,
},
{
fieldName: 'columns',
header: _t('importExport.columns', { defaultMessage: "Columns" }),
slot: 2,
},
]}
>
{#if supportsPreview}
{
// @ts-ignore
if (e.target.checked) $previewSource = row;
else $previewSource = null;
}}
/>
{/if}
setFieldValue(
`targetName_${row}`,
// @ts-ignore
e.target.value
)}
data-testid={`ImportExportConfigurator_targetName_${row}`}
/>
{#if $targetDbinfo}
{
return $targetDbinfo.tables.map(opt => ({
text: opt.pureName,
onClick: () => {
setFieldValue(`targetName_${row}`, opt.pureName);
targetEditKey += 1;
},
}));
}}
/>
{/if}
{@const columnCount = ($values[`columns_${row}`] || []).filter(x => !x.skip).length}
{
const targetNameLower = ($values[`targetName_${row}`] || row)?.toLowerCase();
showModal(ColumnMapModal, {
initialValue: $values[`columns_${row}`],
sourceTableInfo: $sourceDbinfo?.tables?.find(x => x.pureName?.toLowerCase() == row?.toLowerCase()),
targetTableInfo: $targetDbinfo?.tables?.find(x => x.pureName?.toLowerCase() == targetNameLower),
onConfirm: value => {
setFieldValue(`columns_${row}`, value);
targetEditKey += 1;
},
});
}}
>{columnCount > 0 ? `(${columnCount} columns)` : '(copy from source)'}
{#if progressHolder[row]?.status == 'running' && isRunning}
{#if progressHolder[row]?.writtenRowCount}
{progressHolder[row]?.writtenRowCount} rows writtem
{:else if progressHolder[row]?.readRowCount}
{progressHolder[row]?.readRowCount} rows read
{:else}
Running
{/if}
{:else if progressHolder[row]?.status == 'error'}
Error
{#if progressHolder[row]?.errorMessage}
showModal(ErrorMessageModal, { message: progressHolder[row]?.errorMessage })}
style="cursor: pointer"
data-testid={`ImportExportConfigurator_errorInfoIcon_${row}`}
/>
{/if}
{:else if progressHolder[row]?.status == 'done'}
{#if progressHolder[row]?.writtenRowCount}
{progressHolder[row]?.writtenRowCount} rows written
{:else if progressHolder[row]?.readRowCount}
{progressHolder[row]?.readRowCount} rows written
{:else}
Done
{/if}
{:else}
{#if progressHolder[row]?.writtenRowCount}
{progressHolder[row]?.writtenRowCount} rows writtem
{:else if progressHolder[row]?.readRowCount}
{progressHolder[row]?.readRowCount} rows read
{:else}
Queued
{/if}
{/if}
{/key}
{/key}