mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
35 lines
971 B
TypeScript
35 lines
971 B
TypeScript
import { types, getEnv, flow } from 'mobx-state-tree';
|
|
import { setStateFields } from './helpers';
|
|
|
|
export const AlertRule = types
|
|
.model('AlertRule', {
|
|
id: types.identifier(types.number),
|
|
dashboardId: types.number,
|
|
panelId: types.number,
|
|
name: types.string,
|
|
state: types.string,
|
|
stateText: types.string,
|
|
stateIcon: types.string,
|
|
stateClass: types.string,
|
|
stateAge: types.string,
|
|
info: types.optional(types.string, ''),
|
|
url: types.string,
|
|
})
|
|
.views(self => ({
|
|
get isPaused() {
|
|
return self.state === 'paused';
|
|
},
|
|
}))
|
|
.actions(self => ({
|
|
/**
|
|
* will toggle alert rule paused state
|
|
*/
|
|
togglePaused: flow(function* togglePaused() {
|
|
const backendSrv = getEnv(self).backendSrv;
|
|
const payload = { paused: !self.isPaused };
|
|
const res = yield backendSrv.post(`/api/alerts/${self.id}/pause`, payload);
|
|
setStateFields(self, res.state);
|
|
self.info = '';
|
|
}),
|
|
}));
|