|
|
@@ -15,12 +15,11 @@ interface Props {
|
|
|
alertRules: AlertRule[];
|
|
|
updateLocation: typeof updateLocation;
|
|
|
getAlertRulesAsync: typeof getAlertRulesAsync;
|
|
|
+ stateFilter: string;
|
|
|
}
|
|
|
|
|
|
interface State {
|
|
|
- rules: AlertRule[];
|
|
|
search: string;
|
|
|
- stateFilter: string;
|
|
|
}
|
|
|
|
|
|
export class AlertRuleList extends PureComponent<Props, State> {
|
|
|
@@ -37,29 +36,31 @@ export class AlertRuleList extends PureComponent<Props, State> {
|
|
|
super(props);
|
|
|
|
|
|
this.state = {
|
|
|
- rules: [],
|
|
|
search: '',
|
|
|
- stateFilter: '',
|
|
|
};
|
|
|
}
|
|
|
|
|
|
componentDidMount() {
|
|
|
- this.fetchRules();
|
|
|
+ this.fetchRules(this.getStateFilter());
|
|
|
}
|
|
|
|
|
|
onStateFilterChanged = evt => {
|
|
|
this.props.updateLocation({
|
|
|
query: { state: evt.target.value },
|
|
|
});
|
|
|
- this.fetchRules();
|
|
|
+ this.fetchRules(evt.target.value);
|
|
|
};
|
|
|
|
|
|
- async fetchRules() {
|
|
|
- await this.props.getAlertRulesAsync();
|
|
|
+ getStateFilter(): string {
|
|
|
+ const { stateFilter } = this.props;
|
|
|
+ if (stateFilter) {
|
|
|
+ return stateFilter.toString();
|
|
|
+ }
|
|
|
+ return 'all';
|
|
|
+ }
|
|
|
|
|
|
- // this.props.alertList.loadRules({
|
|
|
- // state: this.props.view.query.get('state') || 'all',
|
|
|
- // });
|
|
|
+ async fetchRules(stateFilter: string) {
|
|
|
+ await this.props.getAlertRulesAsync({ state: stateFilter });
|
|
|
}
|
|
|
|
|
|
onOpenHowTo = () => {
|
|
|
@@ -76,7 +77,7 @@ export class AlertRuleList extends PureComponent<Props, State> {
|
|
|
|
|
|
render() {
|
|
|
const { navModel, alertRules } = this.props;
|
|
|
- const { search, stateFilter } = this.state;
|
|
|
+ const { search } = this.state;
|
|
|
|
|
|
return (
|
|
|
<div>
|
|
|
@@ -99,7 +100,7 @@ export class AlertRuleList extends PureComponent<Props, State> {
|
|
|
<label className="gf-form-label">States</label>
|
|
|
|
|
|
<div className="gf-form-select-wrapper width-13">
|
|
|
- <select className="gf-form-input" onChange={this.onStateFilterChanged} value={stateFilter}>
|
|
|
+ <select className="gf-form-input" onChange={this.onStateFilterChanged} value={this.getStateFilter()}>
|
|
|
{this.stateFilters.map(AlertStateFilterOption)}
|
|
|
</select>
|
|
|
</div>
|
|
|
@@ -200,6 +201,7 @@ export class AlertRuleItem extends React.Component<AlertRuleItemProps, any> {
|
|
|
const mapStateToProps = (state: StoreState) => ({
|
|
|
navModel: getNavModel(state.navIndex, 'alert-list'),
|
|
|
alertRules: state.alertRules,
|
|
|
+ stateFilter: state.location.query.state,
|
|
|
});
|
|
|
|
|
|
const mapDispatchToProps = {
|