{_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 ? _t('importExport.columnsCount', { defaultMessage: '({columnCount} columns)', values: { columnCount } }) : _t('importExport.copyFromSource', { defaultMessage: '(copy from source)' })}
{#if progressHolder[row]?.status == 'running' && isRunning}
{#if progressHolder[row]?.writtenRowCount}
{progressHolder[row]?.writtenRowCount} {_t('importExport.rowsWritten', { defaultMessage: 'rows written' })}
{:else if progressHolder[row]?.readRowCount}
{progressHolder[row]?.readRowCount} {_t('importExport.rowsRead', { defaultMessage: 'rows read' })}
{:else}
{_t('importExport.running', { defaultMessage: 'Running' })}
{/if}
{:else if progressHolder[row]?.status == 'error'}
{_t('common.error', { defaultMessage: '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} {_t('importExport.rowsWritten', { defaultMessage: 'rows written' })}
{:else if progressHolder[row]?.readRowCount}
{progressHolder[row]?.readRowCount} {_t('importExport.rowsWritten', { defaultMessage: 'rows written' })}
{:else}
{_t('common.done', { defaultMessage: 'Done' })}
{/if}
{:else}
{#if progressHolder[row]?.writtenRowCount}
{progressHolder[row]?.writtenRowCount} {_t('importExport.rowsWritten', { defaultMessage: 'rows written' })}
{:else if progressHolder[row]?.readRowCount}
{progressHolder[row]?.readRowCount} {_t('importExport.rowsRead', { defaultMessage: 'rows read' })}
{:else}
{_t('importExport.queued', { defaultMessage: 'Queued' })}
{/if}
{/if}
{/key}
{/key}