perspective designer - checking columns

This commit is contained in:
Jan Prochazka 2022-08-27 12:27:07 +02:00
parent 1a16d7c69e
commit e124291267
2 changed files with 42 additions and 18 deletions

View File

@ -100,26 +100,32 @@
>
{#if settings?.allowColumnOperations}
<CheckboxField
checked={!!(designer.columns || []).find(
x => x.designerId == designerId && x.columnName == column.columnName && x.isOutput
)}
checked={settings?.isColumnChecked
? settings?.isColumnChecked(designerId, column.columnName)
: !!(designer.columns || []).find(
x => x.designerId == designerId && x.columnName == column.columnName && x.isOutput
)}
on:change={e => {
if (e.target.checked) {
onChangeColumn(
{
...column,
designerId,
},
col => ({ ...col, isOutput: true })
);
if (settings?.setColumnChecked) {
settings?.setColumnChecked(designerId, column.columnName, e.target.checked);
} else {
onChangeColumn(
{
...column,
designerId,
},
col => ({ ...col, isOutput: false })
);
if (e.target.checked) {
onChangeColumn(
{
...column,
designerId,
},
col => ({ ...col, isOutput: true })
);
} else {
onChangeColumn(
{
...column,
designerId,
},
col => ({ ...col, isOutput: false })
);
}
}
}}
/>

View File

@ -90,6 +90,24 @@
return [{ text: 'Remove', onClick: () => onRemoveReference(reference) }];
},
createReferenceText: reference => (reference.isAutoGenerated ? 'FK' : 'Custom'),
isColumnChecked: (designerId, columnName) => {
return config.nodes.find(x => x.designerId == designerId)?.checkedColumns?.includes(columnName);
},
setColumnChecked: (designerId, columnName, value) => {
onChange(cfg => ({
...cfg,
nodes: cfg.nodes.map(node =>
node.designerId == designerId
? {
...node,
checkedColumns: value
? [...(node.checkedColumns || []), columnName]
: (node.checkedColumns || []).filter(x => x != columnName),
}
: node
),
}));
},
}}
referenceComponent={QueryDesignerReference}
value={createDesignerModel(config, dbInfos)}