Merge pull request #3138 from f0o/minor-alerting-addons

Minor alerting addons
This commit is contained in:
Neil Lathwood 2016-03-08 21:00:37 +00:00
commit 47b87e959e
3 changed files with 29 additions and 11 deletions

View File

@ -195,10 +195,12 @@ function RunFollowUp() {
if ($n > $o) {
$ret .= ' Worsens';
$state = 3;
$alert['details']['diff'] = array_diff($chk,$alert['details']['rule']);
}
else if ($n < $o) {
elseif ($n < $o) {
$ret .= ' Betters';
$state = 4;
$alert['details']['diff'] = array_diff($alert['details']['rule'],$chk);
}
if ($state > 0 && $n > 0) {
@ -370,15 +372,15 @@ function FormatAlertTpl($obj) {
$s = strlen($msg);
$x = $pos = -1;
$buff = '';
$if = $for = false;
$if = $for = $calc = false;
while (++$x < $s) {
if ($msg[$x] == '{' && $buff == '') {
$buff .= $msg[$x];
}
else if ($buff == '{ ') {
elseif ($buff == '{ ') {
$buff = '';
}
else if ($buff != '') {
elseif ($buff != '') {
$buff .= $msg[$x];
}
@ -386,10 +388,14 @@ function FormatAlertTpl($obj) {
$pos = $x;
$if = true;
}
else if ($buff == '{foreach') {
elseif ($buff == '{foreach') {
$pos = $x;
$for = true;
}
elseif ($buff == '{calc') {
$pos = $x;
$calc = true;
}
if ($pos != -1 && $msg[$x] == '}') {
$orig = $buff;
@ -403,7 +409,7 @@ function FormatAlertTpl($obj) {
' ) { $ret .= "',
);
}
else if ($for) {
elseif ($for) {
$for = false;
$o = 8;
$native = array(
@ -411,6 +417,14 @@ function FormatAlertTpl($obj) {
' as $key=>$value) { $ret .= "',
);
}
elseif ($calc) {
$calc = false;
$o = 5;
$native = array(
'"; $ret .= (float) (0+(',
')); $ret .= "',
);
}
else {
continue;
}
@ -457,10 +471,10 @@ function DescribeAlert($alert) {
if ($alert['state'] == 2) {
$obj['title'] .= ' got acknowledged';
}
else if ($alert['state'] == 3) {
elseif ($alert['state'] == 3) {
$obj['title'] .= ' got worse';
}
else if ($alert['state'] == 4) {
elseif ($alert['state'] == 4) {
$obj['title'] .= ' got better';
}
@ -473,8 +487,12 @@ function DescribeAlert($alert) {
}
}
}
$obj['elapsed'] = TimeFormat(time() - strtotime($alert['time_logged']));
if( !empty($extra['diff']) ) {
$obj['diff'] = $extra['diff'];
}
}
else if ($alert['state'] == 0) {
elseif ($alert['state'] == 0) {
$id = dbFetchRow('SELECT alert_log.id,alert_log.time_logged,alert_log.details FROM alert_log WHERE alert_log.state != 2 && alert_log.state != 0 && alert_log.rule_id = ? && alert_log.device_id = ? && alert_log.id < ? ORDER BY id DESC LIMIT 1', array($alert['rule_id'], $alert['device_id'], $alert['id']));
if (empty($id['id'])) {
return false;

View File

@ -37,7 +37,7 @@ function GenSQL($rule) {
return false;
}
//Pretty-print rule to dissect easier
$pretty = array('*' => ' * ', '(' => ' ( ', ')' => ' ) ', '/' => ' / ', '&&' => ' && ', '||' => ' || ', 'DATE_SUB ( NOW ( )' => 'DATE_SUB( NOW()');
$pretty = array('*' => '*', '(' => ' ( ', ')' => ' ) ', '/' => '/', '&&' => ' && ', '||' => ' || ', 'DATE_SUB ( NOW ( )' => 'DATE_SUB( NOW()');
$rule = str_replace(array_keys($pretty),$pretty,$rule);
$tmp = explode(" ",$rule);
$tables = array();

View File

@ -21,4 +21,4 @@
* @subpackage Alerts
*/
return send_mail($obj['contacts'], $obj['title'], $obj['msg']);
return send_mail($obj['contacts'], $obj['title'], $obj['msg'], $opts['html'] ? true : false );