mirror of
https://github.com/librenms/librenms.git
synced 2024-09-29 14:26:25 +00:00
Added more eye-candy
This commit is contained in:
parent
0fcf3b07a9
commit
4c77c76dfa
@ -1,22 +1,15 @@
|
|||||||
<?php
|
|
||||||
if(!isset($vars['format'])) { $vars['format'] = "basic"; }
|
|
||||||
?>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<span id="message"></span>
|
<span id="message"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
|
||||||
require_once('includes/modal/new_alert_rule.inc.php');
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table id="alerts" class="table table-hover table-condensed alerts">
|
<table id="alerts" class="table table-hover table-condensed alerts">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th data-column-id="status" data-formatter="status" data-sortable="false">Status</th>
|
<th data-column-id="status" data-formatter="status" data-sortable="false">Status</th>
|
||||||
<th data-column-id="id" data-sortable="false">#</th>
|
|
||||||
<th data-column-id="rule">Rule</th>
|
<th data-column-id="rule">Rule</th>
|
||||||
|
<th data-column-id="details" data-sortable="false"> </th>
|
||||||
<th data-column-id="hostname">Hostname</th>
|
<th data-column-id="hostname">Hostname</th>
|
||||||
<th data-column-id="timestamp">Timestamp</th>
|
<th data-column-id="timestamp">Timestamp</th>
|
||||||
<th data-column-id="severity">Severity</th>
|
<th data-column-id="severity">Severity</th>
|
||||||
@ -25,17 +18,14 @@ require_once('includes/modal/new_alert_rule.inc.php');
|
|||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var grid = $("#alerts").bootgrid({
|
var grid = $("#alerts").bootgrid({
|
||||||
ajax: true,
|
ajax: true,
|
||||||
post: function ()
|
post: function ()
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
id: "alerts",
|
id: "alerts",
|
||||||
device_id: '<?php echo $device['device_id']; ?>',
|
device_id: '<?php echo $device['device_id']; ?>'
|
||||||
format: '<?php echo $vars['format']; ?>'
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
url: "/ajax_table.php",
|
url: "/ajax_table.php",
|
||||||
@ -48,35 +38,25 @@ var grid = $("#alerts").bootgrid({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
templates: {
|
templates: {
|
||||||
header: "<div id=\"{{ctx.id}}\" class=\"{{css.header}}\"><div class=\"row\">"+
|
|
||||||
"<div class=\"col-sm-8 actionBar\"><span class=\"pull-left\">"+
|
|
||||||
<?php
|
|
||||||
|
|
||||||
echo('"<span style=\"font-weight: bold;\">Alerts</span> » "+');
|
|
||||||
|
|
||||||
$menu_options = array('basic' => 'Basic',
|
|
||||||
'detail' => 'Detail');
|
|
||||||
|
|
||||||
$sep = "";
|
|
||||||
foreach ($menu_options as $option => $text)
|
|
||||||
{
|
|
||||||
echo("\"$sep\"+");
|
|
||||||
if ($vars['format'] == $option)
|
|
||||||
{
|
|
||||||
echo("\"<span class='pagemenu-selected'>\"+");
|
|
||||||
}
|
|
||||||
echo('"<a href=\"' . generate_url($vars, array('format' => $option)) . '\">' . $text . '</a>"+');
|
|
||||||
if ($vars['format'] == $option)
|
|
||||||
{
|
|
||||||
echo("\"</span>\"+");
|
|
||||||
}
|
|
||||||
$sep = " | ";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
"</span></div>"+
|
|
||||||
"<div class=\"col-sm-4 actionBar\"><p class=\"{{css.search}}\"></p><p class=\"{{css.actions}}\"></p></div></div></div>"
|
|
||||||
}
|
}
|
||||||
}).on("loaded.rs.jquery.bootgrid", function() {
|
}).on("loaded.rs.jquery.bootgrid", function() {
|
||||||
|
grid.find(".incident").each( function() {
|
||||||
|
$(this).parent().addClass('col-md-12 col-sm-12 col-xs-12');
|
||||||
|
$(this).parent().parent().on("mouseenter", function() {
|
||||||
|
$(this).find(".incident-toggle").fadeIn(200);
|
||||||
|
}).on("mouseleave", function() {
|
||||||
|
$(this).find(".incident-toggle").fadeOut(200);
|
||||||
|
}).on("click", function() {
|
||||||
|
var target = $(this).find(".incident-toggle").data("target");
|
||||||
|
$(this).find(".incident-toggle").toggleClass('glyphicon-plus glyphicon-minus');
|
||||||
|
$(target).collapse('toggle');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
grid.find(".incident-toggle").on("click", function(e) {
|
||||||
|
var target = $(this).data("target");
|
||||||
|
$(this).toggleClass('glyphicon-plus glyphicon-minus');
|
||||||
|
$(target).collapse('toggle');
|
||||||
|
});
|
||||||
grid.find(".command-ack-alert").on("click", function(e) {
|
grid.find(".command-ack-alert").on("click", function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var alert_id = $(this).data("alert_id");
|
var alert_id = $(this).data("alert_id");
|
||||||
@ -97,5 +77,4 @@ foreach ($menu_options as $option => $text)
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -41,21 +41,25 @@ foreach (dbFetchRows($sql,$param) as $alert) {
|
|||||||
$log = dbFetchCell("SELECT details FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1", array($alert['rule_id'],$alert['device_id']));
|
$log = dbFetchCell("SELECT details FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1", array($alert['rule_id'],$alert['device_id']));
|
||||||
$log_detail = json_decode(gzuncompress($log),true);
|
$log_detail = json_decode(gzuncompress($log),true);
|
||||||
$fault_detail = '';
|
$fault_detail = '';
|
||||||
foreach ( $log_detail['rule'] as $tmp_alerts ) {
|
foreach ( $log_detail['rule'] as $o=>$tmp_alerts ) {
|
||||||
foreach ($tmp_alerts as $k=>$v) {
|
$fault_detail .= "#".($o+1).": ";
|
||||||
|
$tmp = generate_port_link($tmp_alerts);
|
||||||
|
if( substr($tmp,-5,1) != ">" ) {
|
||||||
|
$fault_detail .= $tmp;
|
||||||
|
} else {
|
||||||
|
$tmp = generate_entity_link($tmp_alerts);
|
||||||
|
if( !empty($tmp) ) {
|
||||||
|
$fault_detail .= $tmp;
|
||||||
|
} else {
|
||||||
|
foreach ($tmp_alerts as $k=>$v) {
|
||||||
if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) {
|
if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) {
|
||||||
if ($format == 'basic') {
|
$fault_detail .= "$k => '$v', ";
|
||||||
$fault_detail .= $k.' => '.$v."\n ";
|
|
||||||
} else {
|
|
||||||
$v = truncate($v,30);
|
|
||||||
$fault_detail .= $k.' => '.$v.", ";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
$fault_detail = rtrim($fault_detail,", ");
|
||||||
}
|
}
|
||||||
if ($format == 'detail') {
|
}
|
||||||
$fault_detail = rtrim($fault_detail,", ");
|
$fault_detail .= "<br>";
|
||||||
}
|
|
||||||
$fault_detail .= "\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$ico = "ok";
|
$ico = "ok";
|
||||||
@ -103,14 +107,16 @@ foreach (dbFetchRows($sql,$param) as $alert) {
|
|||||||
$ack_col = 'danger';
|
$ack_col = 'danger';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($format == 'basic') {
|
|
||||||
$hostname = "<a href=\"device/device=".$alert['device_id']."\"><i title='".htmlentities($fault_detail)."'>".$alert['hostname']."</i></a>";
|
|
||||||
} else {
|
|
||||||
$hostname = "<a href=\"device/device=".$alert['device_id']."\"><i>".$alert['hostname']."<br />$fault_detail</i></a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$response[] = array('id'=>"<i>#".$rulei++."</i>",
|
$hostname = '
|
||||||
|
<div class="incident">
|
||||||
|
'.generate_device_link($alert).'
|
||||||
|
<div id="incident'.($rulei+1).'" class="collapse">'.$fault_detail.'</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
$response[] = array('id'=>$rulei++,
|
||||||
'rule'=>"<i title=\"".htmlentities($alert['rule'])."\">".htmlentities($alert['name'])."</i>",
|
'rule'=>"<i title=\"".htmlentities($alert['rule'])."\">".htmlentities($alert['name'])."</i>",
|
||||||
|
'details'=>'<a class="glyphicon glyphicon-plus incident-toggle" style="display:none" data-toggle="collapse" data-target="#incident'.($rulei).'" data-parent="#alerts"></a>',
|
||||||
'hostname'=>$hostname,
|
'hostname'=>$hostname,
|
||||||
'timestamp'=>($alert['timestamp'] ? $alert['timestamp'] : "N/A"),
|
'timestamp'=>($alert['timestamp'] ? $alert['timestamp'] : "N/A"),
|
||||||
'severity'=>$severity,
|
'severity'=>$severity,
|
||||||
|
Loading…
Reference in New Issue
Block a user