From 54976ca21f09778039666b824d9dcede1c8c93eb Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Fri, 27 Mar 2020 21:35:14 +0100 Subject: [PATCH] revert row changes command --- packages/datalib/src/ChangeSet.ts | 10 ++++++++++ packages/web/src/datagrid/DataGridCore.js | 10 ++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/datalib/src/ChangeSet.ts b/packages/datalib/src/ChangeSet.ts index 19c4186ab..eeb534fa0 100644 --- a/packages/datalib/src/ChangeSet.ts +++ b/packages/datalib/src/ChangeSet.ts @@ -179,3 +179,13 @@ export function changeSetToSql(changeSet: ChangeSet): Command[] { ...changeSet.deletes.map(deleteToSql), ]; } + +export function revertChangeSetRowChanges(changeSet: ChangeSet, definition: ChangeSetRowDefinition): ChangeSet { + const [field, item] = findExistingChangeSetItem(changeSet, definition); + if (item) + return { + ...changeSet, + [field]: changeSet[field].filter(x => x != item), + }; + return changeSet; +} diff --git a/packages/web/src/datagrid/DataGridCore.js b/packages/web/src/datagrid/DataGridCore.js index 4df86dec9..7210b16af 100644 --- a/packages/web/src/datagrid/DataGridCore.js +++ b/packages/web/src/datagrid/DataGridCore.js @@ -26,7 +26,7 @@ import DataGridRow from './DataGridRow'; import { countColumnSizes, countVisibleRealColumns } from './gridutil'; import useModalState from '../modals/useModalState'; import ConfirmSqlModal from '../modals/ConfirmSqlModal'; -import { changeSetToSql, createChangeSet } from '@dbgate/datalib'; +import { changeSetToSql, createChangeSet, revertChangeSetRowChanges } from '@dbgate/datalib'; import { scriptToSql } from '@dbgate/sqltree'; import { sleep } from '../utility/common'; @@ -327,6 +327,12 @@ export default function DataGridCore(props) { } } + function revertRowChanges() { + if (loadedRows && currentCell && loadedRows[currentCell[0]]) { + setChangeSet(revertChangeSetRowChanges(changeSet, display.getChangeSetRow(loadedRows[currentCell[0]]))); + } + } + function handleGridWheel(event) { let newFirstVisibleRowScrollIndex = firstVisibleRowScrollIndex; if (event.deltaY > 0) { @@ -391,7 +397,7 @@ export default function DataGridCore(props) { if (event.keyCode == keycodes.r && event.ctrlKey) { event.preventDefault(); - // revertRowChanges(); + revertRowChanges(); // this.saveAndFocus(); }