[Vislib] Use timestamp on brush event instead of iso dates (#91483)

* [Vislib] Use timestamp on brush event instead of iso dates

* Fix functional test and update documentation

* Update documentation

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Stratoula Kalafateli 2021-02-17 12:35:55 +02:00 committed by GitHub
parent bc207ff2da
commit c9f7c2e77b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 4 deletions

View file

@ -256,7 +256,7 @@ Note:
| *Range selection*
| event.from +
event.to
| `from` and `to` values of selected range. Depending on your data, could be either a date or number. +
| `from` and `to` values of the selected range as numbers. +
Tip: Consider using <<helpers, date>> helper for date formatting.
|

View file

@ -9,6 +9,7 @@
import d3 from 'd3';
import _ from 'lodash';
import MarkdownIt from 'markdown-it';
import moment from 'moment';
import { dispatchRenderComplete } from '../../../../kibana_utils/public';
@ -26,6 +27,10 @@ const markdownIt = new MarkdownIt({
linkify: true,
});
const convertToTimestamp = (date) => {
return parseInt(moment(date).format('x'));
};
/**
* Handles building all the components of the visualization
*
@ -80,11 +85,13 @@ export class Handler {
case 'brush':
const xRaw = _.get(eventPayload.data, 'series[0].values[0].xRaw');
if (!xRaw) return; // not sure if this is possible?
const [start, end] = eventPayload.range;
const range = [convertToTimestamp(start), convertToTimestamp(end)];
return self.vis.emit(eventType, {
name: 'brush',
data: {
table: xRaw.table,
range: eventPayload.range,
range,
column: xRaw.column,
},
});

View file

@ -37,7 +37,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardDrilldownPanelActions.clickCreateDrilldown();
await dashboardDrilldownsManage.expectsCreateDrilldownFlyoutOpen();
const urlTemplate = `{{kibanaUrl}}/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:'{{event.from}}',to:'{{event.to}}'))&_a=(columns:!(_source),filters:{{rison context.panel.filters}},index:'{{context.panel.indexPatternId}}',interval:auto,query:(language:{{context.panel.query.language}},query:'{{context.panel.query.query}}'),sort:!())`;
const urlTemplate = `{{kibanaUrl}}/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:'{{date event.from}}',to:'{{date event.to}}'))&_a=(columns:!(_source),filters:{{rison context.panel.filters}},index:'{{context.panel.indexPatternId}}',interval:auto,query:(language:{{context.panel.query.language}},query:'{{context.panel.query.query}}'),sort:!())`;
await dashboardDrilldownsManage.fillInDashboardToURLDrilldownWizard({
drilldownName: DRILLDOWN_TO_DISCOVER_URL,
@ -70,10 +70,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardDrilldownPanelActions.clickActionByText(DRILLDOWN_TO_DISCOVER_URL);
await PageObjects.discover.waitForDiscoverAppOnScreen();
// check that new time range duration was applied
const newTimeRangeDurationHours = await PageObjects.timePicker.getTimeDurationInHours();
expect(newTimeRangeDurationHours).to.be.lessThan(originalTimeRangeDurationHours);
// check that hours duration is more than 1 hour (meaning that the default time range of last 15 minutes has not been applied)
expect(newTimeRangeDurationHours).to.be.greaterThan(1);
});
});