diff --git a/packages/web/src/datagrid/CollectionDataGridCore.svelte b/packages/web/src/datagrid/CollectionDataGridCore.svelte
index 06bff26d8..5d968e603 100644
--- a/packages/web/src/datagrid/CollectionDataGridCore.svelte
+++ b/packages/web/src/datagrid/CollectionDataGridCore.svelte
@@ -166,7 +166,7 @@
display,
macroPreview,
macroValues,
- selectedCellsPublished
+ selectedCellsPublished()
);
// $: console.log('GRIDER', grider);
// $: if (onChangeGrider) onChangeGrider(grider);
@@ -237,6 +237,7 @@
{dataPageAvailable}
{loadRowCount}
bind:loadedRows
+ bind:selectedCellsPublished
frameSelection={!!macroPreview}
{grider}
/>
diff --git a/packages/web/src/datagrid/DataGrid.svelte b/packages/web/src/datagrid/DataGrid.svelte
index fddcc2bb9..6e2c7f42c 100644
--- a/packages/web/src/datagrid/DataGrid.svelte
+++ b/packages/web/src/datagrid/DataGrid.svelte
@@ -188,7 +188,7 @@
-
+
diff --git a/packages/web/src/tabs/CollectionDataTab.svelte b/packages/web/src/tabs/CollectionDataTab.svelte
index fe37774cb..d19b66cae 100644
--- a/packages/web/src/tabs/CollectionDataTab.svelte
+++ b/packages/web/src/tabs/CollectionDataTab.svelte
@@ -29,6 +29,7 @@
TableFormViewDisplay,
CollectionGridDisplay,
changeSetContainsChanges,
+ runMacroOnChangeSet,
} from 'dbgate-datalib';
import { findEngineDriver } from 'dbgate-tools';
import { writable } from 'svelte/store';
@@ -127,6 +128,13 @@
}
}
+ function handleRunMacro(macro, params, cells) {
+ const newChangeSet = runMacroOnChangeSet(macro, params, cells, $changeSetStore?.value, display);
+ if (newChangeSet) {
+ dispatchChangeSet({ type: 'set', value: newChangeSet });
+ }
+ }
+
registerMenu({ command: 'collectionTable.save', tag: 'save' });
const collapsedLeftColumnStore = writable(false);
@@ -148,4 +156,7 @@
gridCoreComponent={CollectionDataGridCore}
jsonViewComponent={CollectionJsonView}
isDynamicStructure
+ showMacros
+ macroCondition={macro => macro.type == 'transformValue'}
+ onRunMacro={handleRunMacro}
/>