diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte index 084ef9b7b..32ce58356 100644 --- a/packages/web/src/icons/FontIcon.svelte +++ b/packages/web/src/icons/FontIcon.svelte @@ -210,6 +210,10 @@ 'icon expand-all': 'mdi mdi-expand-all', 'icon collapse-all': 'mdi mdi-collapse-all', + 'icon transaction': 'mdi mdi-code-json', + 'icon commit': 'mdi mdi-check-circle', + 'icon rollback': 'mdi mdi-close-circle', + 'img ok': 'mdi mdi-check-circle color-icon-green', 'img ok-inv': 'mdi mdi-check-circle color-icon-inv-green', 'img alert': 'mdi mdi-alert-circle color-icon-blue', diff --git a/packages/web/src/tabs/QueryTab.svelte b/packages/web/src/tabs/QueryTab.svelte index 5f9a61940..44fbc568c 100644 --- a/packages/web/src/tabs/QueryTab.svelte +++ b/packages/web/src/tabs/QueryTab.svelte @@ -60,6 +60,32 @@ getCurrentEditor() != null && !getCurrentEditor()?.isBusy() && getCurrentEditor()?.hasConnection(), onClick: () => getCurrentEditor().executeCurrent(), }); + registerCommand({ + id: 'query.beginTransaction', + category: 'Query', + name: 'Begin transaction', + icon: 'icon transaction', + testEnabled: () => !!getCurrentEditor(), + onClick: () => getCurrentEditor().beginTransaction(), + }); + registerCommand({ + id: 'query.commitTransaction', + category: 'Query', + name: 'Commit transaction', + toolbarName: 'Commit', + icon: 'icon commit', + testEnabled: () => !!getCurrentEditor(), + onClick: () => getCurrentEditor().commitTransaction(), + }); + registerCommand({ + id: 'query.rollbackTransaction', + category: 'Query', + name: 'Rollback transaction', + toolbarName: 'Rollback', + icon: 'icon rollback', + testEnabled: () => !!getCurrentEditor(), + onClick: () => getCurrentEditor().rollbackTransaction(), + }); export const allowSwitchDatabase = props => true; @@ -602,6 +628,9 @@ > AI Assistant + + + diff --git a/packages/web/src/tabs/TableDataTab.svelte b/packages/web/src/tabs/TableDataTab.svelte index 2f0177e27..3502356fb 100644 --- a/packages/web/src/tabs/TableDataTab.svelte +++ b/packages/web/src/tabs/TableDataTab.svelte @@ -322,11 +322,13 @@ buttonLabel={autoRefreshStarted ? `Refresh (every ${autoRefreshInterval}s)` : null} commands={['dataGrid.refresh', ...createAutoRefreshMenu()]} hideDisabled + data-testid="TableDataTab_refreshGrid" />