diff --git a/ui/src/kapacitor/components/HandlerInput.js b/ui/src/kapacitor/components/HandlerInput.js
index f0d814c292..1d4ac033a1 100644
--- a/ui/src/kapacitor/components/HandlerInput.js
+++ b/ui/src/kapacitor/components/HandlerInput.js
@@ -1,4 +1,5 @@
import React, {PropTypes} from 'react'
+import _ from 'lodash'
const HandlerInput = ({
fieldName,
diff --git a/ui/src/kapacitor/components/HandlerOptions.js b/ui/src/kapacitor/components/HandlerOptions.js
index 0844f71330..05be22b42c 100644
--- a/ui/src/kapacitor/components/HandlerOptions.js
+++ b/ui/src/kapacitor/components/HandlerOptions.js
@@ -23,7 +23,13 @@ class HandlerOptions extends Component {
}
render() {
- const {selectedHandler, handleModifyHandler, configLink} = this.props
+ const {
+ selectedHandler,
+ handleModifyHandler,
+ configLink,
+ rule,
+ updateDetails,
+ } = this.props
switch (selectedHandler && selectedHandler.type) {
case 'post':
return (
@@ -63,6 +69,8 @@ class HandlerOptions extends Component {
selectedHandler={selectedHandler}
handleModifyHandler={handleModifyHandler}
configLink={configLink}
+ updateDetails={updateDetails}
+ rule={rule}
/>
)
case 'alerta':
@@ -157,6 +165,8 @@ HandlerOptions.propTypes = {
selectedHandler: shape({}).isRequired,
handleModifyHandler: func.isRequired,
configLink: string,
+ updateDetails: func,
+ rule: shape({}),
}
export default HandlerOptions
diff --git a/ui/src/kapacitor/components/KapacitorRule.js b/ui/src/kapacitor/components/KapacitorRule.js
index 5167cfdf8c..1849596bc0 100644
--- a/ui/src/kapacitor/components/KapacitorRule.js
+++ b/ui/src/kapacitor/components/KapacitorRule.js
@@ -183,10 +183,10 @@ class KapacitorRule extends Component {
-
+
diff --git a/ui/src/kapacitor/components/RuleDetailsText.js b/ui/src/kapacitor/components/RuleDetailsText.js
new file mode 100644
index 0000000000..e41dbaa8b2
--- /dev/null
+++ b/ui/src/kapacitor/components/RuleDetailsText.js
@@ -0,0 +1,36 @@
+import React, {Component, PropTypes} from 'react'
+
+class RuleDetailsText extends Component {
+ constructor(props) {
+ super(props)
+ }
+
+ handleUpdateDetails = e => {
+ const {rule, updateDetails} = this.props
+ updateDetails(rule.id, e.target.value)
+ }
+
+ render() {
+ const {rule} = this.props
+ return (
+
+
+
+ )
+ }
+}
+
+const {shape, func} = PropTypes
+
+RuleDetailsText.propTypes = {
+ rule: shape().isRequired,
+ updateDetails: func.isRequired,
+}
+
+export default RuleDetailsText
diff --git a/ui/src/kapacitor/components/RuleHandlers.js b/ui/src/kapacitor/components/RuleHandlers.js
index 6744b79ff9..45251cfdfa 100644
--- a/ui/src/kapacitor/components/RuleHandlers.js
+++ b/ui/src/kapacitor/components/RuleHandlers.js
@@ -25,8 +25,8 @@ class RuleHandlers extends Component {
}
handleChangeMessage = e => {
- const {actions, rule} = this.props
- actions.updateMessage(rule.id, e.target.value)
+ const {ruleActions, rule} = this.props
+ ruleActions.updateMessage(rule.id, e.target.value)
}
handleChooseHandler = ep => () => {
@@ -79,10 +79,10 @@ class RuleHandlers extends Component {
}
handleUpdateAllAlerts = () => {
- const {rule, actions} = this.props
+ const {rule, ruleActions} = this.props
const {handlersOnThisAlert} = this.state
- actions.updateAlertNodes(rule.id, handlersOnThisAlert)
+ ruleActions.updateAlertNodes(rule.id, handlersOnThisAlert)
}
handleModifyHandler = (selectedHandler, fieldName, parseToArray) => e => {
@@ -123,7 +123,7 @@ class RuleHandlers extends Component {
}
render() {
- const {handlersFromConfig, configLink} = this.props
+ const {handlersFromConfig, configLink, rule, ruleActions} = this.props
const {handlersOnThisAlert, selectedHandler} = this.state
const alerts = _.map([...DEFAULT_HANDLERS, ...handlersFromConfig], a => {
return {...a, text: a.type}
@@ -162,6 +162,8 @@ class RuleHandlers extends Component {
configLink={configLink}
selectedHandler={selectedHandler}
handleModifyHandler={this.handleModifyHandler}
+ updateDetails={ruleActions.updateDetails}
+ rule={rule}
/>
: null}
@@ -175,7 +177,7 @@ const {arrayOf, func, shape, string} = PropTypes
RuleHandlers.propTypes = {
rule: shape({}).isRequired,
- actions: shape({
+ ruleActions: shape({
updateAlertNodes: func.isRequired,
updateMessage: func.isRequired,
updateDetails: func.isRequired,
diff --git a/ui/src/kapacitor/components/RuleMessage.js b/ui/src/kapacitor/components/RuleMessage.js
index 85743d22bd..ce9ecc42bc 100644
--- a/ui/src/kapacitor/components/RuleMessage.js
+++ b/ui/src/kapacitor/components/RuleMessage.js
@@ -9,12 +9,12 @@ class RuleMessage extends Component {
}
handleChangeMessage = e => {
- const {actions, rule} = this.props
- actions.updateMessage(rule.id, e.target.value)
+ const {ruleActions, rule} = this.props
+ ruleActions.updateMessage(rule.id, e.target.value)
}
render() {
- const {rule, actions} = this.props
+ const {rule, ruleActions} = this.props
return (
@@ -26,7 +26,7 @@ class RuleMessage extends Component {
/>
@@ -38,7 +38,7 @@ const {func, shape} = PropTypes
RuleMessage.propTypes = {
rule: shape().isRequired,
- actions: shape({
+ ruleActions: shape({
updateMessage: func.isRequired,
}).isRequired,
}
diff --git a/ui/src/kapacitor/components/handlers/EmailHandler.js b/ui/src/kapacitor/components/handlers/EmailHandler.js
index aa942ab25e..31863193d1 100644
--- a/ui/src/kapacitor/components/handlers/EmailHandler.js
+++ b/ui/src/kapacitor/components/handlers/EmailHandler.js
@@ -1,8 +1,15 @@
import React, {PropTypes} from 'react'
import HandlerInput from 'src/kapacitor/components/HandlerInput'
import HandlerEmpty from 'src/kapacitor/components/HandlerEmpty'
+import RuleDetailsText from 'src/kapacitor/components/RuleDetailsText'
-const EmailHandler = ({selectedHandler, handleModifyHandler, configLink}) => {
+const EmailHandler = ({
+ rule,
+ updateDetails,
+ selectedHandler,
+ handleModifyHandler,
+ configLink,
+}) => {
return selectedHandler.enabled
?
@@ -46,6 +53,7 @@ const EmailHandler = ({selectedHandler, handleModifyHandler, configLink}) => {
parseToArray={true}
fieldColumns="col-md-12"
/>
+
:
@@ -57,6 +65,8 @@ EmailHandler.propTypes = {
selectedHandler: shape({}).isRequired,
handleModifyHandler: func.isRequired,
configLink: string,
+ updateDetails: func,
+ rule: shape({}),
}
export default EmailHandler
diff --git a/ui/src/shared/parsing/parseHandlersFromRule.js b/ui/src/shared/parsing/parseHandlersFromRule.js
index e01ea4ed53..222d455e75 100644
--- a/ui/src/shared/parsing/parseHandlersFromRule.js
+++ b/ui/src/shared/parsing/parseHandlersFromRule.js
@@ -17,6 +17,7 @@ export const getHandlersFromRule = rule => {
...alertOptions,
alias: alertKind + count,
type: alertKind,
+ enabled: true,
}
handlersOnThisAlert.push(ep)
})