Skip to content

Commit

Permalink
[7.10] [Lens] Remove Over time suggestions for numeric intervals (#78442
Browse files Browse the repository at this point in the history
) (#81118)

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
  • Loading branch information
dej611 and kibanamachine authored Oct 20, 2020
1 parent 6980f2d commit 482cb22
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1381,6 +1381,126 @@ describe('IndexPattern Data Source suggestions', () => {
);
});

it('does not create an over time suggestion if tables with numeric buckets with time dimension', async () => {
const initialState = testInitialState();
const state: IndexPatternPrivateState = {
...initialState,
layers: {
first: {
indexPatternId: '1',
columnOrder: ['colb', 'cola'],
columns: {
cola: {
dataType: 'number',
isBucketed: false,
sourceField: 'dest',
label: 'Unique count of dest',
operationType: 'cardinality',
},
colb: {
label: 'My Op',
dataType: 'number',
isBucketed: true,
operationType: 'range',
sourceField: 'bytes',
scale: 'interval',
params: {
type: 'histogram',
maxBars: 100,
ranges: [],
},
},
},
},
},
};

expect(getDatasourceSuggestionsFromCurrentState(state)).not.toContainEqual(
expect.objectContaining({
table: {
isMultiRow: true,
label: 'Over time',
layerId: 'first',
},
})
);
});

it('adds date histogram over default time field for custom range intervals', async () => {
const initialState = testInitialState();
const state: IndexPatternPrivateState = {
...initialState,
layers: {
first: {
indexPatternId: '1',
columnOrder: ['colb', 'cola'],
columns: {
cola: {
dataType: 'number',
isBucketed: false,
sourceField: 'dest',
label: 'Unique count of dest',
operationType: 'cardinality',
},
colb: {
label: 'My Custom Range',
dataType: 'string',
isBucketed: true,
operationType: 'range',
sourceField: 'bytes',
scale: 'ordinal',
params: {
type: 'range',
maxBars: 100,
ranges: [{ from: 1, to: 2, label: '' }],
},
},
},
},
},
};

expect(getDatasourceSuggestionsFromCurrentState(state)).toContainEqual(
expect.objectContaining({
table: {
changeType: 'extended',
columns: [
{
columnId: 'colb',
operation: {
dataType: 'string',
isBucketed: true,
label: 'My Custom Range',
scale: 'ordinal',
},
},
{
columnId: 'id1',
operation: {
dataType: 'date',
isBucketed: true,
label: 'timestampLabel',
scale: 'interval',
},
},
{
columnId: 'cola',
operation: {
dataType: 'number',
isBucketed: false,
label: 'Unique count of dest',
scale: undefined,
},
},
],
isMultiRow: true,
label: 'Over time',
layerId: 'first',
},
})
);
});

it('does not create an over time suggestion if there is no default time field', async () => {
const initialState = testInitialState();
const state: IndexPatternPrivateState = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,10 @@ export function getDatasourceSuggestionsFromCurrentState(
({ name }) => name === indexPattern.timeFieldName
);

const hasNumericDimension =
buckets.length === 1 &&
buckets.some((columnId) => layer.columns[columnId].dataType === 'number');

const suggestions: Array<DatasourceSuggestion<IndexPatternPrivateState>> = [];
if (metrics.length === 0) {
// intermediary chart without metric, don't try to suggest reduced versions
Expand Down Expand Up @@ -482,7 +486,9 @@ export function getDatasourceSuggestionsFromCurrentState(
} else {
suggestions.push(...createSimplifiedTableSuggestions(state, layerId));

if (!timeDimension && timeField) {
// base range intervals are of number dataType.
// Custom range/intervals have a different dataType so they still receive the Over Time suggestion
if (!timeDimension && timeField && !hasNumericDimension) {
// suggest current configuration over time if there is a default time field
// and no time dimension yet
suggestions.push(createSuggestionWithDefaultDateHistogram(state, layerId, timeField));
Expand Down Expand Up @@ -653,9 +659,13 @@ function createSuggestionWithDefaultDateHistogram(
field: timeField,
suggestedPriority: undefined,
});

const updatedLayer = {
indexPatternId: layer.indexPatternId,
columns: { ...layer.columns, [newId]: timeColumn },
columns: {
...layer.columns,
[newId]: timeColumn,
},
columnOrder: [...buckets, newId, ...metrics],
};
return buildSuggestion({
Expand Down
2 changes: 0 additions & 2 deletions x-pack/plugins/lens/public/xy_visualization/xy_suggestions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,6 @@ function flipSeriesType(seriesType: SeriesType) {
return 'bar_stacked';
case 'bar':
return 'bar_horizontal';
case 'bar_horizontal_stacked':
return 'bar_stacked';
case 'bar_horizontal_percentage_stacked':
return 'bar_percentage_stacked';
case 'bar_percentage_stacked':
Expand Down

0 comments on commit 482cb22

Please sign in to comment.