Skip to content

Commit

Permalink
[Discover] Rename default column in the advanced settings (elastic#11…
Browse files Browse the repository at this point in the history
…4100)

* [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>
  • Loading branch information
2 people authored and artem-shelkovnikov committed Oct 20, 2021
1 parent 0eb8464 commit 72e7296
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand All @@ -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)];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand All @@ -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],
};
}

Expand Down
5 changes: 3 additions & 2 deletions src/plugins/discover/server/ui_settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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()),
Expand Down
24 changes: 23 additions & 1 deletion test/functional/apps/discover/_discover_fields_api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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');
});
});
}

0 comments on commit 72e7296

Please sign in to comment.