From d0dd63bd772fb28a33dde5e3493208372ccb3cde Mon Sep 17 00:00:00 2001 From: Wroud Date: Wed, 1 Dec 2021 13:43:45 +0300 Subject: [PATCH] feat: CB-154 show confirmation for unsaved changes in grid --- .../src/CommonDialog/ConfirmationDialog.tsx | 16 ++++- .../CommonDialog/ConfirmationDialogDelete.tsx | 4 +- .../DataGridContextMenuFilterService.ts | 16 +++-- .../DataGridContextMenuOrderService.ts | 8 ++- .../TableColumnHeader/OrderButton.tsx | 8 ++- .../DatabaseDataModel/DatabaseDataModel.ts | 63 ++++++++++++++++--- .../DatabaseDataModel/DatabaseDataSource.ts | 16 +++-- .../DatabaseDataModel/IDatabaseDataModel.ts | 11 ++++ .../src/ScriptPreview/ScriptPreviewDialog.tsx | 4 +- .../TableFooterMenu/TableFooterMenuService.ts | 2 +- .../src/TableViewer/TableGrid.tsx | 37 ++++++++++- .../TableHeader/TableWhereFilter.tsx | 8 ++- .../plugin-data-viewer/src/locales/en.ts | 2 + .../plugin-data-viewer/src/locales/it.ts | 2 + .../plugin-data-viewer/src/locales/ru.ts | 2 + 15 files changed, 167 insertions(+), 32 deletions(-) diff --git a/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx b/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx index 9ae73d2e8c..a45b6b8d79 100644 --- a/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx +++ b/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx @@ -13,11 +13,12 @@ import { TLocalizationToken, Translate } from '@cloudbeaver/core-localization'; import { useStyles } from '@cloudbeaver/core-theming'; import { CommonDialogWrapper } from './CommonDialog/CommonDialogWrapper'; -import type { DialogComponent } from './CommonDialogService'; +import type { DialogComponent, DialogueStateResult } from './CommonDialogService'; const style = css` footer { align-items: center; + gap: 16px; } fill { @@ -34,9 +35,11 @@ export interface ConfirmationDialogPayload { message: TLocalizationToken; confirmActionText?: TLocalizationToken; cancelActionText?: TLocalizationToken; + extraActionText?: TLocalizationToken; + extraStatus?: string; } -export const ConfirmationDialog: DialogComponent = function ConfirmationDialog({ +export const ConfirmationDialog: DialogComponent = function ConfirmationDialog({ payload, resolveDialog, rejectDialog, @@ -64,6 +67,15 @@ export const ConfirmationDialog: DialogComponent = fu + {payload.extraStatus !== undefined && ( + + )}