From 3a65fab2fbe01d87c0aac5e40b3378a1e3f68820 Mon Sep 17 00:00:00 2001 From: f0o Date: Wed, 2 Mar 2016 16:31:17 +0000 Subject: [PATCH 1/6] Added HTML switch for mail transport --- includes/alerts/transport.mail.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/alerts/transport.mail.php b/includes/alerts/transport.mail.php index 60837b300..56608aa69 100644 --- a/includes/alerts/transport.mail.php +++ b/includes/alerts/transport.mail.php @@ -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 ); From 34e0146d8e462293c0ea8145dc8979a562d65dbb Mon Sep 17 00:00:00 2001 From: f0o Date: Wed, 2 Mar 2016 16:33:46 +0000 Subject: [PATCH 2/6] Added {calc} operation to produce inline calculations in templates --- alerts.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/alerts.php b/alerts.php index 6d791d213..4be4e34a6 100755 --- a/alerts.php +++ b/alerts.php @@ -390,6 +390,10 @@ function FormatAlertTpl($obj) { $pos = $x; $for = true; } + else if ($buff == '{calc') { + $pos = $x; + $calc = true; + } if ($pos != -1 && $msg[$x] == '}') { $orig = $buff; @@ -411,6 +415,14 @@ function FormatAlertTpl($obj) { ' as $key=>$value) { $ret .= "', ); } + else if ($calc) { + $calc = false; + $o = 5; + $native = array( + '"; $ret .= (float) (0+(', + ')); $ret .= "', + ); + } else { continue; } From 1dc99b83c59a5ede6a46746ea7b47113f16fd0e6 Mon Sep 17 00:00:00 2001 From: f0o Date: Wed, 2 Mar 2016 16:53:53 +0000 Subject: [PATCH 3/6] Added %diff as placeholder for changed objects between worsens/betters Added %elapsed in all cases --- alerts.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/alerts.php b/alerts.php index 4be4e34a6..669c64d64 100755 --- a/alerts.php +++ b/alerts.php @@ -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) { $ret .= ' Betters'; $state = 4; + $alert['details']['diff'] = array_diff($alert['details']['rule'],$chk); } if ($state > 0 && $n > 0) { @@ -485,6 +487,10 @@ function DescribeAlert($alert) { } } } + $obj['elapsed'] = TimeFormat(time() - strtotime($alert['time_logged'])); + if( !empty($extra['diff']) ) { + $obj['diff'] = $extra['diff']; + } } else if ($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'])); From 702fa614583febfdb73a8847c0a7d4a2d25aa3db Mon Sep 17 00:00:00 2001 From: f0o Date: Wed, 2 Mar 2016 17:08:45 +0000 Subject: [PATCH 4/6] Fix Math issue in rule generation --- includes/alerts.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/alerts.inc.php b/includes/alerts.inc.php index 684426f4d..a1b14d07b 100644 --- a/includes/alerts.inc.php +++ b/includes/alerts.inc.php @@ -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(); From 29eea12b08e7b3fb9a57e8a5c1d74dfa5a0deba7 Mon Sep 17 00:00:00 2001 From: Daniel Preussker Date: Fri, 4 Mar 2016 14:36:47 +0000 Subject: [PATCH 5/6] Scrut fixes --- alerts.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alerts.php b/alerts.php index 669c64d64..818ae6670 100755 --- a/alerts.php +++ b/alerts.php @@ -372,7 +372,7 @@ 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]; From 46bee4021f0045b7c8df5f835e2aee35b56524af Mon Sep 17 00:00:00 2001 From: Daniel Preussker Date: Fri, 4 Mar 2016 16:25:51 +0000 Subject: [PATCH 6/6] Changed `else if` to `elseif` --- alerts.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/alerts.php b/alerts.php index 818ae6670..ad38f2e56 100755 --- a/alerts.php +++ b/alerts.php @@ -197,7 +197,7 @@ function RunFollowUp() { $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); @@ -377,10 +377,10 @@ function FormatAlertTpl($obj) { if ($msg[$x] == '{' && $buff == '') { $buff .= $msg[$x]; } - else if ($buff == '{ ') { + elseif ($buff == '{ ') { $buff = ''; } - else if ($buff != '') { + elseif ($buff != '') { $buff .= $msg[$x]; } @@ -388,11 +388,11 @@ function FormatAlertTpl($obj) { $pos = $x; $if = true; } - else if ($buff == '{foreach') { + elseif ($buff == '{foreach') { $pos = $x; $for = true; } - else if ($buff == '{calc') { + elseif ($buff == '{calc') { $pos = $x; $calc = true; } @@ -409,7 +409,7 @@ function FormatAlertTpl($obj) { ' ) { $ret .= "', ); } - else if ($for) { + elseif ($for) { $for = false; $o = 8; $native = array( @@ -417,7 +417,7 @@ function FormatAlertTpl($obj) { ' as $key=>$value) { $ret .= "', ); } - else if ($calc) { + elseif ($calc) { $calc = false; $o = 5; $native = array( @@ -471,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'; } @@ -492,7 +492,7 @@ function DescribeAlert($alert) { $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;