mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
updated alert template mapping to own table
This commit is contained in:
@@ -93,7 +93,7 @@ function IssueAlert($alert) {
|
|||||||
}
|
}
|
||||||
$obj = DescribeAlert($alert);
|
$obj = DescribeAlert($alert);
|
||||||
if( is_array($obj) ) {
|
if( is_array($obj) ) {
|
||||||
$tpl = dbFetchRow('SELECT template FROM alert_templates WHERE rule_id LIKE "%,'.$alert['rule_id'].',%"');
|
$tpl = dbFetchRow("SELECT `template` FROM `alert_templates` JOIN `alert_template_map` ON `alert_template_map`.`alert_templates_id`=`alert_templates`.`id` WHERE `alert_template_map`.`alert_rule_id`=?", array($alert['rule_id']));
|
||||||
if( isset($tpl['template']) ) {
|
if( isset($tpl['template']) ) {
|
||||||
$tpl = $tpl['template'];
|
$tpl = $tpl['template'];
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -20,12 +20,22 @@ if(!is_numeric($_POST['template_id'])) {
|
|||||||
echo('ERROR: No template selected');
|
echo('ERROR: No template selected');
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
if(dbUpdate(array('rule_id' => mres($_POST['rule_id'])), 'alert_templates', '`id`=?', array($_POST['template_id'])) >= 0) {
|
$rules = preg_split("/,/",mres($_POST['rule_id']));
|
||||||
echo('Alert rules have been attached to this template.');
|
$success = FALSE;
|
||||||
exit;
|
foreach ($rules as $rule_id) {
|
||||||
} else {
|
$db_id = dbInsert(array('alert_rule_id' => $rule_id, 'alert_templates_id' => mres($_POST['template_id'])), 'alert_template_map');
|
||||||
echo('ERROR: Alert rules have not been attached to this template.');
|
if ($db_id > 0) {
|
||||||
exit;
|
$success = TRUE;
|
||||||
|
$ids[] = $db_id;
|
||||||
|
} else {
|
||||||
|
echo('ERROR: Alert rules have not been attached to this template.');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($success === TRUE) {
|
||||||
|
dbDelete('alert_template_map',"id NOT IN (".implode(',',$ids).")");
|
||||||
|
echo "Alert rules have been attached to this template. $template_map_ids";
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,9 @@ if(is_admin() === false) {
|
|||||||
$template_id = ($_POST['template_id']);
|
$template_id = ($_POST['template_id']);
|
||||||
|
|
||||||
if(is_numeric($template_id) && $template_id > 0) {
|
if(is_numeric($template_id) && $template_id > 0) {
|
||||||
$template = dbFetchCell("SELECT `rule_id` FROM `alert_templates` WHERE `id` = ? LIMIT 1",array($template_id));
|
foreach (dbFetchRows("SELECT `alert_rule_id` FROM `alert_template_map` WHERE `alert_templates_id` = ?",array($template_id)) as $rule) {
|
||||||
$rule_id = split(",", $template);
|
$rules[] = $rule['alert_rule_id'];
|
||||||
$output = array('rule_id'=>$rule_id);
|
}
|
||||||
|
$output = array('rule_id'=>$rules);
|
||||||
echo _json_encode($output);
|
echo _json_encode($output);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ $('#alert-template-attach').click('', function(event) {
|
|||||||
$('#rules_list :selected').each(function(i, selectedElement) {
|
$('#rules_list :selected').each(function(i, selectedElement) {
|
||||||
items.push($(selectedElement).val());
|
items.push($(selectedElement).val());
|
||||||
});
|
});
|
||||||
var rules = items.join(', ');
|
var rules = items.join(',');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: '/ajax_form.php',
|
url: '/ajax_form.php',
|
||||||
|
|||||||
1
sql-schema/053.sql
Normal file
1
sql-schema/053.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
CREATE TABLE `alert_template_map` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`alert_templates_id` INT NOT NULL ,`alert_rule_id` INT NOT NULL ,INDEX ( `alert_templates_id` , `alert_rule_id` )) ENGINE = INNODB
|
||||||
Reference in New Issue
Block a user