Skip to content

Commit

Permalink
[Lens] Terms order direction (#39884)
Browse files Browse the repository at this point in the history
  • Loading branch information
flash1293 authored Jul 15, 2019
1 parent 5c6f552 commit 4e361a6
Show file tree
Hide file tree
Showing 20 changed files with 561 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const actual = jest.requireActual('../operations');

jest.spyOn(actual, 'getPotentialColumns');
jest.spyOn(actual.operationDefinitionMap.date_histogram, 'paramEditor');
jest.spyOn(actual.operationDefinitionMap.terms, 'onOtherColumnChanged');

export const {
getPotentialColumns,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ import {
import { getPotentialColumns } from '../operations';
import { PopoverEditor } from './popover_editor';
import { DragContextState, ChildDragDropProvider, DragDrop } from '../../drag_drop';
import { changeColumn, hasField, deleteColumn } from '../state_helpers';
import { changeColumn, deleteColumn } from '../state_helpers';
import { hasField } from '../utils';

export type IndexPatternDimensionPanelProps = DatasourceDimensionPanelProps & {
state: IndexPatternPrivateState;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
OperationType,
BaseIndexPatternColumn,
} from '../indexpattern';
import { hasField, sortByField } from '../state_helpers';
import { hasField, sortByField } from '../utils';

export interface FieldSelectProps {
incompatibleSelectedOperationType: OperationType | null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ import classNames from 'classnames';
import { IndexPatternColumn, OperationType } from '../indexpattern';
import { IndexPatternDimensionPanelProps } from './dimension_panel';
import { operationDefinitionMap, getOperationDisplay } from '../operations';
import { hasField, deleteColumn, changeColumn } from '../state_helpers';
import { deleteColumn, changeColumn } from '../state_helpers';
import { FieldSelect } from './field_select';
import { hasField } from '../utils';

const operationPanels = getOperationDisplay();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ describe('IndexPattern Data Source', () => {
params: {
size: 5,
orderBy: { type: 'alphabetical' },
orderDirection: 'asc',
},
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ export interface TermsIndexPatternColumn extends FieldBasedIndexPatternColumn {
params: {
size: number;
orderBy: { type: 'alphabetical' } | { type: 'column'; columnId: string };
orderDirection: 'asc' | 'desc';
};
}

Expand Down Expand Up @@ -325,9 +326,18 @@ export function getIndexPatternDatasource({
const hasBucket = operations.find(op => op === 'date_histogram' || op === 'terms');

if (hasBucket) {
const column = buildColumnForOperationType(0, hasBucket, undefined, field);

const countColumn = buildColumnForOperationType(1, 'count');
const countColumn = buildColumnForOperationType(1, 'count', state.columns);

// let column know about count column
const column = buildColumnForOperationType(
0,
hasBucket,
{
col2: countColumn,
},
undefined,
field
);

const suggestion: DatasourceSuggestion<IndexPatternPrivateState> = {
state: {
Expand Down Expand Up @@ -362,9 +372,21 @@ export function getIndexPatternDatasource({
f => f.name === currentIndexPattern.timeFieldName
)!;

const column = buildColumnForOperationType(0, operations[0], undefined, field);

const dateColumn = buildColumnForOperationType(1, 'date_histogram', undefined, dateField);
const column = buildColumnForOperationType(
0,
operations[0],
state.columns,
undefined,
field
);

const dateColumn = buildColumnForOperationType(
1,
'date_histogram',
state.columns,
undefined,
dateField
);

const suggestion: DatasourceSuggestion<IndexPatternPrivateState> = {
state: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ export const countOperation: OperationDefinition<CountIndexPatternColumn> = {
isApplicableForField: ({ aggregationRestrictions, type }) => {
return false;
},
buildColumn(operationId: string, suggestedOrder?: DimensionPriority): CountIndexPatternColumn {
buildColumn(
operationId: string,
columns: {},
suggestedOrder?: DimensionPriority
): CountIndexPatternColumn {
return {
operationId,
label: i18n.translate('xpack.lens.indexPattern.countOf', {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ describe('date_histogram', () => {

describe('buildColumn', () => {
it('should create column object with default params', () => {
const column = dateHistogramOperation.buildColumn('op', 0, {
const column = dateHistogramOperation.buildColumn('op', {}, 0, {
name: 'timestamp',
type: 'date',
esTypes: ['date'],
Expand All @@ -64,7 +64,7 @@ describe('date_histogram', () => {
});

it('should create column object with restrictions', () => {
const column = dateHistogramOperation.buildColumn('op', 0, {
const column = dateHistogramOperation.buildColumn('op', {}, 0, {
name: 'timestamp',
type: 'date',
esTypes: ['date'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export const dateHistogramOperation: OperationDefinition<DateHistogramIndexPatte
},
buildColumn(
operationId: string,
columns: {},
suggestedOrder?: DimensionPriority,
field?: IndexPatternField
): DateHistogramIndexPatternColumn {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ describe('filter_ratio', () => {

describe('buildColumn', () => {
it('should create column object with default params', () => {
const column = filterRatioOperation.buildColumn('op', 0);
const column = filterRatioOperation.buildColumn('op', {}, 0);
expect(column.params.numerator).toEqual({ query: '', language: 'kuery' });
expect(column.params.denominator).toEqual({ query: '', language: 'kuery' });
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
import { EuiButton, EuiFormRow } from '@elastic/eui';
import { Query } from '../../../../../../../src/legacy/core_plugins/data/public/query';
import { FilterRatioIndexPatternColumn } from '../indexpattern';
import { FilterRatioIndexPatternColumn, IndexPatternColumn } from '../indexpattern';
import { DimensionPriority } from '../../types';
import { OperationDefinition } from '../operations';
import { updateColumnParam } from '../state_helpers';
Expand All @@ -23,6 +23,7 @@ export const filterRatioOperation: OperationDefinition<FilterRatioIndexPatternCo
isApplicableForField: () => false,
buildColumn(
operationId: string,
_columns: Partial<Record<string, IndexPatternColumn>>,
suggestedOrder?: DimensionPriority
): FilterRatioIndexPatternColumn {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ function buildMetricOperation<T extends FieldBasedIndexPatternColumn>(
},
buildColumn(
operationId: string,
columns: {},
suggestedOrder?: DimensionPriority,
field?: IndexPatternField
): T {
Expand Down
Loading

0 comments on commit 4e361a6

Please sign in to comment.