Merge pull request #409 from dbeaver/feat/boolean-toggle

feat(plugin-data-spreadsheet-new): CB-1047 readonly value panel for boolean columns
This commit is contained in:
Alexey
2021-07-06 19:36:16 +03:00
committed by GitHub
2 changed files with 7 additions and 3 deletions
@@ -16,7 +16,8 @@ import type { IResultSetElementKey } from './IResultSetElementKey';
import { isResultSetContentValue } from './isResultSetContentValue';
import { ResultSetDataAction } from './ResultSetDataAction';
export type IResultSetValue = string | number | Record<string, string | number | Record<string, any> | null> | null;
export type IResultSetValue =
string | number | boolean | Record<string, string | number | Record<string, any> | null> | null;
@databaseDataAction()
export class ResultSetFormatAction extends DatabaseDataAction<any, IDatabaseResultSet>
@@ -71,7 +72,7 @@ export class ResultSetFormatAction extends DatabaseDataAction<any, IDatabaseResu
return JSON.stringify(value);
}
if (typeof value === 'number') {
if (typeof value === 'number' || typeof value === 'boolean') {
return String(value);
}
@@ -17,6 +17,7 @@ import { CodeEditorLoader } from '@cloudbeaver/plugin-codemirror';
import type { IResultSetElementKey } from '../../DatabaseDataModel/Actions/ResultSet/IResultSetElementKey';
import { isResultSetContentValue } from '../../DatabaseDataModel/Actions/ResultSet/isResultSetContentValue';
import { ResultSetDataAction } from '../../DatabaseDataModel/Actions/ResultSet/ResultSetDataAction';
import { ResultSetFormatAction } from '../../DatabaseDataModel/Actions/ResultSet/ResultSetFormatAction';
import { ResultSetSelectAction } from '../../DatabaseDataModel/Actions/ResultSet/ResultSetSelectAction';
import type { IDatabaseResultSet } from '../../DatabaseDataModel/IDatabaseResultSet';
@@ -92,6 +93,7 @@ export const TextValuePresentation: TabContainerPanelComponent<IDataValuePanelPr
const result = model.getResult(resultIndex);
const selection = model.source.getAction(resultIndex, ResultSetSelectAction);
const data = model.source.getAction(resultIndex, ResultSetDataAction);
const selectedCells = selection.getSelectedElements();
const focusCell = selection.getFocusedElement();
@@ -111,7 +113,8 @@ export const TextValuePresentation: TabContainerPanelComponent<IDataValuePanelPr
.getCell(firstSelectedCell.row, firstSelectedCell.column);
stringValue = format.getText(value) ?? '';
readonly = format.isReadOnly(firstSelectedCell);
readonly = format.isReadOnly(firstSelectedCell)
|| data.getColumn(firstSelectedCell.column)?.dataKind?.toLowerCase() === 'boolean';
if (isResultSetContentValue(value)) {
if (value.contentType) {