diff --git a/html/includes/common/generic-graph.inc.php b/html/includes/common/generic-graph.inc.php index 086239df7a..e7cf4b9ed2 100644 --- a/html/includes/common/generic-graph.inc.php +++ b/html/includes/common/generic-graph.inc.php @@ -61,6 +61,11 @@ if( defined('show_settings') || empty($widget_settings) ) { $common_output[] = ''; } $common_output[] = ' + + + + +
@@ -123,6 +128,18 @@ if( defined('show_settings') || empty($widget_settings) ) {
+
+
+ +
+
+ +
+
@@ -307,7 +324,7 @@ else { $widget_settings['title'] = ""; $type = explode('_',$widget_settings['graph_type'],2); $type = array_shift($type); - $widget_settings['graph_'.$type] = json_decode($widget_settings['graph_'.$type],true); + $widget_settings['graph_'.$type] = json_decode($widget_settings['graph_'.$type],true)?:$widget_settings['graph_'.$type]; if ($type == 'device') { $widget_settings['title'] = $widget_settings['graph_device']['name']." / ".$widget_settings['graph_type']; $param = 'device='.$widget_settings['graph_device']['device_id']; @@ -318,6 +335,37 @@ else { elseif ($type == 'munin') { $param = 'device='.$widget_settings['graph_'.$type]['device_id'].'&plugin='.$widget_settings['graph_'.$type]['name']; } + elseif ($type == 'transit' || $type == 'peering' || $type == 'core') { + $type_where = ' ('; + if (is_array($config[$type.'_descr']) === false) { + $config[$type.'_descr'] = array($config[$type.'_descr']); + } + foreach ($config[$type.'_descr'] as $additional_type) { + if (!empty($additional_type)) { + $type_where .= " $or `port_descr_type` = ?"; + $or = 'OR'; + $type_param[] = $additional_type; + } + } + $type_where .= " $or `port_descr_type` = ?"; + $or = 'OR'; + $type_param[] = $type; + $type_where .= ') '; + foreach (dbFetchRows("SELECT port_id FROM `ports` WHERE $type_where ORDER BY ifAlias", $type_param) as $port) { + $tmp[] = $port['port_id']; + } + $param = 'id='.implode(',',$tmp); + $widget_settings['graph_type']= 'multiport_bits_separate'; + $widget_settings['title'] = 'Overall '.ucfirst($type).' Bits ('.$widget_settings['graph_range'].')'; + } + elseif ($type == 'custom') { + foreach (dbFetchRows("SELECT port_id FROM `ports` WHERE `port_descr_type` = ? ORDER BY ifAlias", array($widget_settings['graph_custom'])) as $port) { + $tmp[] = $port['port_id']; + } + $param = 'id='.implode(',',$tmp); + $widget_settings['graph_type']= 'multiport_bits_separate'; + $widget_settings['title'] = 'Overall '.ucfirst(htmlspecialchars($widget_settings['graph_custom'])).' Bits ('.$widget_settings['graph_range'].')'; + } else { $param = 'id='.$widget_settings['graph_'.$type][$type.'_id']; }