From 7e6e66f3624fdfa7b1cd6e23f4fbacbfc4553fb6 Mon Sep 17 00:00:00 2001 From: Paul Gear Date: Tue, 26 Nov 2013 11:03:00 +1000 Subject: [PATCH] Make top 10 box actually useful: - Fix overlib popup when host metadata contains quotes - Only show ports with traffic - Add host & port links, and port graph --- html/includes/front/top_ports.inc.php | 4 +++- html/includes/functions.inc.php | 29 ++++++++++++++++++++------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/html/includes/front/top_ports.inc.php b/html/includes/front/top_ports.inc.php index ff59d3a5e..6f5d3cbc4 100644 --- a/html/includes/front/top_ports.inc.php +++ b/html/includes/front/top_ports.inc.php @@ -20,6 +20,8 @@ $query = " FROM ports as p, devices as d WHERE d.device_id = p.device_id AND unix_timestamp() - p.poll_time < $seconds + AND ( p.ifInOctets_rate > 0 + OR p.ifOutOctets_rate > 0 ) ORDER BY total desc LIMIT $top "; @@ -27,7 +29,7 @@ $query = " echo("Top $top ports (last $minutes minutes)"); echo(''); foreach (dbFetchRows($query) as $result) { - echo(''); + echo(''); } echo('
'.$result['hostname'].''.$result['ifIndex'].''.$result['ifDescr'].''.$result['total'].'
'.generate_device_link($result).''.generate_port_link($result).''.generate_port_link($result, generate_port_thumbnail($result)).'
'); diff --git a/html/includes/functions.inc.php b/html/includes/functions.inc.php index 24277c2ba..ab9541d6c 100644 --- a/html/includes/functions.inc.php +++ b/html/includes/functions.inc.php @@ -81,7 +81,7 @@ function generate_url($vars, $new_vars = array()) function escape_quotes($text) { - return str_replace('"', "\'", $text); + return str_replace('"', "\'", str_replace("'", "\'", $text)); } function generate_overlib_content($graph_array, $text) @@ -164,13 +164,13 @@ function generate_device_link($device, $text=NULL, $vars=array(), $start=0, $end $graphhead = $entry['text']; $contents .= '
'; $contents .= ''.$graphhead.'
'; - $contents .= escape_quotes(generate_minigraph_image($device, $start, $end, $graph)); - $contents .= escape_quotes(generate_minigraph_image($device, $config['time']['week'], $end, $graph)); + $contents .= generate_minigraph_image($device, $start, $end, $graph); + $contents .= generate_minigraph_image($device, $config['time']['week'], $end, $graph); $contents .= '
'; } $text = htmlentities($text); - $link = overlib_link($url, $text, $contents, $class); + $link = overlib_link($url, $text, escape_quotes($contents), $class); if (device_permitted($device['device_id'])) { @@ -452,11 +452,26 @@ function generate_port_url($port, $vars=array()) return generate_url(array('page' => 'device', 'device' => $port['device_id'], 'tab' => 'port', 'port' => $port['port_id']), $vars); } -function print_port_thumbnail($args) +function generate_port_image($args) { if (!$args['bg']) { $args['bg'] = "FFFFFF"; } - $args['content'] = ""; - echo(generate_port_link($args, $args['content'])); + return ""; +} + +function generate_port_thumbnail($port) +{ + global $config; + $port['graph_type'] = 'port_bits'; + $port['from'] = $config['time']['day']; + $port['to'] = $config['time']['now']; + $port['width'] = 150; + $port['height'] = 19; + return generate_port_image($port); +} + +function print_port_thumbnail($args) +{ + echo(generate_port_link($args, generate_port_image($args))); } function print_optionbar_start ($height = 0, $width = 0, $marginbottom = 5)