Add kapacitor rule message to state
parent
d2d0bb34f9
commit
bae030cb93
|
@ -4,6 +4,7 @@ import {defaultRuleConfigs} from 'src/kapacitor/constants';
|
||||||
import {
|
import {
|
||||||
chooseTrigger,
|
chooseTrigger,
|
||||||
updateRuleValues,
|
updateRuleValues,
|
||||||
|
updateMessage,
|
||||||
} from 'src/kapacitor/actions/view';
|
} from 'src/kapacitor/actions/view';
|
||||||
|
|
||||||
describe('Kapacitor.Reducers.rules', () => {
|
describe('Kapacitor.Reducers.rules', () => {
|
||||||
|
@ -50,4 +51,19 @@ describe('Kapacitor.Reducers.rules', () => {
|
||||||
expect(finalState[ruleID].trigger).to.equal('relative');
|
expect(finalState[ruleID].trigger).to.equal('relative');
|
||||||
expect(finalState[ruleID].values).to.equal(newRelativeValues);
|
expect(finalState[ruleID].values).to.equal(newRelativeValues);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('can update the message', () => {
|
||||||
|
const ruleID = 1;
|
||||||
|
const initialState = {
|
||||||
|
[ruleID]: {
|
||||||
|
id: ruleID,
|
||||||
|
queryID: 988,
|
||||||
|
message: '',
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const message = 'im a kapacitor rule message';
|
||||||
|
const newState = reducer(initialState, updateMessage(ruleID, message));
|
||||||
|
expect(newState[ruleID].message).to.equal(message);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -58,3 +58,13 @@ export function updateRuleValues(ruleID, trigger, values) {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function updateMessage(ruleID, message) {
|
||||||
|
return {
|
||||||
|
type: 'UPDATE_RULE_MESSAGE',
|
||||||
|
payload: {
|
||||||
|
ruleID,
|
||||||
|
message,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -79,7 +79,8 @@ const Threshold = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
handleDropdownChange(item) {
|
handleDropdownChange(item) {
|
||||||
this.props.onChange(Object.assign({}, this.props.rule.values, {[item.type]: item.text}));
|
const newValues = Object.assign({}, this.props.rule.values, {[item.type]: item.text});
|
||||||
|
this.props.onChange(newValues);
|
||||||
},
|
},
|
||||||
|
|
||||||
handleInputChange() {
|
handleInputChange() {
|
||||||
|
|
|
@ -21,6 +21,7 @@ export const KapacitorRulePage = React.createClass({
|
||||||
fetchRule: PropTypes.func.isRequired,
|
fetchRule: PropTypes.func.isRequired,
|
||||||
chooseTrigger: PropTypes.func.isRequired,
|
chooseTrigger: PropTypes.func.isRequired,
|
||||||
updateRuleValues: PropTypes.func.isRequired,
|
updateRuleValues: PropTypes.func.isRequired,
|
||||||
|
updateMessage: PropTypes.func.isRequired,
|
||||||
}).isRequired,
|
}).isRequired,
|
||||||
queryActions: PropTypes.shape({}).isRequired,
|
queryActions: PropTypes.shape({}).isRequired,
|
||||||
params: PropTypes.shape({
|
params: PropTypes.shape({
|
||||||
|
@ -37,6 +38,10 @@ export const KapacitorRulePage = React.createClass({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleSave() {
|
||||||
|
console.log(this.props.rules); // eslint-disable-line no-console
|
||||||
|
},
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const rule = this.props.rules[Object.keys(this.props.rules)[0]]; // this.props.params.taskID
|
const rule = this.props.rules[Object.keys(this.props.rules)[0]]; // this.props.params.taskID
|
||||||
const query = rule && this.props.queryConfigs[rule.queryID];
|
const query = rule && this.props.queryConfigs[rule.queryID];
|
||||||
|
@ -52,6 +57,9 @@ export const KapacitorRulePage = React.createClass({
|
||||||
<div className="enterprise-header__left">
|
<div className="enterprise-header__left">
|
||||||
<h1>Kapacitor Rules</h1>
|
<h1>Kapacitor Rules</h1>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="enterprise-header__right">
|
||||||
|
<button className="btn btn-primary btn-sm" onClick={this.handleSave}>Save</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="container-fluid">
|
<div className="container-fluid">
|
||||||
|
@ -67,7 +75,7 @@ export const KapacitorRulePage = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-12">
|
<div className="col-md-12">
|
||||||
{this.renderMessageSection()}
|
{this.renderMessageSection(rule)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
|
@ -99,11 +107,11 @@ export const KapacitorRulePage = React.createClass({
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
renderMessageSection() {
|
renderMessageSection(rule) {
|
||||||
return (
|
return (
|
||||||
<div className="kapacitor-rule-section">
|
<div className="kapacitor-rule-section">
|
||||||
<h3>Message</h3>
|
<h3>Message</h3>
|
||||||
<textarea />
|
<textarea ref={(r) => this.message = r} onChange={() => this.handleMessageChange(rule)} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -120,6 +128,10 @@ export const KapacitorRulePage = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleMessageChange(rule) {
|
||||||
|
this.props.kapacitorActions.updateMessage(rule.id, this.message.value);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
function mapStateToProps(state) {
|
function mapStateToProps(state) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ export default function rules(state = {}, action) {
|
||||||
queryID,
|
queryID,
|
||||||
trigger: 'threshold',
|
trigger: 'threshold',
|
||||||
values: defaultRuleConfigs.threshold,
|
values: defaultRuleConfigs.threshold,
|
||||||
|
message: '',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -41,6 +42,15 @@ export default function rules(state = {}, action) {
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case 'UPDATE_RULE_MESSAGE': {
|
||||||
|
const {ruleID, message} = action.payload;
|
||||||
|
return Object.assign({}, state, {
|
||||||
|
[ruleID]: Object.assign({}, state[ruleID], {
|
||||||
|
message,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue