From aca4372e868a1cbb92c9b5a639e6c4d56813e82b Mon Sep 17 00:00:00 2001 From: Wroud Date: Tue, 29 Sep 2020 13:23:57 +0300 Subject: [PATCH 1/2] fix(plugin-data-spreadsheet): edition cancelling CB-344 --- .../src/AgGridTable/AgGridTableController.ts | 7 +++++++ .../src/TableViewer/TableDataModel/TableEditor.ts | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/webapp/packages/plugin-data-spreadsheet/src/AgGridTable/AgGridTableController.ts b/webapp/packages/plugin-data-spreadsheet/src/AgGridTable/AgGridTableController.ts index e7b407f994..19259f3a40 100644 --- a/webapp/packages/plugin-data-spreadsheet/src/AgGridTable/AgGridTableController.ts +++ b/webapp/packages/plugin-data-spreadsheet/src/AgGridTable/AgGridTableController.ts @@ -99,6 +99,7 @@ export class AgGridTableController implements IInitializableController, IDestruc this.subscriptions.push(gridModel.tableDataModel.onRowsUpdate.subscribe(this.updateRows.bind(this))); this.subscriptions.push(gridModel.tableEditor.onRowsUpdate.subscribe(this.updateRows.bind(this))); + this.subscriptions.push(gridModel.tableEditor.onCancelChanges.subscribe(this.cancelEditing.bind(this))); this.subscriptions.push(gridModel.onChunkSizeChange.subscribe(this.changeChunkSize.bind(this))); this.subscriptions.push(gridModel.onReset.subscribe(this.resetData.bind(this))); } @@ -165,6 +166,12 @@ export class AgGridTableController implements IInitializableController, IDestruc return this.gridModel.isCellEdited(rowIndex, column); } + private cancelEditing() { + if (this.api) { + this.api.stopEditing(true); + } + } + private updateRows(rows: number[]) { if (this.api) { const updatedRows: RowNode[] = []; diff --git a/webapp/packages/plugin-data-viewer/src/TableViewer/TableDataModel/TableEditor.ts b/webapp/packages/plugin-data-viewer/src/TableViewer/TableDataModel/TableEditor.ts index 8d40659787..7502cb0691 100644 --- a/webapp/packages/plugin-data-viewer/src/TableViewer/TableDataModel/TableEditor.ts +++ b/webapp/packages/plugin-data-viewer/src/TableViewer/TableDataModel/TableEditor.ts @@ -18,13 +18,17 @@ import { TableRow, SomeTableRows } from './TableRow'; */ export class TableEditor { readonly onRowsUpdate: Observable + readonly onCancelChanges: Observable @observable private editedRows = new Map(); private rowsUpdateSubject: Subject + private cancelChangesSubject: Subject constructor(private dataModel: TableDataModel) { this.rowsUpdateSubject = new Subject(); + this.cancelChangesSubject = new Subject(); this.onRowsUpdate = this.rowsUpdateSubject.asObservable(); + this.onCancelChanges = this.cancelChangesSubject.asObservable(); } /** @@ -120,6 +124,7 @@ export class TableEditor { const rows = Array.from(this.editedRows.keys()); this.editedRows.clear(); if (!skipUpdate) { + this.cancelChangesSubject.next(null); this.rowsUpdateSubject.next(rows); } } From 095c1c10a5907991770bdb975c6be2f7504f2449 Mon Sep 17 00:00:00 2001 From: Naumov Alexey Date: Tue, 29 Sep 2020 14:17:06 +0300 Subject: [PATCH 2/2] fix(core-connections): disconnect btn disabled logic CB-62 --- .../src/shared/NodesManager/ConnectionDialogsService.ts | 1 + .../core-connections/src/ConnectionsManagerService.ts | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/webapp/packages/core-app/src/shared/NodesManager/ConnectionDialogsService.ts b/webapp/packages/core-app/src/shared/NodesManager/ConnectionDialogsService.ts index 518be18daf..006bf32a81 100644 --- a/webapp/packages/core-app/src/shared/NodesManager/ConnectionDialogsService.ts +++ b/webapp/packages/core-app/src/shared/NodesManager/ConnectionDialogsService.ts @@ -46,6 +46,7 @@ export class ConnectionDialogsService { order: 2, title: 'app_shared_connectionMenu_disconnect', onClick: () => this.connectionsManagerService.closeAllConnections(), + isDisabled: () => !this.connectionsManagerService.hasAnyConnection(true), } ); diff --git a/webapp/packages/core-connections/src/ConnectionsManagerService.ts b/webapp/packages/core-connections/src/ConnectionsManagerService.ts index 8f4eef9d7a..2dd5584f94 100644 --- a/webapp/packages/core-connections/src/ConnectionsManagerService.ts +++ b/webapp/packages/core-connections/src/ConnectionsManagerService.ts @@ -59,7 +59,10 @@ export class ConnectionsManagerService { await this.afterConnectionClose(id); } - hasAnyConnection(): boolean { + hasAnyConnection(connected?: boolean): boolean { + if (connected) { + return Array.from(this.connectionInfo.data.values()).some(connection => connection.connected); + } return !!Array.from(this.connectionInfo.data.values()).length; }