mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Discover] Rename default column in the advanced settings (#114100)
* [Discover] Rename default column in the advanced settings * Fix eslint * Rename default column to an empty string * Fix typo * Fix default column filtering * Update comment * Make an empty array a default columns * Improve functional test * Wording change Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
4db2437036
commit
586682a0c4
4 changed files with 41 additions and 6 deletions
|
@ -6,9 +6,13 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { cloneDeep } from 'lodash';
|
||||
import { cloneDeep, isEqual } from 'lodash';
|
||||
import { IUiSettingsClient } from 'kibana/public';
|
||||
import { DEFAULT_COLUMNS_SETTING, SORT_DEFAULT_ORDER_SETTING } from '../../../../../common';
|
||||
import {
|
||||
DEFAULT_COLUMNS_SETTING,
|
||||
SEARCH_FIELDS_FROM_SOURCE,
|
||||
SORT_DEFAULT_ORDER_SETTING,
|
||||
} from '../../../../../common';
|
||||
import { SavedSearch } from '../../../../saved_searches';
|
||||
import { DataPublicPluginStart } from '../../../../../../data/public';
|
||||
|
||||
|
@ -19,6 +23,9 @@ function getDefaultColumns(savedSearch: SavedSearch, config: IUiSettingsClient)
|
|||
if (savedSearch.columns && savedSearch.columns.length > 0) {
|
||||
return [...savedSearch.columns];
|
||||
}
|
||||
if (config.get(SEARCH_FIELDS_FROM_SOURCE) && isEqual(config.get(DEFAULT_COLUMNS_SETTING), [])) {
|
||||
return ['_source'];
|
||||
}
|
||||
return [...config.get(DEFAULT_COLUMNS_SETTING)];
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ export function handleSourceColumnState<TState extends { columns?: string[] }>(
|
|||
}
|
||||
const useNewFieldsApi = !uiSettings.get(SEARCH_FIELDS_FROM_SOURCE);
|
||||
const defaultColumns = uiSettings.get(DEFAULT_COLUMNS_SETTING);
|
||||
|
||||
if (useNewFieldsApi) {
|
||||
// if fields API is used, filter out the source column
|
||||
let cleanedColumns = state.columns.filter((column) => column !== '_source');
|
||||
|
@ -39,9 +40,13 @@ export function handleSourceColumnState<TState extends { columns?: string[] }>(
|
|||
} else if (state.columns.length === 0) {
|
||||
// if _source fetching is used and there are no column, switch back to default columns
|
||||
// this can happen if the fields API was previously used
|
||||
const columns = defaultColumns;
|
||||
if (columns.length === 0) {
|
||||
columns.push('_source');
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
columns: [...defaultColumns],
|
||||
columns: [...columns],
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -33,9 +33,10 @@ export const getUiSettings: () => Record<string, UiSettingsParams> = () => ({
|
|||
name: i18n.translate('discover.advancedSettings.defaultColumnsTitle', {
|
||||
defaultMessage: 'Default columns',
|
||||
}),
|
||||
value: ['_source'],
|
||||
value: [],
|
||||
description: i18n.translate('discover.advancedSettings.defaultColumnsText', {
|
||||
defaultMessage: 'Columns displayed by default in the Discovery tab',
|
||||
defaultMessage:
|
||||
'Columns displayed by default in the Discover app. If empty, a summary of the document will be displayed.',
|
||||
}),
|
||||
category: ['discover'],
|
||||
schema: schema.arrayOf(schema.string()),
|
||||
|
|
|
@ -15,7 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const retry = getService('retry');
|
||||
const esArchiver = getService('esArchiver');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
const PageObjects = getPageObjects(['common', 'discover', 'header', 'timePicker']);
|
||||
const PageObjects = getPageObjects(['common', 'discover', 'header', 'timePicker', 'settings']);
|
||||
const defaultSettings = {
|
||||
defaultIndex: 'logstash-*',
|
||||
'discover:searchFieldsFromSource': false,
|
||||
|
@ -67,5 +67,27 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await PageObjects.discover.clickDocViewerTab(1);
|
||||
await PageObjects.discover.expectSourceViewerToExist();
|
||||
});
|
||||
|
||||
it('switches to _source column when fields API is no longer used', async function () {
|
||||
await PageObjects.settings.navigateTo();
|
||||
await PageObjects.settings.clickKibanaSettings();
|
||||
await PageObjects.settings.toggleAdvancedSettingCheckbox('discover:searchFieldsFromSource');
|
||||
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
||||
|
||||
expect(await PageObjects.discover.getDocHeader()).to.have.string('_source');
|
||||
});
|
||||
|
||||
it('switches to Document column when fields API is used', async function () {
|
||||
await PageObjects.settings.navigateTo();
|
||||
await PageObjects.settings.clickKibanaSettings();
|
||||
await PageObjects.settings.toggleAdvancedSettingCheckbox('discover:searchFieldsFromSource');
|
||||
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
||||
|
||||
expect(await PageObjects.discover.getDocHeader()).to.have.string('Document');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue