Skip to content

Commit

Permalink
[ML] set default sorting field based on date type
Browse files Browse the repository at this point in the history
  • Loading branch information
darnautov committed Jun 29, 2021
1 parent eaab880 commit b0acd4f
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 3 deletions.
4 changes: 4 additions & 0 deletions x-pack/plugins/transform/public/app/common/pivot_aggs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,10 @@ export function isPivotAggsWithExtendedForm(arg: unknown): arg is PivotAggsConfi
return isPopulatedObject(arg, ['AggFormComponent']);
}

export function isPivotAggConfigTopMetric(arg: unknown): arg is PivotAggsConfigTopMetrics {
return isPivotAggsWithExtendedForm(arg) && arg.agg === PIVOT_SUPPORTED_AGGS.TOP_METRICS;
}

export function isPivotAggsConfigPercentiles(arg: unknown): arg is PivotAggsConfigPercentiles {
return (
isPopulatedObject(arg, ['agg', 'field', 'percents']) &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ import { dictionaryToArray } from '../../../../../../../common/types/common';

import { useToastNotifications } from '../../../../../app_dependencies';
import {
getRequestPayload,
DropDownLabel,
getRequestPayload,
isPivotGroupByConfigWithUiSupport,
PivotAggsConfig,
PivotAggsConfigDict,
PivotGroupByConfig,
Expand All @@ -26,9 +27,14 @@ import {
StepDefineExposedState,
} from '../common';
import { StepDefineFormProps } from '../step_define_form';
import { isPivotAggsWithExtendedForm } from '../../../../../common/pivot_aggs';
import {
isPivotAggConfigTopMetric,
isPivotAggsWithExtendedForm,
} from '../../../../../common/pivot_aggs';
import { TransformPivotConfig } from '../../../../../../../common/types/transform';
import { PIVOT_SUPPORTED_AGGS } from '../../../../../../../common/types/pivot_aggs';
import { KBN_FIELD_TYPES } from '../../../../../../../../../../src/plugins/data/common';
import { isPivotAggConfigWithUiSupport } from '../../../../../common/pivot_group_by';

/**
* Clones aggregation configuration and updates parent references
Expand Down Expand Up @@ -169,6 +175,30 @@ export const usePivotConfig = (

let aggName: AggName = config.aggName;

if (isPivotAggConfigTopMetric(config)) {
let suggestedSortField = [
...new Set(
Object.values(groupByList).map((v) =>
isPivotGroupByConfigWithUiSupport(v) ? v.field : undefined
)
),
].find((v) => fields.find((x) => x.name === v)?.type === KBN_FIELD_TYPES.DATE);

if (!suggestedSortField) {
suggestedSortField = [
...new Set(
Object.values(aggList)
.map((v) => (isPivotAggConfigWithUiSupport(v) ? v.field : undefined))
.flat()
),
].find((v) => fields.find((x) => x.name === v)?.type === KBN_FIELD_TYPES.DATE);
}

if (suggestedSortField) {
config.aggConfig.sortField = suggestedSortField;
}
}

if (aggList[aggName] && aggName === PIVOT_SUPPORTED_AGGS.TOP_METRICS) {
// handle special case for naming top_metric aggs
const regExp = new RegExp(`^${PIVOT_SUPPORTED_AGGS.TOP_METRICS}(\\d)*$`);
Expand Down Expand Up @@ -196,7 +226,7 @@ export const usePivotConfig = (
aggList[aggName] = config;
setAggList({ ...aggList });
},
[aggList, aggOptionsData, groupByList, toastNotifications]
[aggList, aggOptionsData, groupByList, toastNotifications, fields]
);

/**
Expand Down

0 comments on commit b0acd4f

Please sign in to comment.