updated alert template mapping to own table

This commit is contained in:
laf
2015-06-15 11:13:19 +01:00
parent 1b7bbf8604
commit 6813c1face
5 changed files with 23 additions and 11 deletions

View File

@@ -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 {

View File

@@ -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;
} }
} }

View File

@@ -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);
} }

View File

@@ -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
View 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