mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Added ability to name alert rules
This commit is contained in:
@ -23,6 +23,7 @@ $alert_id = $_POST['alert_id'];
|
|||||||
$count = mres($_POST['count']);
|
$count = mres($_POST['count']);
|
||||||
$delay = mres($_POST['delay']);
|
$delay = mres($_POST['delay']);
|
||||||
$mute = mres($_POST['mute']);
|
$mute = mres($_POST['mute']);
|
||||||
|
$name = mres($_POST['name']);
|
||||||
|
|
||||||
if(empty($rule)) {
|
if(empty($rule)) {
|
||||||
$update_message = "ERROR: No rule was generated";
|
$update_message = "ERROR: No rule was generated";
|
||||||
@ -40,14 +41,14 @@ if(empty($rule)) {
|
|||||||
$extra = array('mute'=>$mute,'count'=>$count,'delay'=>$delay_sec);
|
$extra = array('mute'=>$mute,'count'=>$count,'delay'=>$delay_sec);
|
||||||
$extra_json = json_encode($extra);
|
$extra_json = json_encode($extra);
|
||||||
if(is_numeric($alert_id) && $alert_id > 0) {
|
if(is_numeric($alert_id) && $alert_id > 0) {
|
||||||
if(dbUpdate(array('rule' => $rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json), 'alert_rules', 'id=?',array($alert_id)) >= 0) {
|
if(dbUpdate(array('rule' => $rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json,'name'=>$name), 'alert_rules', 'id=?',array($alert_id)) >= 0) {
|
||||||
$update_message = "Edited Rule: <i>".$rule."</i>";
|
$update_message = "Edited Rule: <i>$name: $rule</i>";
|
||||||
} else {
|
} else {
|
||||||
$update_message = "ERROR: Failed to edit Rule: <i>".$rule."</i>";
|
$update_message = "ERROR: Failed to edit Rule: <i>".$rule."</i>";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if( dbInsert(array('device_id'=>$device_id,'rule'=>$rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json),'alert_rules') ) {
|
if( dbInsert(array('device_id'=>$device_id,'rule'=>$rule,'severity'=>mres($_POST['severity']),'extra'=>$extra_json,'name'=>$name),'alert_rules') ) {
|
||||||
$update_message = "Added Rule: <i>".$rule.$mute."</i>";
|
$update_message = "Added Rule: <i>$name: $rule</i>";
|
||||||
} else {
|
} else {
|
||||||
$update_message = "ERROR: Failed to add Rule: <i>".$rule."</i>";
|
$update_message = "ERROR: Failed to add Rule: <i>".$rule."</i>";
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,6 @@ if(is_numeric($alert_id) && $alert_id > 0) {
|
|||||||
$rule_split = preg_split('/([a-zA-Z0-9_\-\.\=\%\ \"\'\!\~]+[&&||]+)/',$rule['rule'], -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
$rule_split = preg_split('/([a-zA-Z0-9_\-\.\=\%\ \"\'\!\~]+[&&||]+)/',$rule['rule'], -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||||||
$count = count($rule_split) - 1;
|
$count = count($rule_split) - 1;
|
||||||
$rule_split[$count] = $rule_split[$count].'&&';
|
$rule_split[$count] = $rule_split[$count].'&&';
|
||||||
$output = array('severity'=>$rule['severity'],'extra'=>$rule['extra'],'rules'=>$rule_split);
|
$output = array('severity'=>$rule['severity'],'extra'=>$rule['extra'],'name'=>$rule['name'],'rules'=>$rule_split);
|
||||||
echo _json_encode($output);
|
echo _json_encode($output);
|
||||||
}
|
}
|
||||||
|
@ -100,6 +100,12 @@ if(is_admin() === false) {
|
|||||||
<input type="checkbox" name="mute" id="mute">
|
<input type="checkbox" name="mute" id="mute">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='name' class='col-sm-3 control-label'>Rule name: </label>
|
||||||
|
<div class='col-sm-9'>
|
||||||
|
<input type='text' id='name' name='name' class='form-control' maxlength='200'>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-sm-offset-3 col-sm-3">
|
<div class="col-sm-offset-3 col-sm-3">
|
||||||
<button class="btn btn-default btn-sm" type="submit" name="rule-submit" id="rule-submit" value="save">Save Rule</button>
|
<button class="btn btn-default btn-sm" type="submit" name="rule-submit" id="rule-submit" value="save">Save Rule</button>
|
||||||
@ -157,6 +163,7 @@ $('#create-alert').on('show.bs.modal', function (event) {
|
|||||||
if(extra['mute']) {
|
if(extra['mute']) {
|
||||||
$('#mute').click();
|
$('#mute').click();
|
||||||
}
|
}
|
||||||
|
$('#name').val(output['name']);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -22,6 +22,7 @@ echo '<div class="table-responsive">
|
|||||||
<table class="table table-hover table-condensed" width="100%">
|
<table class="table table-hover table-condensed" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
|
<th>Name</th>
|
||||||
<th>Rule</th>
|
<th>Rule</th>
|
||||||
<th>Severity</th>
|
<th>Severity</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
@ -30,7 +31,7 @@ echo '<div class="table-responsive">
|
|||||||
<th>Action</th>
|
<th>Action</th>
|
||||||
</tr>';
|
</tr>';
|
||||||
|
|
||||||
echo ('<td colspan="6">');
|
echo ('<td colspan="7">');
|
||||||
if ($_SESSION['userlevel'] == '10') {
|
if ($_SESSION['userlevel'] == '10') {
|
||||||
echo('<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#create-alert" data-device_id="'. $device['device_id'] .'">Create new alert rule</button>');
|
echo('<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#create-alert" data-device_id="'. $device['device_id'] .'">Create new alert rule</button>');
|
||||||
}
|
}
|
||||||
@ -100,6 +101,7 @@ foreach( dbFetchRows($full_query, $param) as $rule ) {
|
|||||||
$rule_extra = json_decode($rule['extra'],TRUE);
|
$rule_extra = json_decode($rule['extra'],TRUE);
|
||||||
echo "<tr class='".$extra."' id='row_".$rule['id']."'>";
|
echo "<tr class='".$extra."' id='row_".$rule['id']."'>";
|
||||||
echo "<td><i>#".((int) $rulei++)."</i></td>";
|
echo "<td><i>#".((int) $rulei++)."</i></td>";
|
||||||
|
echo "<td>".$rule['name']."</td>";
|
||||||
echo "<td><i>".htmlentities($rule['rule'])."</i></td>";
|
echo "<td><i>".htmlentities($rule['rule'])."</i></td>";
|
||||||
echo "<td>".$rule['severity']."</td>";
|
echo "<td>".$rule['severity']."</td>";
|
||||||
echo "<td><span id='alert-rule-".$rule['id']."' class='glyphicon glyphicon-".$ico." glyphicon-large text-".$col."'></span> ";
|
echo "<td><span id='alert-rule-".$rule['id']."' class='glyphicon glyphicon-".$ico." glyphicon-large text-".$col."'></span> ";
|
||||||
@ -122,7 +124,7 @@ foreach( dbFetchRows($full_query, $param) as $rule ) {
|
|||||||
}
|
}
|
||||||
if($count % $results > 0) {
|
if($count % $results > 0) {
|
||||||
echo(' <tr>
|
echo(' <tr>
|
||||||
<td colspan="7" align="center">'. generate_pagination($count,$results,$page_number) .'</td>
|
<td colspan="8" align="center">'. generate_pagination($count,$results,$page_number) .'</td>
|
||||||
</tr>');
|
</tr>');
|
||||||
}
|
}
|
||||||
echo '</table>
|
echo '</table>
|
||||||
|
2
sql-schema/037.sql
Normal file
2
sql-schema/037.sql
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
-- Adds name column to alert_rules table
|
||||||
|
ALTER TABLE `alert_rules` ADD `name` VARCHAR( 255 ) NOT NULL ;
|
Reference in New Issue
Block a user