Skip to content

Commit b63dd07

Browse files
committed
Fix query util to return search source's results right away. Fix texts.
1 parent 29ddc82 commit b63dd07

File tree

8 files changed

+52
-31
lines changed

8 files changed

+52
-31
lines changed

src/plugins/discover/public/plugin.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,6 @@ export class DiscoverPlugin
351351

352352
// FIXME: Temporarily hide overflow-y in Discover app when Field Stats table is shown
353353
// due to EUI bug https://github.com/elastic/eui/pull/5152
354-
// until EUI is bumped to 38.0.0
355354
params.element.classList.add('dscAppWrapper');
356355

357356
const unmount = renderApp(params.element);

src/plugins/discover/server/ui_settings.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ export const getUiSettings: () => Record<string, UiSettingsParams> = () => ({
210210
description: i18n.translate(
211211
'discover.advancedSettings.discover.showFieldStatisticsDescription',
212212
{
213-
defaultMessage: `Enable Field statistics table in Discover.`,
213+
defaultMessage: `Enable "Field statistics" table in Discover.`,
214214
}
215215
),
216216
value: false,

x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ export const IndexDataVisualizerViewWrapper = (props: {
170170
<p>
171171
<FormattedMessage
172172
id="xpack.dataVisualizer.index.embeddableErrorDescription"
173-
defaultMessage="There was an error loading the embeddable. Please check if all the input required is valid."
173+
defaultMessage="There was an error loading the embeddable. Please check if all the required input is valid."
174174
/>
175175
</p>
176176
}

x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77

88
import {
9-
getQueryFromSavedSearch,
9+
getQueryFromSavedSearchObject,
1010
createMergedEsQuery,
1111
getEsQueryFromSavedSearch,
1212
} from './saved_search_utils';
@@ -82,9 +82,9 @@ const kqlSavedSearch: SavedSearch = {
8282
},
8383
};
8484

85-
describe('getQueryFromSavedSearch()', () => {
85+
describe('getQueryFromSavedSearchObject()', () => {
8686
it('should return parsed searchSourceJSON with query and filter', () => {
87-
expect(getQueryFromSavedSearch(luceneSavedSearchObj)).toEqual({
87+
expect(getQueryFromSavedSearchObject(luceneSavedSearchObj)).toEqual({
8888
filter: [
8989
{
9090
$state: { store: 'appState' },
@@ -106,7 +106,7 @@ describe('getQueryFromSavedSearch()', () => {
106106
query: { language: 'lucene', query: 'responsetime:>50' },
107107
version: true,
108108
});
109-
expect(getQueryFromSavedSearch(kqlSavedSearch)).toEqual({
109+
expect(getQueryFromSavedSearchObject(kqlSavedSearch)).toEqual({
110110
filter: [
111111
{
112112
$state: { store: 'appState' },
@@ -130,7 +130,7 @@ describe('getQueryFromSavedSearch()', () => {
130130
});
131131
});
132132
it('should return undefined if invalid searchSourceJSON', () => {
133-
expect(getQueryFromSavedSearch(luceneInvalidSavedSearchObj)).toEqual(undefined);
133+
expect(getQueryFromSavedSearchObject(luceneInvalidSavedSearchObj)).toEqual(undefined);
134134
});
135135
});
136136

x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,31 @@ import {
1616
Filter,
1717
} from '@kbn/es-query';
1818
import { isSavedSearchSavedObject, SavedSearchSavedObject } from '../../../../common/types';
19-
import { IndexPattern } from '../../../../../../../src/plugins/data/common';
19+
import { IndexPattern, SearchSource } from '../../../../../../../src/plugins/data/common';
2020
import { SEARCH_QUERY_LANGUAGE, SearchQueryLanguage } from '../types/combined_query';
2121
import { SavedSearch } from '../../../../../../../src/plugins/discover/public';
2222
import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common';
2323
import { FilterManager } from '../../../../../../../src/plugins/data/public';
2424

25+
const DEFAULT_QUERY = {
26+
bool: {
27+
must: [
28+
{
29+
match_all: {},
30+
},
31+
],
32+
},
33+
};
34+
35+
export function getDefaultQuery() {
36+
return cloneDeep(DEFAULT_QUERY);
37+
}
38+
2539
/**
2640
* Parse the stringified searchSourceJSON
2741
* from a saved search or saved search object
2842
*/
29-
export function getQueryFromSavedSearch(savedSearch: SavedSearchSavedObject | SavedSearch) {
43+
export function getQueryFromSavedSearchObject(savedSearch: SavedSearchSavedObject | SavedSearch) {
3044
const search = isSavedSearchSavedObject(savedSearch)
3145
? savedSearch?.attributes?.kibanaSavedObjectMeta
3246
: // @ts-expect-error kibanaSavedObjectMeta does exist
@@ -117,10 +131,31 @@ export function getEsQueryFromSavedSearch({
117131
}) {
118132
if (!indexPattern || !savedSearch) return;
119133

120-
const savedSearchData = getQueryFromSavedSearch(savedSearch);
121134
const userQuery = query;
122135
const userFilters = filters;
123136

137+
// If saved search has a search source with nested parent
138+
// e.g. a search coming from Dashboard saved search embeddable
139+
// which already combines both the saved search's original query/filters and the Dashboard's
140+
// then no need to process any further
141+
if (
142+
savedSearch &&
143+
'searchSource' in savedSearch &&
144+
savedSearch?.searchSource instanceof SearchSource &&
145+
savedSearch.searchSource.getParent() !== undefined &&
146+
userQuery
147+
) {
148+
return {
149+
searchQuery: savedSearch.searchSource.getSearchRequestBody()?.query ?? getDefaultQuery(),
150+
searchString: userQuery.query,
151+
queryLanguage: userQuery.language as SearchQueryLanguage,
152+
};
153+
}
154+
155+
// If saved search is an json object with the original query and filter
156+
// retrieve the parsed query and filter
157+
const savedSearchData = getQueryFromSavedSearchObject(savedSearch);
158+
124159
// If no saved search available, use user's query and filters
125160
if (!savedSearchData && userQuery) {
126161
if (filterManager && userFilters) filterManager.setFilters(userFilters);
@@ -139,7 +174,8 @@ export function getEsQueryFromSavedSearch({
139174
};
140175
}
141176

142-
// If saved search available, merge saved search with latest user query or filters differ from extracted saved search data
177+
// If saved search available, merge saved search with latest user query or filters
178+
// which might differ from extracted saved search data
143179
if (savedSearchData) {
144180
const currentQuery = userQuery ?? savedSearchData?.query;
145181
const currentFilters = userFilters ?? savedSearchData?.filter;
@@ -160,17 +196,3 @@ export function getEsQueryFromSavedSearch({
160196
};
161197
}
162198
}
163-
164-
const DEFAULT_QUERY = {
165-
bool: {
166-
must: [
167-
{
168-
match_all: {},
169-
},
170-
],
171-
},
172-
};
173-
174-
export function getDefaultQuery() {
175-
return cloneDeep(DEFAULT_QUERY);
176-
}

x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/use_saved_search.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
import { estypes } from '@elastic/elasticsearch';
1616
import { useMlContext } from '../../../../../contexts/ml';
1717
import { SEARCH_QUERY_LANGUAGE } from '../../../../../../../common/constants/search';
18-
import { getQueryFromSavedSearch } from '../../../../../util/index_utils';
18+
import { getQueryFromSavedSearchObject } from '../../../../../util/index_utils';
1919

2020
// `undefined` is used for a non-initialized state
2121
// `null` is set if no saved search is used
@@ -40,7 +40,7 @@ export function useSavedSearch() {
4040
let qryString;
4141

4242
if (currentSavedSearch !== null) {
43-
const { query } = getQueryFromSavedSearch(currentSavedSearch);
43+
const { query } = getQueryFromSavedSearchObject(currentSavedSearch);
4444
const queryLanguage = query.language;
4545
qryString = query.query;
4646

x-pack/plugins/ml/public/application/jobs/new_job/utils/new_job_utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { IUiSettingsClient } from 'kibana/public';
1818
import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/public';
1919
import { SEARCH_QUERY_LANGUAGE } from '../../../../../common/constants/search';
2020
import { SavedSearchSavedObject } from '../../../../../common/types/kibana';
21-
import { getQueryFromSavedSearch } from '../../../util/index_utils';
21+
import { getQueryFromSavedSearchObject } from '../../../util/index_utils';
2222

2323
// Provider for creating the items used for searching and job creation.
2424

@@ -52,7 +52,7 @@ export function createSearchItems(
5252

5353
let combinedQuery: any = getDefaultDatafeedQuery();
5454
if (savedSearch !== null) {
55-
const data = getQueryFromSavedSearch(savedSearch);
55+
const data = getQueryFromSavedSearchObject(savedSearch);
5656

5757
query = data.query;
5858
const filter = data.filter;

x-pack/plugins/ml/public/application/util/index_utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export async function getIndexPatternAndSavedSearch(savedSearchId: string) {
8080
return resp;
8181
}
8282

83-
export function getQueryFromSavedSearch(savedSearch: SavedSearchSavedObject) {
83+
export function getQueryFromSavedSearchObject(savedSearch: SavedSearchSavedObject) {
8484
const search = savedSearch.attributes.kibanaSavedObjectMeta as { searchSourceJSON: string };
8585
return JSON.parse(search.searchSourceJSON) as {
8686
query: Query;

0 commit comments

Comments
 (0)