diff --git a/public/expression_types/arg_types/datacolumn/datacolumn.js b/public/expression_types/arg_types/datacolumn/datacolumn.js
index 761b02b41b4fb..ed18a7dace304 100644
--- a/public/expression_types/arg_types/datacolumn/datacolumn.js
+++ b/public/expression_types/arg_types/datacolumn/datacolumn.js
@@ -48,16 +48,24 @@ const DatacolumnArgInput = ({ onValueChange, columns, mathValue, setMathFunction
const inputRefs = {};
const valueNotSet = val => !val || val.length === 0;
const updateFunctionValue = () => {
+ // if setting size, auto-select the first column if no column is already set
+ if (inputRefs.fn.value === 'size') {
+ const col = inputRefs.column.value || columns[0] && columns[0].name;
+ if (col) return onValueChange(`${inputRefs.fn.value}(${col})`);
+ }
+
// inputRefs.column is the column selection, if there is no value, do nothing
if (valueNotSet(inputRefs.column.value)) {
- setMathFunction(inputRefs.fn.value);
- } else if (valueNotSet(inputRefs.fn.value)) {
- // inputRefs.fn is the math.js function to use, if it's not set, just use the value input
- onValueChange(inputRefs.column.value);
- } else {
- // inputRefs.fn has a value, so use it as a math.js expression
- onValueChange(`${inputRefs.fn.value}(${inputRefs.column.value})`);
+ return setMathFunction(inputRefs.fn.value);
}
+
+ // inputRefs.fn is the math.js function to use, if it's not set, just use the value input
+ if (valueNotSet(inputRefs.fn.value)) {
+ return onValueChange(inputRefs.column.value);
+ }
+
+ // inputRefs.fn has a value, so use it as a math.js expression
+ onValueChange(`${inputRefs.fn.value}(${inputRefs.column.value})`);
};
const column = columns.map(col => col.name).find(colName => colName === mathValue.column) || '';
@@ -77,7 +85,9 @@ const DatacolumnArgInput = ({ onValueChange, columns, mathValue, setMathFunction
onChange={updateFunctionValue}
>
- { sortBy(columns, 'name').map(column => ) }
+ { sortBy(columns, 'name').map(column => (
+
+ )) }
);
diff --git a/public/expression_types/arg_types/datacolumn/simple_math_function.js b/public/expression_types/arg_types/datacolumn/simple_math_function.js
index e2fbe32899fd1..dacb6ea59b41a 100644
--- a/public/expression_types/arg_types/datacolumn/simple_math_function.js
+++ b/public/expression_types/arg_types/datacolumn/simple_math_function.js
@@ -4,13 +4,14 @@ import { FormControl } from 'react-bootstrap';
export const SimpleMathFunction = ({ onChange, value, inputRef }) => {
const options = [
- 'median',
- 'mean',
- 'sum',
- 'min',
- 'max',
- 'mode',
- 'size',
+ { label: 'Value', value: '' },
+ { label: 'Average', value: 'mean' },
+ { label: 'Sum', value: 'sum' },
+ { label: 'Count', value: 'size' },
+ { label: 'Max', value: 'max' },
+ { label: 'Min', value: 'min' },
+ { label: 'Median', value: 'median' },
+ { label: 'Mode', value: 'mode' },
];
const onSelect = (ev) => onChange(ev.target.value);
@@ -24,8 +25,9 @@ export const SimpleMathFunction = ({ onChange, value, inputRef }) => {
onChange={onSelect}
inputRef={inputRef}
>
-
- { options.map(option => ())}
+ { options.map(option => (
+
+ ))}
);