From f4e1f97a82d46842ada4e02d723c4de98f73d75d Mon Sep 17 00:00:00 2001 From: yaojiping Date: Wed, 19 Feb 2025 14:35:31 +0800 Subject: [PATCH 1/5] fix: add time range to suggestions's request --- .../data/public/ui/filter_bar/filter_bar.tsx | 3 +++ .../public/ui/filter_bar/filter_editor/index.tsx | 6 ++++++ .../filter_bar/filter_editor/phrase_suggestor.tsx | 15 ++++++++++++++- .../filter_editor/phrase_value_input.tsx | 3 +-- .../data/public/ui/search_bar/search_bar.tsx | 3 +++ 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/web/src/components/vendor/data/public/ui/filter_bar/filter_bar.tsx b/web/src/components/vendor/data/public/ui/filter_bar/filter_bar.tsx index c6aee8a9..5e771bcd 100644 --- a/web/src/components/vendor/data/public/ui/filter_bar/filter_bar.tsx +++ b/web/src/components/vendor/data/public/ui/filter_bar/filter_bar.tsx @@ -121,6 +121,9 @@ function FilterBarUI(props: Props) { onCancel={() => setIsAddFilterPopoverOpen(false)} key={JSON.stringify(newFilter)} services={props.services} + dateRangeFrom={props.dateRangeFrom} + dateRangeTo={props.dateRangeTo} + timeField={props.timeField} /> diff --git a/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/index.tsx b/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/index.tsx index c6ff8841..bec4cf3d 100644 --- a/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/index.tsx +++ b/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/index.tsx @@ -313,6 +313,9 @@ class FilterEditorUI extends Component { onChange={this.onParamsChange} data-test-subj="phraseValueInput" services={this.props.services} + dateRangeFrom={this.props.dateRangeFrom} + dateRangeTo={this.props.dateRangeTo} + timeField={this.props.timeField} /> ); case 'phrases': @@ -323,6 +326,9 @@ class FilterEditorUI extends Component { values={this.state.params} onChange={this.onParamsChange} services={this.props.services} + dateRangeFrom={this.props.dateRangeFrom} + dateRangeTo={this.props.dateRangeTo} + timeField={this.props.timeField} /> ); case 'range': diff --git a/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_suggestor.tsx b/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_suggestor.tsx index 89f4bb01..e5d0a31e 100644 --- a/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_suggestor.tsx +++ b/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_suggestor.tsx @@ -82,17 +82,30 @@ export class PhraseSuggestorUI< protected updateSuggestions = debounce(async (query: string = "") => { if (this.abortController) this.abortController.abort(); this.abortController = new AbortController(); - const { indexPattern, field } = this.props as PhraseSuggestorProps; + const { indexPattern, field, dateRangeFrom, dateRangeTo, timeField } = this.props as PhraseSuggestorProps; if (!field || !this.isSuggestingValues()) { return; } this.setState({ isLoading: true }); + const boolFilter = [] + if (dateRangeFrom && dateRangeTo && timeField) { + boolFilter.push({ + "range": { + [timeField]: { + "gte": dateRangeFrom, + "lte": dateRangeTo + } + } + }) + } + const suggestions = await this.props.services.data.autocomplete.getValueSuggestions( { indexPattern, field, query, + boolFilter, signal: this.abortController.signal, } ); diff --git a/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_value_input.tsx b/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_value_input.tsx index a26f6a07..e5b8ca1c 100644 --- a/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_value_input.tsx +++ b/web/src/components/vendor/data/public/ui/filter_bar/filter_editor/phrase_value_input.tsx @@ -50,8 +50,7 @@ class PhraseValueInputUI extends PhraseSuggestorUI { } private renderWithSuggestions() { - let { suggestions } = this.state; - suggestions = suggestions || []; + const suggestions = Array.isArray(this.state.suggestions) ? this.state.suggestions : [] const { value, intl, onChange } = this.props; // there are cases when the value is a number, this would cause an exception const valueAsStr = String(value); diff --git a/web/src/components/vendor/data/public/ui/search_bar/search_bar.tsx b/web/src/components/vendor/data/public/ui/search_bar/search_bar.tsx index 4f6eb0a8..9f4f400f 100644 --- a/web/src/components/vendor/data/public/ui/search_bar/search_bar.tsx +++ b/web/src/components/vendor/data/public/ui/search_bar/search_bar.tsx @@ -484,6 +484,9 @@ class SearchBarUI extends Component { filters={this.props.filters!} onFiltersUpdated={this.props.onFiltersUpdated} indexPatterns={this.props.indexPatterns!} + dateRangeFrom={this.state.dateRangeFrom} + dateRangeTo={this.state.dateRangeTo} + timeField={this.props.timeSetting?.timeField} services={this.props.services} /> From aca3e7dae508cc81b81b44be219e976e4b98027f Mon Sep 17 00:00:00 2001 From: yaojiping Date: Wed, 19 Feb 2025 15:45:07 +0800 Subject: [PATCH 2/5] fix: adjust DatePicker's display --- web/src/common/src/DatePicker/index.jsx | 2 +- web/src/common/src/DatePicker/index.less | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/web/src/common/src/DatePicker/index.jsx b/web/src/common/src/DatePicker/index.jsx index 2e57d362..b4292d08 100644 --- a/web/src/common/src/DatePicker/index.jsx +++ b/web/src/common/src/DatePicker/index.jsx @@ -215,7 +215,7 @@ const DatePicker = (props) => { isMinimum ? styles.minimum : "" } ${className}`} > - + {!isMinimum && (