From 0bdc881f532edff4da3256040236f37f9a25dba2 Mon Sep 17 00:00:00 2001 From: Jared Scheib Date: Fri, 21 Jul 2017 15:18:44 -0700 Subject: [PATCH] Prevent 'auto' GROUP BY option in Kapacitor rule builder --- .../data_explorer/components/GroupByTimeDropdown.js | 2 +- ui/src/kapacitor/components/DataSection.js | 13 ++++++++++--- ui/src/kapacitor/components/KapacitorRule.js | 1 + ui/src/utils/queryTransitions.js | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ui/src/data_explorer/components/GroupByTimeDropdown.js b/ui/src/data_explorer/components/GroupByTimeDropdown.js index d0c3400fd0..4cb67ebe76 100644 --- a/ui/src/data_explorer/components/GroupByTimeDropdown.js +++ b/ui/src/data_explorer/components/GroupByTimeDropdown.js @@ -25,7 +25,7 @@ const GroupByTimeDropdown = React.createClass({ } = this.props let validOptions = groupByTimeOptions - if (isInDataExplorer) { + if (isInDataExplorer || isInRuleBuilder) { validOptions = validOptions.filter( ({menuOption}) => menuOption !== DEFAULT_DASHBOARD_GROUP_BY_INTERVAL ) diff --git a/ui/src/kapacitor/components/DataSection.js b/ui/src/kapacitor/components/DataSection.js index af70d3bec0..21a7f68673 100644 --- a/ui/src/kapacitor/components/DataSection.js +++ b/ui/src/kapacitor/components/DataSection.js @@ -32,6 +32,7 @@ export const DataSection = React.createClass({ onAddEvery: PropTypes.func.isRequired, onRemoveEvery: PropTypes.func.isRequired, timeRange: PropTypes.shape({}).isRequired, + isKapacitorRule: PropTypes.bool, }, childContextTypes: { @@ -69,7 +70,13 @@ export const DataSection = React.createClass({ }, handleApplyFuncsToField(fieldFunc) { - this.props.actions.applyFuncsToField(this.props.query.id, fieldFunc) + this.props.actions.applyFuncsToField( + this.props.query.id, + fieldFunc, + // this 3rd arg (isKapacitorRule) makes sure 'auto' is not added as + // default group by in Kapacitor rule + this.props.isKapacitorRule + ) this.props.onAddEvery(defaultEveryFrequency) }, @@ -109,7 +116,7 @@ export const DataSection = React.createClass({ }, renderQueryBuilder() { - const {query} = this.props + const {query, isKapacitorRule} = this.props return (
@@ -129,7 +136,7 @@ export const DataSection = React.createClass({ onToggleField={this.handleToggleField} onGroupByTime={this.handleGroupByTime} applyFuncsToField={this.handleApplyFuncsToField} - isKapacitorRule={true} + isKapacitorRule={isKapacitorRule} />
) diff --git a/ui/src/kapacitor/components/KapacitorRule.js b/ui/src/kapacitor/components/KapacitorRule.js index a8689eec6f..e1a5bc0ac0 100644 --- a/ui/src/kapacitor/components/KapacitorRule.js +++ b/ui/src/kapacitor/components/KapacitorRule.js @@ -71,6 +71,7 @@ export const KapacitorRule = React.createClass({ actions={queryActions} onAddEvery={this.handleAddEvery} onRemoveEvery={this.handleRemoveEvery} + isKapacitorRule={true} /> { @@ -103,7 +103,7 @@ export function applyFuncsToField( return f }) - const defaultGroupBy = isInDataExplorer + const defaultGroupBy = preventAutoGroupBy ? DEFAULT_DATA_EXPLORER_GROUP_BY_INTERVAL : DEFAULT_DASHBOARD_GROUP_BY_INTERVAL // If there are no functions, then there should be no GROUP BY time