From 22dc10c7d0520ccff8348fbb9f38086e1135a776 Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Tue, 20 Aug 2024 00:54:13 +0200 Subject: [PATCH] [UnifiedDataTable] Add density configuration (#188495) ## Summary Resolves https://github.com/elastic/kibana/issues/186007. Adds a density configuration for the `UnifiedDataTable`. By default, this configuration will not be shown unless an `onUpdateDataGridDensity`handler is passed to the `UnifiedDataTable`. It defaults to `compact`. It persists to `localStorage` when updated. https://github.com/user-attachments/assets/8523301c-7cf5-4854-bbbc-b6767d996c32 ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Bhavya RM --- packages/kbn-unified-data-table/README.md | 3 +- packages/kbn-unified-data-table/index.ts | 2 +- .../compare_documents.test.tsx | 2 +- .../compare_documents/compare_documents.tsx | 4 +- .../src/components/data_table.test.tsx | 44 +++--- .../src/components/data_table.tsx | 100 +++++++++---- .../src/components/source_document.tsx | 4 +- .../kbn-unified-data-table/src/constants.ts | 29 +++- .../src/hooks/use_data_grid_density.test.tsx | 75 ++++++++++ .../src/hooks/use_data_grid_density.ts | 68 +++++++++ packages/kbn-unified-data-table/src/types.ts | 3 + .../src/utils/get_render_cell_value.test.tsx | 6 + .../src/utils/get_render_cell_value.tsx | 4 + .../check_registered_types.test.ts | 2 +- .../components/layout/discover_documents.tsx | 46 ++++-- .../discover_app_state_container.ts | 5 + .../state_management/discover_state.test.ts | 1 + .../utils/get_state_defaults.test.ts | 2 + .../utils/get_state_defaults.ts | 4 + .../utils/update_saved_search.ts | 1 + .../embeddable/__mocks__/get_mocked_api.ts | 3 +- .../search_embeddable_grid_component.tsx | 6 +- .../discover/public/embeddable/constants.ts | 1 + .../initialize_search_embeddable_api.tsx | 5 +- .../discover/public/embeddable/types.ts | 1 + .../content_management/v1/cm_services.ts | 7 + .../common/saved_searches_utils.ts | 1 + .../common/service/get_saved_searches.test.ts | 2 + .../service/saved_searches_utils.test.ts | 2 + .../common/service/saved_searches_utils.ts | 1 + src/plugins/saved_search/common/types.ts | 2 + .../saved_searches/to_saved_search.test.ts | 131 +++++++++--------- .../saved_search_storage.ts | 1 + .../server/saved_objects/schema.ts | 6 + .../server/saved_objects/search.ts | 8 ++ src/plugins/saved_search/tsconfig.json | 1 + .../group2_data_grid3/_data_grid_density.ts | 96 +++++++++++++ .../apps/discover/group2_data_grid3/index.ts | 1 + .../apps/discover/group5/_url_state.ts | 2 + .../dashboard_embed_mode_scrolling.png | Bin 82090 -> 85725 bytes test/functional/services/data_grid.ts | 12 ++ .../timeline/unified_components/utils.test.ts | 2 +- .../timeline/unified_components/utils.ts | 7 +- 43 files changed, 558 insertions(+), 145 deletions(-) create mode 100644 packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx create mode 100644 packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts create mode 100644 test/functional/apps/discover/group2_data_grid3/_data_grid_density.ts diff --git a/packages/kbn-unified-data-table/README.md b/packages/kbn-unified-data-table/README.md index 7a2db17781ad1..0049949f74490 100644 --- a/packages/kbn-unified-data-table/README.md +++ b/packages/kbn-unified-data-table/README.md @@ -50,7 +50,8 @@ Props description: | **visibleCellActions** | (optional)number | An optional value for a custom number of the visible cell actions in the table. By default is up to 3. | | **externalCustomRenderers** | (optional)Record React.ReactNode>; | An optional settings for a specified fields rendering like links. Applied only for the listed fields rendering. | | **consumer** | (optional)string | Name of the UnifiedDataTable consumer component or application. | -| **componentsTourSteps** | (optional)Record | Optional key/value pairs to set guided onboarding steps ids for a data table components included to guided tour. | +| **componentsTourSteps** | (optional)Record | Optional key/value pairs to set guided onboarding steps ids for a data table components included to guided tour. |~~~~ +| **onUpdateDataGridDensity** | (optional)(DataGridDensity) => void; | Optional callback when the data grid density configuration is modified. | *Required **services** list: ``` diff --git a/packages/kbn-unified-data-table/index.ts b/packages/kbn-unified-data-table/index.ts index 7dace83c3774e..9c62ef1a28abe 100644 --- a/packages/kbn-unified-data-table/index.ts +++ b/packages/kbn-unified-data-table/index.ts @@ -14,7 +14,7 @@ export { } from './src/components/row_height_settings'; export { getDisplayedColumns } from './src/utils/columns'; export { getTextBasedColumnsMeta } from './src/utils/get_columns_meta'; -export { ROWS_HEIGHT_OPTIONS } from './src/constants'; +export { ROWS_HEIGHT_OPTIONS, DataGridDensity } from './src/constants'; export { JSONCodeEditorCommonMemoized } from './src/components/json_code_editor/json_code_editor_common'; diff --git a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx index 63856a2c82ac2..92f072c2da472 100644 --- a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx +++ b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.test.tsx @@ -108,7 +108,7 @@ describe('CompareDocuments', () => { "data-test-subj": "unifiedDataTableCompareDocuments", "gridStyle": Object { "border": "horizontal", - "cellPadding": "l", + "cellPadding": "s", "fontSize": "s", "header": "underline", "rowHover": "highlight", diff --git a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx index 5679ac0f236b9..e636a88d1f841 100644 --- a/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx +++ b/packages/kbn-unified-data-table/src/components/compare_documents/compare_documents.tsx @@ -24,7 +24,7 @@ import { AdditionalFieldGroups } from '@kbn/unified-field-list'; import { memoize } from 'lodash'; import React, { useMemo, useState } from 'react'; import useLocalStorage from 'react-use/lib/useLocalStorage'; -import { GRID_STYLE } from '../../constants'; +import { DATA_GRID_STYLE_DEFAULT } from '../../constants'; import { ComparisonControls } from './comparison_controls'; import { renderComparisonToolbar } from './comparison_toolbar'; import { useComparisonCellValue } from './hooks/use_comparison_cell_value'; @@ -55,7 +55,7 @@ export interface CompareDocumentsProps { const COMPARISON_ROW_HEIGHT: EuiDataGridRowHeightsOptions = { defaultHeight: 'auto' }; const COMPARISON_IN_MEMORY: EuiDataGridInMemory = { level: 'sorting' }; -const COMPARISON_GRID_STYLE: EuiDataGridStyle = { ...GRID_STYLE, stripes: undefined }; +const COMPARISON_GRID_STYLE: EuiDataGridStyle = { ...DATA_GRID_STYLE_DEFAULT, stripes: undefined }; const getStorageKey = (consumer: string, key: string) => `${consumer}:dataGridComparison${key}`; diff --git a/packages/kbn-unified-data-table/src/components/data_table.test.tsx b/packages/kbn-unified-data-table/src/components/data_table.test.tsx index f5749eaee4bf0..2538d3df38778 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.test.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.test.tsx @@ -423,16 +423,18 @@ describe('UnifiedDataTable', () => { "additionalControls": null, "showColumnSelector": false, "showDisplaySelector": Object { - "additionalDisplaySettings": , + "additionalDisplaySettings": + + , "allowDensity": false, "allowResetButton": false, "allowRowHeight": false, @@ -455,15 +457,17 @@ describe('UnifiedDataTable', () => { "additionalControls": null, "showColumnSelector": false, "showDisplaySelector": Object { - "additionalDisplaySettings": , + "additionalDisplaySettings": + + , "allowDensity": false, "allowResetButton": false, "allowRowHeight": false, @@ -741,7 +745,7 @@ describe('UnifiedDataTable', () => { expect(grid.hasClass('euiDataGrid--bordersHorizontal')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--fontSizeSmall')).toBeTruthy(); - expect(grid.hasClass('euiDataGrid--paddingLarge')).toBeTruthy(); + expect(grid.hasClass('euiDataGrid--paddingSmall')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--rowHoverHighlight')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--headerUnderline')).toBeTruthy(); expect(grid.hasClass('euiDataGrid--stripes')).toBeTruthy(); diff --git a/packages/kbn-unified-data-table/src/components/data_table.tsx b/packages/kbn-unified-data-table/src/components/data_table.tsx index 5068115fed76d..778c41c6f5365 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.tsx @@ -26,9 +26,10 @@ import { EuiDataGridInMemory, EuiDataGridControlColumn, EuiDataGridCustomBodyProps, - EuiDataGridToolBarVisibilityDisplaySelectorOptions, EuiDataGridStyle, EuiDataGridProps, + EuiHorizontalRule, + EuiDataGridToolBarVisibilityDisplaySelectorOptions, } from '@elastic/eui'; import type { DataView } from '@kbn/data-views-plugin/public'; import { @@ -45,6 +46,7 @@ import type { ThemeServiceStart } from '@kbn/react-kibana-context-common'; import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; import type { DocViewFilterFn } from '@kbn/unified-doc-viewer/types'; import { AdditionalFieldGroups } from '@kbn/unified-field-list'; +import { DATA_GRID_DENSITY_STYLE_MAP, useDataGridDensity } from '../hooks/use_data_grid_density'; import { UnifiedDataTableSettings, ValueToStringConverter, @@ -70,10 +72,11 @@ import { getSchemaDetectors } from './data_table_schema'; import { DataTableDocumentToolbarBtn } from './data_table_document_selection'; import { useRowHeightsOptions } from '../hooks/use_row_heights_options'; import { + DATA_GRID_STYLE_DEFAULT, DEFAULT_ROWS_PER_PAGE, - GRID_STYLE, ROWS_HEIGHT_OPTIONS, toolbarVisibility as toolbarVisibilityDefaults, + DataGridDensity, } from '../constants'; import { UnifiedDataTableFooter } from './data_table_footer'; import { UnifiedDataTableAdditionalDisplaySettings } from './data_table_additional_display_settings'; @@ -232,6 +235,14 @@ export interface UnifiedDataTableProps { * Update row height state */ onUpdateRowHeight?: (rowHeight: number) => void; + /** + * Density from state + */ + dataGridDensityState?: DataGridDensity; + /** + * Callback when the data grid density configuration is modified + */ + onUpdateDataGridDensity?: (dataGridDensity: DataGridDensity) => void; /** * Is text base lang mode enabled */ @@ -468,6 +479,8 @@ export const UnifiedDataTable = ({ cellContext, renderCellPopover, getRowIndicator, + dataGridDensityState, + onUpdateDataGridDensity, }: UnifiedDataTableProps) => { const { fieldFormats, toastNotifications, dataViewFieldEditor, uiSettings, storage, data } = services; @@ -610,6 +623,23 @@ export const UnifiedDataTable = ({ return getShouldShowFieldHandler(dataViewFields, dataView, showMultiFields); }, [dataView, showMultiFields]); + const { dataGridDensity, onChangeDataGridDensity } = useDataGridDensity({ + storage, + consumer, + dataGridDensityState, + onUpdateDataGridDensity, + }); + + const gridStyle = useMemo( + () => ({ + ...DATA_GRID_STYLE_DEFAULT, + ...DATA_GRID_DENSITY_STYLE_MAP[dataGridDensity], + onChange: onChangeDataGridDensity, + ...gridStyleOverride, + }), + [dataGridDensity, onChangeDataGridDensity, gridStyleOverride] + ); + /** * Cell rendering */ @@ -625,6 +655,7 @@ export const UnifiedDataTable = ({ maxEntries: maxDocFieldsDisplayed, externalCustomRenderers, isPlainRecord, + isCompressed: dataGridDensity === DataGridDensity.COMPACT, }), [ dataView, @@ -635,6 +666,7 @@ export const UnifiedDataTable = ({ fieldFormats, externalCustomRenderers, isPlainRecord, + dataGridDensity, ] ); @@ -950,34 +982,41 @@ export const UnifiedDataTable = ({ [renderCustomToolbar, additionalControls] ); - const showDisplaySelector = useMemo(() => { - const options: EuiDataGridToolBarVisibilityDisplaySelectorOptions = {}; - - if (onUpdateRowHeight) { - options.allowDensity = false; - } - - if (onUpdateRowHeight || onUpdateHeaderRowHeight || onUpdateSampleSize) { - options.allowRowHeight = false; - options.allowResetButton = false; - options.additionalDisplaySettings = ( - - ); + const showDisplaySelector = useMemo((): + | EuiDataGridToolBarVisibilityDisplaySelectorOptions + | undefined => { + if ( + !onUpdateDataGridDensity && + !onUpdateRowHeight && + !onUpdateHeaderRowHeight && + !onUpdateSampleSize + ) { + return; } - return Object.keys(options).length ? options : undefined; + return { + allowDensity: Boolean(onUpdateDataGridDensity), + allowRowHeight: false, + allowResetButton: false, + additionalDisplaySettings: ( + <> + {onUpdateDataGridDensity ? : null} + + + ), + }; }, [ headerRowHeight, headerRowHeightLines, @@ -992,6 +1031,7 @@ export const UnifiedDataTable = ({ rowHeight, rowHeightLines, sampleSizeState, + onUpdateDataGridDensity, ]); const inMemory = useMemo(() => { @@ -1101,6 +1141,8 @@ export const UnifiedDataTable = ({ /> ) : ( diff --git a/packages/kbn-unified-data-table/src/constants.ts b/packages/kbn-unified-data-table/src/constants.ts index c7cf1793039a5..e795b170dbc0b 100644 --- a/packages/kbn-unified-data-table/src/constants.ts +++ b/packages/kbn-unified-data-table/src/constants.ts @@ -5,13 +5,12 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import { EuiDataGridStyle } from '@elastic/eui'; +import type { EuiDataGridStyle } from '@elastic/eui'; export const DEFAULT_CONTROL_COLUMN_WIDTH = 24; export const DEFAULT_ROWS_PER_PAGE = 100; export const MAX_LOADED_GRID_ROWS = 10000; - export const ROWS_PER_PAGE_OPTIONS = [10, 25, 50, DEFAULT_ROWS_PER_PAGE, 250, 500]; /** * Row height might be a value from -1 to 20 @@ -29,13 +28,27 @@ export const defaultMonacoEditorWidth = 370; export const defaultTimeColumnWidth = 212; export const kibanaJSON = 'kibana-json'; -export const GRID_STYLE: EuiDataGridStyle = { - border: 'horizontal', +export const DATA_GRID_STYLE_COMPACT: EuiDataGridStyle = { + cellPadding: 's', fontSize: 's', +}; + +export const DATA_GRID_STYLE_NORMAL: EuiDataGridStyle = { + cellPadding: 'm', + fontSize: 'm', +}; + +export const DATA_GRID_STYLE_EXPANDED: EuiDataGridStyle = { cellPadding: 'l', + fontSize: 'l', +}; + +export const DATA_GRID_STYLE_DEFAULT: EuiDataGridStyle = { + ...DATA_GRID_STYLE_COMPACT, + border: 'horizontal', + stripes: true, rowHover: 'highlight', header: 'underline', - stripes: true, }; export const toolbarVisibility = { @@ -44,3 +57,9 @@ export const toolbarVisibility = { allowReorder: true, }, }; + +export enum DataGridDensity { + COMPACT = 'compact', + NORMAL = 'normal', + EXPANDED = 'expanded', +} diff --git a/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx new file mode 100644 index 0000000000000..8a6e3c96477ea --- /dev/null +++ b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.test.tsx @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Storage } from '@kbn/kibana-utils-plugin/public'; +import { renderHook } from '@testing-library/react-hooks'; +import { useDataGridDensity } from './use_data_grid_density'; +import { DATA_GRID_STYLE_EXPANDED, DataGridDensity } from '../constants'; + +const localStorageMock = { + get: jest.fn(), + set: jest.fn(), +}; + +describe('useDataGridDensity', () => { + beforeEach(() => { + localStorageMock.get.mockClear(); + localStorageMock.set.mockClear(); + }); + + it('should read from local storage', () => { + localStorageMock.get.mockReturnValue(DataGridDensity.NORMAL); + const { result } = renderHook(() => + useDataGridDensity({ + storage: localStorageMock as unknown as Storage, + consumer: 'discover', + }) + ); + const { + current: { dataGridDensity }, + } = result; + expect(dataGridDensity).toBe(DataGridDensity.NORMAL); + }); + + it('should update local storage when onChangeDataGridDensity is called', () => { + const { result } = renderHook(() => + useDataGridDensity({ + storage: localStorageMock as unknown as Storage, + consumer: 'discover', + }) + ); + const { + current: { onChangeDataGridDensity }, + } = result; + + onChangeDataGridDensity(DATA_GRID_STYLE_EXPANDED); + + expect(localStorageMock.set).toBeCalledWith( + 'discover:dataGridDensity', + DataGridDensity.EXPANDED + ); + }); + + it('should call provided onUpdateDataGridDensity with the updated value', () => { + const onUpdateDataGridDensity = jest.fn(); + const { result } = renderHook(() => + useDataGridDensity({ + storage: localStorageMock as unknown as Storage, + consumer: 'discover', + onUpdateDataGridDensity, + }) + ); + const { + current: { onChangeDataGridDensity }, + } = result; + + onChangeDataGridDensity(DATA_GRID_STYLE_EXPANDED); + + expect(onUpdateDataGridDensity).toBeCalledWith(DataGridDensity.EXPANDED); + }); +}); diff --git a/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts new file mode 100644 index 0000000000000..a53f95e23fb85 --- /dev/null +++ b/packages/kbn-unified-data-table/src/hooks/use_data_grid_density.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { EuiDataGridStyle } from '@elastic/eui'; +import type { Storage } from '@kbn/kibana-utils-plugin/public'; +import { useCallback, useMemo } from 'react'; +import { + DATA_GRID_STYLE_COMPACT, + DATA_GRID_STYLE_EXPANDED, + DATA_GRID_STYLE_NORMAL, + DataGridDensity, +} from '../constants'; + +export const DATA_GRID_DENSITY_STYLE_MAP = { + [DataGridDensity.COMPACT]: DATA_GRID_STYLE_COMPACT, + [DataGridDensity.NORMAL]: DATA_GRID_STYLE_NORMAL, + [DataGridDensity.EXPANDED]: DATA_GRID_STYLE_EXPANDED, +}; + +interface UseDataGridDensityProps { + storage: Storage; + consumer: string; + dataGridDensityState?: DataGridDensity; + onUpdateDataGridDensity?: (density: DataGridDensity) => void; +} + +export const DATA_GRID_DENSITY_STORAGE_KEY = 'dataGridDensity'; + +export function getDensityFromStyle(style: EuiDataGridStyle) { + return style.cellPadding === DATA_GRID_STYLE_COMPACT.cellPadding && + style.fontSize === DATA_GRID_STYLE_COMPACT.fontSize + ? DataGridDensity.COMPACT + : style.cellPadding === DATA_GRID_STYLE_NORMAL.cellPadding && + style.fontSize === DATA_GRID_STYLE_NORMAL.fontSize + ? DataGridDensity.NORMAL + : DataGridDensity.EXPANDED; +} + +export const useDataGridDensity = ({ + storage, + consumer, + dataGridDensityState, + onUpdateDataGridDensity, +}: UseDataGridDensityProps) => { + const storageKey = `${consumer}:${DATA_GRID_DENSITY_STORAGE_KEY}`; + const dataGridDensity = useMemo(() => { + return dataGridDensityState ?? storage.get(storageKey) ?? DataGridDensity.COMPACT; + }, [dataGridDensityState, storage, storageKey]); + + const onChangeDataGridDensity = useCallback( + (gridStyle: EuiDataGridStyle) => { + const newDensity = getDensityFromStyle(gridStyle); + storage.set(storageKey, newDensity); + onUpdateDataGridDensity?.(newDensity); + }, + [storageKey, storage, onUpdateDataGridDensity] + ); + + return { + dataGridDensity, + onChangeDataGridDensity, + }; +}; diff --git a/packages/kbn-unified-data-table/src/types.ts b/packages/kbn-unified-data-table/src/types.ts index b08818e1a861a..f06c4c4096c0c 100644 --- a/packages/kbn-unified-data-table/src/types.ts +++ b/packages/kbn-unified-data-table/src/types.ts @@ -19,6 +19,8 @@ import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; import type { EuiDataGridControlColumn } from '@elastic/eui/src/components/datagrid/data_grid_types'; import type { DatatableColumnMeta } from '@kbn/expressions-plugin/common'; +export type { DataGridDensity } from './constants'; + /** * User configurable state of data grid, persisted in saved search */ @@ -58,6 +60,7 @@ export type DataGridCellValueElementProps = EuiDataGridCellValueElementProps & { dataView: DataView; fieldFormats: FieldFormatsStart; closePopover: () => void; + isCompressed?: boolean; }; export type CustomCellRenderer = Record< diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx index 04d160bef5c2e..5d9894e9bcd2c 100644 --- a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx +++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx @@ -224,6 +224,7 @@ describe('Unified data table cell rendering', function () { maxEntries: 100, shouldShowFieldHandler: showFieldHandler, row: rows[0], + isCompressed: true, }); }); @@ -329,6 +330,7 @@ describe('Unified data table cell rendering', function () { shouldShowFieldHandler: showFieldHandler, row: rows[0], isPlainRecord: true, + isCompressed: true, }); }); @@ -367,6 +369,7 @@ describe('Unified data table cell rendering', function () { maxEntries: 100, shouldShowFieldHandler: showFieldHandler, row: rows[0], + isCompressed: true, }); }); @@ -406,6 +409,7 @@ describe('Unified data table cell rendering', function () { maxEntries: 1, shouldShowFieldHandler: showFieldHandler, row: rows[0], + isCompressed: true, }); }); @@ -519,6 +523,7 @@ describe('Unified data table cell rendering', function () { shouldShowFieldHandler: showFieldHandler, useTopLevelObjectColumns: true, row: rows[0], + isCompressed: true, }); }); @@ -559,6 +564,7 @@ describe('Unified data table cell rendering', function () { shouldShowFieldHandler: showFieldHandler, useTopLevelObjectColumns: true, row: rows[0], + isCompressed: true, }); }); diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx index 6a10b0950946d..1b856d665d301 100644 --- a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx +++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx @@ -36,6 +36,7 @@ export const getRenderCellValueFn = ({ maxEntries, externalCustomRenderers, isPlainRecord, + isCompressed = true, }: { dataView: DataView; rows: DataTableRecord[] | undefined; @@ -46,6 +47,7 @@ export const getRenderCellValueFn = ({ maxEntries: number; externalCustomRenderers?: CustomCellRenderer; isPlainRecord?: boolean; + isCompressed?: boolean; }) => { return function UnifiedDataTableRenderCellValue({ rowIndex, @@ -95,6 +97,7 @@ export const getRenderCellValueFn = ({ dataView={dataView} fieldFormats={fieldFormats} closePopover={closePopover} + isCompressed={isCompressed} /> ); @@ -134,6 +137,7 @@ export const getRenderCellValueFn = ({ shouldShowFieldHandler={shouldShowFieldHandler} maxEntries={maxEntries} isPlainRecord={isPlainRecord} + isCompressed={isCompressed} /> ); } diff --git a/src/core/server/integration_tests/ci_checks/saved_objects/check_registered_types.test.ts b/src/core/server/integration_tests/ci_checks/saved_objects/check_registered_types.test.ts index d01051ed5fc78..bcc7d33f38c39 100644 --- a/src/core/server/integration_tests/ci_checks/saved_objects/check_registered_types.test.ts +++ b/src/core/server/integration_tests/ci_checks/saved_objects/check_registered_types.test.ts @@ -147,7 +147,7 @@ describe('checking migration metadata changes on all registered SO types', () => "risk-engine-configuration": "aea0c371a462e6d07c3ceb3aff11891b47feb09d", "rules-settings": "892a2918ebaeba809a612b8d97cec0b07c800b5f", "sample-data-telemetry": "37441b12f5b0159c2d6d5138a494c9f440e950b5", - "search": "4579401660a4089d5122b2fc8624825cb97b0480", + "search": "0aa6eefb37edd3145be340a8b67779c2ca578b22", "search-session": "b2fcd840e12a45039ada50b1355faeafa39876d1", "search-telemetry": "b568601618744720b5662946d3103e3fb75fe8ee", "security-rule": "07abb4d7e707d91675ec0495c73816394c7b521f", diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx index e1b5636d010b1..ea8b8ead62455 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx @@ -27,6 +27,7 @@ import { type DataTableColumnsMeta, getTextBasedColumnsMeta, getRenderCustomToolbarWithElements, + type DataGridDensity, } from '@kbn/unified-data-table'; import { DOC_HIDE_TIME_COLUMN_SETTING, @@ -110,19 +111,29 @@ function DiscoverDocumentsComponent({ const documents$ = stateContainer.dataState.data$.documents$; const savedSearch = useSavedSearchInitial(); const { dataViews, capabilities, uiSettings, uiActions } = services; - const [query, sort, rowHeight, headerRowHeight, rowsPerPage, grid, columns, sampleSizeState] = - useAppStateSelector((state) => { - return [ - state.query, - state.sort, - state.rowHeight, - state.headerRowHeight, - state.rowsPerPage, - state.grid, - state.columns, - state.sampleSize, - ]; - }); + const [ + query, + sort, + rowHeight, + headerRowHeight, + rowsPerPage, + grid, + columns, + sampleSizeState, + density, + ] = useAppStateSelector((state) => { + return [ + state.query, + state.sort, + state.rowHeight, + state.headerRowHeight, + state.rowsPerPage, + state.grid, + state.columns, + state.sampleSize, + state.density, + ]; + }); const expandedDoc = useInternalStateSelector((state) => state.expandedDoc); const isEsqlMode = useIsEsqlMode(); const useNewFieldsApi = useMemo(() => !uiSettings.get(SEARCH_FIELDS_FROM_SOURCE), [uiSettings]); @@ -219,6 +230,13 @@ function DiscoverDocumentsComponent({ [stateContainer] ); + const onUpdateDensity = useCallback( + (newDensity: DataGridDensity) => { + stateContainer.appState.update({ density: newDensity }); + }, + [stateContainer] + ); + // should be aligned with embeddable `showTimeCol` prop const showTimeCol = useMemo( () => !uiSettings.get(DOC_HIDE_TIME_COLUMN_SETTING, false), @@ -437,6 +455,8 @@ function DiscoverDocumentsComponent({ customGridColumnsConfiguration={customGridColumnsConfiguration} rowAdditionalLeadingControls={rowAdditionalLeadingControls} additionalFieldGroups={additionalFieldGroups} + dataGridDensityState={density} + onUpdateDataGridDensity={onUpdateDensity} /> diff --git a/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts b/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts index f364530faba5e..35463c091109d 100644 --- a/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts +++ b/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts @@ -26,6 +26,7 @@ import { IKbnUrlStateStorage, ISyncStateRef, syncState } from '@kbn/kibana-utils import { isEqual, omit } from 'lodash'; import { connectToQueryState, syncGlobalQueryStateWithUrl } from '@kbn/data-plugin/public'; import type { DiscoverGridSettings } from '@kbn/saved-search-plugin/common'; +import type { DataGridDensity } from '@kbn/unified-data-table'; import type { DiscoverServices } from '../../../build_services'; import { addLog } from '../../../utils/add_log'; import { cleanupUrlState } from './utils/cleanup_url_state'; @@ -155,6 +156,10 @@ export interface DiscoverAppState { * Breakdown field of chart */ breakdownField?: string; + /** + * Density of table + */ + density?: DataGridDensity; } export interface AppStateUrl extends Omit { diff --git a/src/plugins/discover/public/application/main/state_management/discover_state.test.ts b/src/plugins/discover/public/application/main/state_management/discover_state.test.ts index d9acde1645fcf..cd8e2c47bd02f 100644 --- a/src/plugins/discover/public/application/main/state_management/discover_state.test.ts +++ b/src/plugins/discover/public/application/main/state_management/discover_state.test.ts @@ -456,6 +456,7 @@ describe('Test discover state actions', () => { "columns": Array [ "default_column", ], + "density": undefined, "headerRowHeight": undefined, "hideAggregatedPreview": undefined, "hideChart": undefined, diff --git a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts index 86d9ffe99c244..8e264ea779c33 100644 --- a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts +++ b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts @@ -32,6 +32,7 @@ describe('getStateDefaults', () => { "dataViewId": "index-pattern-with-timefield-id", "type": "dataView", }, + "density": undefined, "filters": undefined, "grid": undefined, "headerRowHeight": undefined, @@ -71,6 +72,7 @@ describe('getStateDefaults', () => { "dataViewId": "the-data-view-id", "type": "dataView", }, + "density": undefined, "filters": undefined, "grid": undefined, "headerRowHeight": undefined, diff --git a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts index 7e44adf64dbc1..81ec433da249a 100644 --- a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts +++ b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts @@ -81,6 +81,7 @@ export function getStateDefaults({ sampleSize: undefined, grid: undefined, breakdownField: undefined, + density: undefined, }; if (savedSearch.grid) { @@ -113,6 +114,9 @@ export function getStateDefaults({ if (savedSearch.breakdownField) { defaultState.breakdownField = savedSearch.breakdownField; } + if (savedSearch.density) { + defaultState.density = savedSearch.density; + } return defaultState; } diff --git a/src/plugins/discover/public/application/main/state_management/utils/update_saved_search.ts b/src/plugins/discover/public/application/main/state_management/utils/update_saved_search.ts index 6638e511f6b2f..b767cde6c4a92 100644 --- a/src/plugins/discover/public/application/main/state_management/utils/update_saved_search.ts +++ b/src/plugins/discover/public/application/main/state_management/utils/update_saved_search.ts @@ -69,6 +69,7 @@ export function updateSavedSearch({ savedSearch.headerRowHeight = state.headerRowHeight; savedSearch.rowsPerPage = state.rowsPerPage; savedSearch.sampleSize = state.sampleSize; + savedSearch.density = state.density; if (state.viewMode) { savedSearch.viewMode = state.viewMode; diff --git a/src/plugins/discover/public/embeddable/__mocks__/get_mocked_api.ts b/src/plugins/discover/public/embeddable/__mocks__/get_mocked_api.ts index 0c324930e1f85..ea5ba55d8eccf 100644 --- a/src/plugins/discover/public/embeddable/__mocks__/get_mocked_api.ts +++ b/src/plugins/discover/public/embeddable/__mocks__/get_mocked_api.ts @@ -17,7 +17,7 @@ import { DatatableColumnMeta } from '@kbn/expressions-plugin/common'; import { FetchContext } from '@kbn/presentation-publishing'; import { DiscoverGridSettings, SavedSearch, VIEW_MODE } from '@kbn/saved-search-plugin/common'; import { SearchResponseIncompleteWarning } from '@kbn/search-response-warnings/src/types'; -import { SortOrder } from '@kbn/unified-data-table'; +import type { SortOrder, DataGridDensity } from '@kbn/unified-data-table'; export const getMockedSearchApi = ({ searchSource, @@ -52,6 +52,7 @@ export const getMockedSearchApi = ({ headerRowHeight: new BehaviorSubject(savedSearch.headerRowHeight), rowsPerPage: new BehaviorSubject(savedSearch.rowsPerPage), sampleSize: new BehaviorSubject(savedSearch.sampleSize), + density: new BehaviorSubject(savedSearch.density), grid: new BehaviorSubject(savedSearch.grid), rows: new BehaviorSubject([]), totalHitCount: new BehaviorSubject(0), diff --git a/src/plugins/discover/public/embeddable/components/search_embeddable_grid_component.tsx b/src/plugins/discover/public/embeddable/components/search_embeddable_grid_component.tsx index 55ed59d30f1ae..6f6ce57a78fd0 100644 --- a/src/plugins/discover/public/embeddable/components/search_embeddable_grid_component.tsx +++ b/src/plugins/discover/public/embeddable/components/search_embeddable_grid_component.tsx @@ -22,7 +22,7 @@ import { } from '@kbn/presentation-publishing'; import { SortOrder } from '@kbn/saved-search-plugin/public'; import { SearchResponseIncompleteWarning } from '@kbn/search-response-warnings/src/types'; -import { columnActions, DataLoadingState } from '@kbn/unified-data-table'; +import { columnActions, DataGridDensity, DataLoadingState } from '@kbn/unified-data-table'; import { DocViewFilterFn } from '@kbn/unified-doc-viewer/types'; import { DiscoverDocTableEmbeddable } from '../../components/doc_table/create_doc_table_embeddable'; @@ -137,6 +137,9 @@ export function SearchEmbeddableGridComponent({ onUpdateSampleSize: (newSampleSize: number | undefined) => { stateManager.sampleSize.next(newSampleSize); }, + onUpdateDataGridDensity: (newDensity: DataGridDensity | undefined) => { + stateManager.density.next(newDensity); + }, }), [stateManager, savedSearch.columns] ); @@ -194,6 +197,7 @@ export function SearchEmbeddableGridComponent({ searchTitle={panelTitle || savedSearchTitle} services={discoverServices} showTimeCol={!discoverServices.uiSettings.get(DOC_HIDE_TIME_COLUMN_SETTING, false)} + dataGridDensityState={savedSearch.density} /> ); } diff --git a/src/plugins/discover/public/embeddable/constants.ts b/src/plugins/discover/public/embeddable/constants.ts index 7ada36e3a005d..2574c7abf2a8e 100644 --- a/src/plugins/discover/public/embeddable/constants.ts +++ b/src/plugins/discover/public/embeddable/constants.ts @@ -31,6 +31,7 @@ export const EDITABLE_SAVED_SEARCH_KEYS: Readonly(initialState.rowHeight); const rowsPerPage$ = new BehaviorSubject(initialState.rowsPerPage); const sampleSize$ = new BehaviorSubject(initialState.sampleSize); + const density$ = new BehaviorSubject(initialState.density); const sort$ = new BehaviorSubject(initialState.sort); const savedSearchViewMode$ = new BehaviorSubject(initialState.viewMode); @@ -129,6 +130,7 @@ export const initializeSearchEmbeddableApi = async ( sort: sort$, totalHitCount: totalHitCount$, viewMode: savedSearchViewMode$, + density: density$, }; /** The saved search should be the source of truth for all state */ @@ -197,6 +199,7 @@ export const initializeSearchEmbeddableApi = async ( ], viewMode: [savedSearchViewMode$, (value) => savedSearchViewMode$.next(value)], grid: [grid$, (value) => grid$.next(value)], + density: [density$, (value) => density$.next(value)], }, }; }; diff --git a/src/plugins/discover/public/embeddable/types.ts b/src/plugins/discover/public/embeddable/types.ts index 8ff429e6476f9..70a929d1dee60 100644 --- a/src/plugins/discover/public/embeddable/types.ts +++ b/src/plugins/discover/public/embeddable/types.ts @@ -41,6 +41,7 @@ export type SearchEmbeddableState = Pick< | 'sampleSize' | 'viewMode' | 'grid' + | 'density' > & { rows: DataTableRecord[]; columnsMeta: DataTableColumnsMeta | undefined; diff --git a/src/plugins/saved_search/common/content_management/v1/cm_services.ts b/src/plugins/saved_search/common/content_management/v1/cm_services.ts index ef9d24bb8722d..7a3f8eb6d5e9d 100644 --- a/src/plugins/saved_search/common/content_management/v1/cm_services.ts +++ b/src/plugins/saved_search/common/content_management/v1/cm_services.ts @@ -72,6 +72,13 @@ const savedSearchAttributesSchema = schema.object( max: MAX_SAVED_SEARCH_SAMPLE_SIZE, }) ), + density: schema.maybe( + schema.oneOf([ + schema.literal('compact'), + schema.literal('normal'), + schema.literal('expanded'), + ]) + ), breakdownField: schema.maybe(schema.string()), visContext: schema.maybe( schema.oneOf([ diff --git a/src/plugins/saved_search/common/saved_searches_utils.ts b/src/plugins/saved_search/common/saved_searches_utils.ts index 232d5286ba32a..1151830f0d8ab 100644 --- a/src/plugins/saved_search/common/saved_searches_utils.ts +++ b/src/plugins/saved_search/common/saved_searches_utils.ts @@ -46,5 +46,6 @@ export const fromSavedSearchAttributes = < sampleSize: attributes.sampleSize, breakdownField: attributes.breakdownField, visContext: attributes.visContext, + density: attributes.density, managed, } as ReturnType); diff --git a/src/plugins/saved_search/common/service/get_saved_searches.test.ts b/src/plugins/saved_search/common/service/get_saved_searches.test.ts index 6572d6addbbbb..4f7d288e185d5 100644 --- a/src/plugins/saved_search/common/service/get_saved_searches.test.ts +++ b/src/plugins/saved_search/common/service/get_saved_searches.test.ts @@ -88,6 +88,7 @@ describe('getSavedSearch', () => { "columns": Array [ "_source", ], + "density": undefined, "description": "description", "grid": Object {}, "headerRowHeight": undefined, @@ -197,6 +198,7 @@ describe('getSavedSearch', () => { "columns": Array [ "_source", ], + "density": undefined, "description": "description", "grid": Object {}, "headerRowHeight": undefined, diff --git a/src/plugins/saved_search/common/service/saved_searches_utils.test.ts b/src/plugins/saved_search/common/service/saved_searches_utils.test.ts index ce8c073dd27c9..96845d7fea7fb 100644 --- a/src/plugins/saved_search/common/service/saved_searches_utils.test.ts +++ b/src/plugins/saved_search/common/service/saved_searches_utils.test.ts @@ -47,6 +47,7 @@ describe('saved_searches_utils', () => { "a", "b", ], + "density": undefined, "description": "foo", "grid": Object {}, "headerRowHeight": undefined, @@ -124,6 +125,7 @@ describe('saved_searches_utils', () => { "c", "d", ], + "density": undefined, "description": "description", "grid": Object {}, "headerRowHeight": undefined, diff --git a/src/plugins/saved_search/common/service/saved_searches_utils.ts b/src/plugins/saved_search/common/service/saved_searches_utils.ts index 866b9876d4dd4..24fcda3255a8c 100644 --- a/src/plugins/saved_search/common/service/saved_searches_utils.ts +++ b/src/plugins/saved_search/common/service/saved_searches_utils.ts @@ -52,6 +52,7 @@ export const toSavedSearchAttributes = ( refreshInterval: savedSearch.refreshInterval, rowsPerPage: savedSearch.rowsPerPage, sampleSize: savedSearch.sampleSize, + density: savedSearch.density, breakdownField: savedSearch.breakdownField, visContext: savedSearch.visContext, }); diff --git a/src/plugins/saved_search/common/types.ts b/src/plugins/saved_search/common/types.ts index fe41fd66042fe..4c5bab04705e5 100644 --- a/src/plugins/saved_search/common/types.ts +++ b/src/plugins/saved_search/common/types.ts @@ -15,6 +15,7 @@ import type { import type { SavedObjectReference } from '@kbn/core-saved-objects-server'; import type { SavedObjectsResolveResponse } from '@kbn/core/server'; import type { SerializableRecord } from '@kbn/utility-types'; +import type { DataGridDensity } from '@kbn/unified-data-table'; import { VIEW_MODE } from '.'; export interface DiscoverGridSettings extends SerializableRecord { @@ -64,6 +65,7 @@ export interface SavedSearchAttributes { rowsPerPage?: number; sampleSize?: number; breakdownField?: string; + density?: DataGridDensity; visContext?: VisContextUnmapped; } diff --git a/src/plugins/saved_search/public/services/saved_searches/to_saved_search.test.ts b/src/plugins/saved_search/public/services/saved_searches/to_saved_search.test.ts index a319188a49f63..968c29831e73b 100644 --- a/src/plugins/saved_search/public/services/saved_searches/to_saved_search.test.ts +++ b/src/plugins/saved_search/public/services/saved_searches/to_saved_search.test.ts @@ -52,72 +52,73 @@ describe('toSavedSearch', () => { }; const savedSearch = await byValueToSavedSearch({ attributes }, mockServices); expect(savedSearch).toMatchInlineSnapshot(` - Object { - "breakdownField": undefined, - "columns": Array [ - "message", - "extension", - ], - "description": "", - "grid": Object {}, - "headerRowHeight": undefined, - "hideAggregatedPreview": undefined, - "hideChart": false, - "id": undefined, - "isTextBasedQuery": false, - "managed": false, - "references": Array [ - Object { - "id": "1", - "name": "ref_0", - "type": "index-pattern", - }, - ], - "refreshInterval": undefined, - "rowHeight": undefined, - "rowsPerPage": undefined, - "sampleSize": undefined, - "searchSource": Object { - "create": [MockFunction], - "createChild": [MockFunction], - "createCopy": [MockFunction], - "destroy": [MockFunction], - "fetch": [MockFunction], - "fetch$": [MockFunction], - "getActiveIndexFilter": [MockFunction], - "getField": [MockFunction], - "getFields": [MockFunction], - "getId": [MockFunction], - "getOwnField": [MockFunction], - "getParent": [MockFunction], - "getSearchRequestBody": [MockFunction], - "getSerializedFields": [MockFunction], - "history": Array [], - "loadDataViewFields": [MockFunction], - "onRequestStart": [MockFunction], - "parseActiveIndexPatternFromQueryString": [MockFunction], - "removeField": [MockFunction], - "serialize": [MockFunction], - "setField": [MockFunction], - "setOverwriteDataViewType": [MockFunction], - "setParent": [MockFunction], - "toExpressionAst": [MockFunction], + Object { + "breakdownField": undefined, + "columns": Array [ + "message", + "extension", + ], + "density": undefined, + "description": "", + "grid": Object {}, + "headerRowHeight": undefined, + "hideAggregatedPreview": undefined, + "hideChart": false, + "id": undefined, + "isTextBasedQuery": false, + "managed": false, + "references": Array [ + Object { + "id": "1", + "name": "ref_0", + "type": "index-pattern", }, - "sharingSavedObjectProps": undefined, - "sort": Array [ - Array [ - "@timestamp", - "desc", - ], + ], + "refreshInterval": undefined, + "rowHeight": undefined, + "rowsPerPage": undefined, + "sampleSize": undefined, + "searchSource": Object { + "create": [MockFunction], + "createChild": [MockFunction], + "createCopy": [MockFunction], + "destroy": [MockFunction], + "fetch": [MockFunction], + "fetch$": [MockFunction], + "getActiveIndexFilter": [MockFunction], + "getField": [MockFunction], + "getFields": [MockFunction], + "getId": [MockFunction], + "getOwnField": [MockFunction], + "getParent": [MockFunction], + "getSearchRequestBody": [MockFunction], + "getSerializedFields": [MockFunction], + "history": Array [], + "loadDataViewFields": [MockFunction], + "onRequestStart": [MockFunction], + "parseActiveIndexPatternFromQueryString": [MockFunction], + "removeField": [MockFunction], + "serialize": [MockFunction], + "setField": [MockFunction], + "setOverwriteDataViewType": [MockFunction], + "setParent": [MockFunction], + "toExpressionAst": [MockFunction], + }, + "sharingSavedObjectProps": undefined, + "sort": Array [ + Array [ + "@timestamp", + "desc", ], - "tags": undefined, - "timeRange": undefined, - "timeRestore": undefined, - "title": "saved-search-title", - "usesAdHocDataView": undefined, - "viewMode": undefined, - "visContext": undefined, - } - `); + ], + "tags": undefined, + "timeRange": undefined, + "timeRestore": undefined, + "title": "saved-search-title", + "usesAdHocDataView": undefined, + "viewMode": undefined, + "visContext": undefined, + } + `); }); }); diff --git a/src/plugins/saved_search/server/content_management/saved_search_storage.ts b/src/plugins/saved_search/server/content_management/saved_search_storage.ts index d3ff8633637d2..3982bca7cf932 100644 --- a/src/plugins/saved_search/server/content_management/saved_search_storage.ts +++ b/src/plugins/saved_search/server/content_management/saved_search_storage.ts @@ -45,6 +45,7 @@ export class SavedSearchStorage extends SOContentStorage { 'rowsPerPage', 'breakdownField', 'sampleSize', + 'density', 'visContext', ], logger, diff --git a/src/plugins/saved_search/server/saved_objects/schema.ts b/src/plugins/saved_search/server/saved_objects/schema.ts index 125ddcceb320c..effbc6f7eeb24 100644 --- a/src/plugins/saved_search/server/saved_objects/schema.ts +++ b/src/plugins/saved_search/server/saved_objects/schema.ts @@ -129,3 +129,9 @@ export const SCHEMA_SEARCH_MODEL_VERSION_4 = SCHEMA_SEARCH_MODEL_VERSION_3.exten ]) ), }); + +export const SCHEMA_SEARCH_MODEL_VERSION_5 = SCHEMA_SEARCH_MODEL_VERSION_4.extends({ + density: schema.maybe( + schema.oneOf([schema.literal('compact'), schema.literal('normal'), schema.literal('expanded')]) + ), +}); diff --git a/src/plugins/saved_search/server/saved_objects/search.ts b/src/plugins/saved_search/server/saved_objects/search.ts index 925a4dd66b180..1295b4b378d98 100644 --- a/src/plugins/saved_search/server/saved_objects/search.ts +++ b/src/plugins/saved_search/server/saved_objects/search.ts @@ -16,6 +16,7 @@ import { SCHEMA_SEARCH_MODEL_VERSION_2, SCHEMA_SEARCH_MODEL_VERSION_3, SCHEMA_SEARCH_MODEL_VERSION_4, + SCHEMA_SEARCH_MODEL_VERSION_5, } from './schema'; export function getSavedSearchObjectType( @@ -70,6 +71,13 @@ export function getSavedSearchObjectType( create: SCHEMA_SEARCH_MODEL_VERSION_4, }, }, + 5: { + changes: [], + schemas: { + forwardCompatibility: SCHEMA_SEARCH_MODEL_VERSION_5.extends({}, { unknowns: 'ignore' }), + create: SCHEMA_SEARCH_MODEL_VERSION_5, + }, + }, }, mappings: { dynamic: false, diff --git a/src/plugins/saved_search/tsconfig.json b/src/plugins/saved_search/tsconfig.json index 7100affb2e0c3..f96d7b385aa2c 100644 --- a/src/plugins/saved_search/tsconfig.json +++ b/src/plugins/saved_search/tsconfig.json @@ -28,6 +28,7 @@ "@kbn/utility-types", "@kbn/search-types", "@kbn/discover-utils", + "@kbn/unified-data-table", ], "exclude": ["target/**/*"] } diff --git a/test/functional/apps/discover/group2_data_grid3/_data_grid_density.ts b/test/functional/apps/discover/group2_data_grid3/_data_grid_density.ts new file mode 100644 index 0000000000000..45105fe907a0f --- /dev/null +++ b/test/functional/apps/discover/group2_data_grid3/_data_grid_density.ts @@ -0,0 +1,96 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const browser = getService('browser'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + const dataGrid = getService('dataGrid'); + const testSubjects = getService('testSubjects'); + const PageObjects = getPageObjects(['settings', 'common', 'discover', 'header', 'timePicker']); + const defaultSettings = { defaultIndex: 'logstash-*' }; + const security = getService('security'); + + describe('discover data grid density', function () { + before(async () => { + await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']); + await browser.setWindowSize(1200, 2000); + await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); + await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover'); + }); + + after(async () => { + await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover'); + await kibanaServer.uiSettings.replace({}); + await kibanaServer.savedObjects.cleanStandardList(); + }); + + beforeEach(async function () { + await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings(); + await kibanaServer.uiSettings.update(defaultSettings); + await PageObjects.common.navigateToApp('discover'); + await PageObjects.discover.waitUntilSearchingHasFinished(); + }); + + it('should use the default density', async () => { + await dataGrid.clickGridSettings(); + const selected = await dataGrid.getCurrentDensityValue(); + expect(selected).to.be('Compact'); + }); + + it('should allow to change density', async () => { + await dataGrid.clickGridSettings(); + await dataGrid.changeDensityValue('Normal'); + + // toggle the popover + // Right now changing the density closes the popover (see packages/kbn-unified-data-table/src/components/data_table.tsx:1144) + // When that workaround is removed we will need to uncomment this next line + // await dataGrid.clickGridSettings(); + await dataGrid.clickGridSettings(); + expect(await dataGrid.getCurrentDensityValue()).to.be('Normal'); + }); + + it('should persist the density selection after reloading the page', async () => { + await dataGrid.clickGridSettings(); + await dataGrid.changeDensityValue('Expanded'); + await dataGrid.clickGridSettings(); + expect(await dataGrid.getCurrentDensityValue()).to.be('Expanded'); + + await browser.refresh(); + await PageObjects.discover.waitUntilSearchingHasFinished(); + + await dataGrid.clickGridSettings(); + expect(await dataGrid.getCurrentDensityValue()).to.be('Expanded'); + }); + + it('should save and revert unsaved densities properly', async () => { + // Open saved search + await PageObjects.discover.loadSavedSearch('A Saved Search'); + + // Change density + await dataGrid.clickGridSettings(); + await dataGrid.changeDensityValue('Expanded'); + await PageObjects.discover.saveUnsavedChanges(); + + // Change density + await dataGrid.clickGridSettings(); + await dataGrid.changeDensityValue('Normal'); + await testSubjects.existOrFail('unsavedChangesBadge'); + + // Revert change + await PageObjects.discover.revertUnsavedChanges(); + + // Verify density reset + await dataGrid.clickGridSettings(); + expect(await dataGrid.getCurrentDensityValue()).to.be('Expanded'); + }); + }); +} diff --git a/test/functional/apps/discover/group2_data_grid3/index.ts b/test/functional/apps/discover/group2_data_grid3/index.ts index b7a5e25a491b5..e3e0fd5b9d2be 100644 --- a/test/functional/apps/discover/group2_data_grid3/index.ts +++ b/test/functional/apps/discover/group2_data_grid3/index.ts @@ -25,5 +25,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_data_grid_row_selection')); loadTestFile(require.resolve('./_data_grid_sample_size')); loadTestFile(require.resolve('./_data_grid_pagination')); + loadTestFile(require.resolve('./_data_grid_density')); }); } diff --git a/test/functional/apps/discover/group5/_url_state.ts b/test/functional/apps/discover/group5/_url_state.ts index 099fbed1589a3..2516f2ed08659 100644 --- a/test/functional/apps/discover/group5/_url_state.ts +++ b/test/functional/apps/discover/group5/_url_state.ts @@ -179,6 +179,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'Sep 22, 2015 @ 20:40:22.952jpg1,576', 'Sep 22, 2015 @ 20:11:39.532png1,708', 'Sep 22, 2015 @ 19:45:13.813php1,406', + 'Sep 22, 2015 @ 19:40:17.903jpg1,557', ]); expect(await PageObjects.discover.getHitCount()).to.be(totalHitsForOneFilter); @@ -204,6 +205,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'Sep 22, 2015 @ 18:50:22.335css1,841', 'Sep 22, 2015 @ 18:40:32.329css1,945', 'Sep 22, 2015 @ 18:13:35.361css1,752', + 'Sep 22, 2015 @ 17:22:12.782css1,583', ]; expect(await dataGrid.getRowsText()).to.eql(filteredRows); diff --git a/test/functional/screenshots/baseline/dashboard_embed_mode_scrolling.png b/test/functional/screenshots/baseline/dashboard_embed_mode_scrolling.png index 94de1a1c3cc4f74f73a410a4f508cd7f81602b7f..2f5e437ade253b9f070da4c91905b18545267095 100644 GIT binary patch literal 85725 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≈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

f#ad12measUfy{Y3#H;>6 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 diff --git a/test/functional/services/data_grid.ts b/test/functional/services/data_grid.ts index fc6ed65631eaa..aa79b36260a96 100644 --- a/test/functional/services/data_grid.ts +++ b/test/functional/services/data_grid.ts @@ -512,6 +512,18 @@ export class DataGridService extends FtrService { await option.click(); } + public async getCurrentDensityValue() { + const buttonGroup = await this.testSubjects.find('densityButtonGroup'); + const selectedButton = await buttonGroup.findByCssSelector('[aria-pressed=true]'); + return selectedButton.getVisibleText(); + } + + public async changeDensityValue(newValue: string) { + const buttonGroup = await this.testSubjects.find('densityButtonGroup'); + const option = await buttonGroup.findByCssSelector(`[data-text="${newValue}"]`); + await option.click(); + } + private async findSampleSizeInput() { return await this.find.byCssSelector( 'input[type="number"][data-test-subj="unifiedDataTableSampleSizeInput"]' diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.test.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.test.ts index af346e9addabd..08a62bea9275a 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.test.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.test.ts @@ -68,7 +68,7 @@ describe('utils', () => { expect(tableStylesOverride).toMatchInlineSnapshot(` Object { "border": "horizontal", - "cellPadding": "l", + "cellPadding": "s", "fontSize": "s", "header": "underline", "rowClasses": Object { diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.ts index f76b3c45c303e..3679d9a251ebc 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/utils.ts @@ -9,7 +9,7 @@ import type { EuiDataGridStyle } from '@elastic/eui'; import { flattenHit } from '@kbn/data-service'; import type { DataView } from '@kbn/data-views-plugin/public'; import type { DataTableRecord } from '@kbn/discover-utils/types'; -import { GRID_STYLE } from '@kbn/unified-data-table/src/constants'; +import { DATA_GRID_STYLE_DEFAULT } from '@kbn/unified-data-table/src/constants'; import type { TimelineItem } from '../../../../../common/search_strategy'; import { getEventTypeRowClassName } from './data_table/get_event_type_row_classname'; @@ -56,5 +56,8 @@ export function transformTimelineItemToUnifiedRows( }; }); - return { tableRows: unifiedDataTableRows, tableStylesOverride: { ...GRID_STYLE, rowClasses } }; + return { + tableRows: unifiedDataTableRows, + tableStylesOverride: { ...DATA_GRID_STYLE_DEFAULT, rowClasses }, + }; }