mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Handle element changing into a filter (#97890)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
1397461aca
commit
46f43784b0
3 changed files with 13 additions and 5 deletions
|
@ -45,9 +45,12 @@ export const dropdownFilter: RendererFactory<Config> = () => ({
|
|||
reuseDomNode: true,
|
||||
height: 50,
|
||||
render(domNode, config, handlers) {
|
||||
const filterExpression = handlers.getFilter();
|
||||
let filterExpression = handlers.getFilter();
|
||||
|
||||
if (filterExpression !== '') {
|
||||
if (filterExpression === undefined || filterExpression.indexOf('exactly')) {
|
||||
filterExpression = '';
|
||||
handlers.setFilter(filterExpression);
|
||||
} else if (filterExpression !== '') {
|
||||
// NOTE: setFilter() will cause a data refresh, avoid calling unless required
|
||||
// compare expression and filter, update filter if needed
|
||||
const { changed, newAst } = syncFilterExpression(config, filterExpression, ['filterGroup']);
|
||||
|
|
|
@ -19,6 +19,8 @@ import { RendererFactory } from '../../../../types';
|
|||
|
||||
const { timeFilter: strings } = RendererStrings;
|
||||
|
||||
const defaultTimeFilterExpression = 'timefilter column=@timestamp from=now-24h to=now';
|
||||
|
||||
export const timeFilterFactory: StartInitializer<RendererFactory<Arguments>> = (core, plugins) => {
|
||||
const { uiSettings } = core;
|
||||
|
||||
|
@ -38,9 +40,12 @@ export const timeFilterFactory: StartInitializer<RendererFactory<Arguments>> = (
|
|||
help: strings.getHelpDescription(),
|
||||
reuseDomNode: true, // must be true, otherwise popovers don't work
|
||||
render: async (domNode: HTMLElement, config: Arguments, handlers: RendererHandlers) => {
|
||||
const filterExpression = handlers.getFilter();
|
||||
let filterExpression = handlers.getFilter();
|
||||
|
||||
if (filterExpression !== '') {
|
||||
if (filterExpression === undefined || filterExpression.indexOf('timefilter') !== 0) {
|
||||
filterExpression = defaultTimeFilterExpression;
|
||||
handlers.setFilter(filterExpression);
|
||||
} else if (filterExpression !== '') {
|
||||
// NOTE: setFilter() will cause a data refresh, avoid calling unless required
|
||||
// compare expression and filter, update filter if needed
|
||||
const { changed, newAst } = syncFilterExpression(config, filterExpression, [
|
||||
|
|
|
@ -109,7 +109,7 @@ export const createDispatchedHandlerFactory = (
|
|||
},
|
||||
|
||||
getFilter() {
|
||||
return element.filter;
|
||||
return element.filter || '';
|
||||
},
|
||||
|
||||
onComplete(fn: () => void) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue