networkmaps in dashboards MC
This commit is contained in:
parent
1c94f619ef
commit
5143bbdfdb
|
@ -1727,7 +1727,10 @@ class NetworkMap
|
||||||
$item['image_height'] = 0;
|
$item['image_height'] = 0;
|
||||||
if (empty($node['style']['image']) === false) {
|
if (empty($node['style']['image']) === false) {
|
||||||
$item['image_url'] = ui_get_full_url(
|
$item['image_url'] = ui_get_full_url(
|
||||||
$node['style']['image']
|
$node['style']['image'],
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
);
|
);
|
||||||
$image_size = getimagesize(
|
$image_size = getimagesize(
|
||||||
$config['homedir'].'/'.$node['style']['image']
|
$config['homedir'].'/'.$node['style']['image']
|
||||||
|
@ -3391,7 +3394,7 @@ class NetworkMap
|
||||||
&& isset($this->useTooltipster)
|
&& isset($this->useTooltipster)
|
||||||
&& $this->useTooltipster == true
|
&& $this->useTooltipster == true
|
||||||
) {
|
) {
|
||||||
$output .= '<script type="text/javascript" src="'.ui_get_full_url(
|
$output = '<script type="text/javascript" src="'.ui_get_full_url(
|
||||||
'include/javascript/d3.3.5.14.js'
|
'include/javascript/d3.3.5.14.js'
|
||||||
).'" charset="utf-8"></script>';
|
).'" charset="utf-8"></script>';
|
||||||
$output .= '<script type="text/javascript" src="'.ui_get_full_url(
|
$output .= '<script type="text/javascript" src="'.ui_get_full_url(
|
||||||
|
@ -3443,13 +3446,35 @@ class NetworkMap
|
||||||
|
|
||||||
$networkmap['filter']['l2_network_interfaces'] = 1;
|
$networkmap['filter']['l2_network_interfaces'] = 1;
|
||||||
|
|
||||||
$output .= '<script type="text/javascript" src="'.$config['homeurl'].'include/javascript/d3.3.5.14.js" charset="utf-8"></script>';
|
$output .= '<script type="text/javascript" src="';
|
||||||
|
$output .= ui_get_full_url(
|
||||||
|
'include/javascript/d3.3.5.14.js',
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
$output .= '" charset="utf-8"></script>';
|
||||||
|
|
||||||
if (isset($this->map['__simulated']) === false) {
|
if (isset($this->map['__simulated']) === false) {
|
||||||
// Load context menu if manageable networkmap.
|
// Load context menu if manageable networkmap.
|
||||||
$output .= '<script type="text/javascript" src="'.$config['homeurl'].'include/javascript/jquery.contextMenu.js"></script>';
|
$output .= '<script type="text/javascript" src="';
|
||||||
|
$output .= ui_get_full_url(
|
||||||
|
'include/javascript/jquery.contextMenu.js',
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
$output .= '" charset="utf-8"></script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$output .= '<script type="text/javascript" src="'.$config['homeurl'].'include/javascript/functions_pandora_networkmap.js"></script>';
|
$output .= '<script type="text/javascript" src="';
|
||||||
|
$output .= ui_get_full_url(
|
||||||
|
'include/javascript/functions_pandora_networkmap.js',
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
$output .= '" charset="utf-8"></script>';
|
||||||
|
|
||||||
// Open networkconsole_id div.
|
// Open networkconsole_id div.
|
||||||
$output .= '<div id="networkconsole_'.$networkmap['id'].'"';
|
$output .= '<div id="networkconsole_'.$networkmap['id'].'"';
|
||||||
|
|
|
@ -31,6 +31,7 @@ require_once 'functions_agents.php';
|
||||||
require_once $config['homedir'].'/include/functions_modules.php';
|
require_once $config['homedir'].'/include/functions_modules.php';
|
||||||
require_once $config['homedir'].'/include/functions_groups.php';
|
require_once $config['homedir'].'/include/functions_groups.php';
|
||||||
enterprise_include_once('include/functions_networkmap.php');
|
enterprise_include_once('include/functions_networkmap.php');
|
||||||
|
enterprise_include_once('include/functions_metaconsole.php');
|
||||||
|
|
||||||
// Check if a node descends from a given node
|
// Check if a node descends from a given node
|
||||||
function networkmap_is_descendant($node, $ascendant, $parents)
|
function networkmap_is_descendant($node, $ascendant, $parents)
|
||||||
|
@ -1228,7 +1229,7 @@ function networkmap_get_networkmap($id_networkmap, $filter=false, $fields=false,
|
||||||
* @param array Extra filter.
|
* @param array Extra filter.
|
||||||
* @param array Fields to get.
|
* @param array Fields to get.
|
||||||
*
|
*
|
||||||
* @return Networkmap with the given id. False if not available or readable.
|
* @return array Networkmap with the given id. False if not available or readable.
|
||||||
*/
|
*/
|
||||||
function networkmap_get_networkmaps(
|
function networkmap_get_networkmaps(
|
||||||
$id_user=null,
|
$id_user=null,
|
||||||
|
@ -1243,10 +1244,16 @@ function networkmap_get_networkmaps(
|
||||||
$id_user = $config['id_user'];
|
$id_user = $config['id_user'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure filters
|
// Configure filters.
|
||||||
$where = [];
|
$where = [];
|
||||||
$where['type'] = MAP_TYPE_NETWORKMAP;
|
$where['type'] = MAP_TYPE_NETWORKMAP;
|
||||||
$where['id_group'] = array_keys(users_get_groups($id_user, 'AR', $return_all_group));
|
$where['id_group'] = array_keys(
|
||||||
|
users_get_groups(
|
||||||
|
$id_user,
|
||||||
|
'AR',
|
||||||
|
$return_all_group
|
||||||
|
)
|
||||||
|
);
|
||||||
if (!empty($type)) {
|
if (!empty($type)) {
|
||||||
$where['subtype'] = $type;
|
$where['subtype'] = $type;
|
||||||
}
|
}
|
||||||
|
@ -1256,7 +1263,30 @@ function networkmap_get_networkmaps(
|
||||||
$where['order'][1]['field'] = 'name';
|
$where['order'][1]['field'] = 'name';
|
||||||
$where['order'][1]['order'] = 'ASC';
|
$where['order'][1]['order'] = 'ASC';
|
||||||
|
|
||||||
$networkmaps_raw = db_get_all_rows_filter('tmap', $where);
|
if ((bool) is_metaconsole() === true) {
|
||||||
|
$servers = metaconsole_get_connection_names();
|
||||||
|
foreach ($servers as $key => $server) {
|
||||||
|
$connection = metaconsole_get_connection($server);
|
||||||
|
if (metaconsole_connect($connection) != NOERR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tmp_maps = db_get_all_rows_filter('tmap', $where);
|
||||||
|
if ($tmp_maps !== false) {
|
||||||
|
foreach ($tmp_maps as $g) {
|
||||||
|
$g['id_t'] = $g['id'];
|
||||||
|
$g['id'] = $connection['id'].'_'.$g['id'];
|
||||||
|
$g['name'] = $g['name'].' ('.$connection['server_name'].')';
|
||||||
|
$networkmaps_raw[] = $g;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
metaconsole_restore_db();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$networkmaps_raw = db_get_all_rows_filter('tmap', $where);
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($networkmaps_raw)) {
|
if (empty($networkmaps_raw)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,15 +22,30 @@ function include_javascript_d3($return=false)
|
||||||
$is_include_javascript = true;
|
$is_include_javascript = true;
|
||||||
|
|
||||||
$output .= '<script type="text/javascript" src="';
|
$output .= '<script type="text/javascript" src="';
|
||||||
$output .= ui_get_full_url('/include/javascript/d3.3.5.14.js');
|
$output .= ui_get_full_url(
|
||||||
|
'include/javascript/d3.3.5.14.js',
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
$output .= '" charset="utf-8"></script>';
|
$output .= '" charset="utf-8"></script>';
|
||||||
|
|
||||||
$output .= '<script type="text/javascript" src="';
|
$output .= '<script type="text/javascript" src="';
|
||||||
$output .= ui_get_full_url('/include/graphs/bullet.js');
|
$output .= ui_get_full_url(
|
||||||
|
'include/graphs/bullet.js',
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
$output .= '" charset="utf-8"></script>';
|
$output .= '" charset="utf-8"></script>';
|
||||||
|
|
||||||
$output .= '<script type="text/javascript" src="';
|
$output .= '<script type="text/javascript" src="';
|
||||||
$output .= ui_get_full_url('/include/graphs/pandora.d3.js');
|
$output .= ui_get_full_url(
|
||||||
|
'include/graphs/pandora.d3.js',
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
$output .= '" charset="utf-8"></script>';
|
$output .= '" charset="utf-8"></script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -782,7 +782,8 @@ function dashboardLoadNetworkMap(settings) {
|
||||||
auth_class: settings.auth_class,
|
auth_class: settings.auth_class,
|
||||||
auth_hash: settings.auth_hash,
|
auth_hash: settings.auth_hash,
|
||||||
id_user: settings.id_user,
|
id_user: settings.id_user,
|
||||||
ignore_acl: 1
|
ignore_acl: 1,
|
||||||
|
node: settings.node
|
||||||
},
|
},
|
||||||
dataType: "html",
|
dataType: "html",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
|
|
|
@ -203,6 +203,10 @@ class NetworkMapWidget extends Widget
|
||||||
$values['networkmapId'] = $decoder['networkmaps'];
|
$values['networkmapId'] = $decoder['networkmaps'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($decoder['node']) === true) {
|
||||||
|
$values['node'] = $decoder['node'];
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($decoder['networkmapId']) === true) {
|
if (isset($decoder['networkmapId']) === true) {
|
||||||
$values['networkmapId'] = $decoder['networkmapId'];
|
$values['networkmapId'] = $decoder['networkmapId'];
|
||||||
}
|
}
|
||||||
|
@ -268,14 +272,44 @@ class NetworkMapWidget extends Widget
|
||||||
$return_all_group = true;
|
$return_all_group = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Selected.
|
||||||
|
$selected = $values['networkmapId'];
|
||||||
|
if ((bool) is_metaconsole() === true) {
|
||||||
|
$selected = $values['node'].'_'.$values['networkmapId'];
|
||||||
|
} else {
|
||||||
|
$selected = $values['networkmapId'];
|
||||||
|
}
|
||||||
|
|
||||||
// Map.
|
// Map.
|
||||||
$fields = \networkmap_get_networkmaps(null, null, true, false, $return_all_group);
|
$fields = \networkmap_get_networkmaps(
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
$return_all_group
|
||||||
|
);
|
||||||
|
|
||||||
// If currently selected networkmap is not included in fields array (it belongs to a group over which user has no permissions), then add it to fields array.
|
// If currently selected networkmap is not included in fields array
|
||||||
if ($values['networkmapId'] !== null && !array_key_exists($values['networkmapId'], $fields)) {
|
// (it belongs to a group over which user has no permissions), then add
|
||||||
$selected_networkmap = db_get_row('tmap', 'id', $values['networkmapId']);
|
// it to fields array.
|
||||||
|
if ($values['networkmapId'] !== null
|
||||||
|
&& array_key_exists($selected, $fields) === false
|
||||||
|
) {
|
||||||
|
if ((bool) is_metaconsole() === true) {
|
||||||
|
metaconsole_connect(null, $values['nodeId']);
|
||||||
|
}
|
||||||
|
|
||||||
$fields[$values['networkmapId']] = $selected_networkmap;
|
$selected_networkmap = db_get_value(
|
||||||
|
'id',
|
||||||
|
'tmap',
|
||||||
|
$values['networkmapId']
|
||||||
|
);
|
||||||
|
|
||||||
|
$fields[$selected] = $selected_networkmap;
|
||||||
|
|
||||||
|
if ((bool) is_metaconsole() === true) {
|
||||||
|
metaconsole_restore_db();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$inputs[] = [
|
$inputs[] = [
|
||||||
|
@ -358,7 +392,18 @@ class NetworkMapWidget extends Widget
|
||||||
// Retrieve global - common inputs.
|
// Retrieve global - common inputs.
|
||||||
$values = parent::getPost();
|
$values = parent::getPost();
|
||||||
|
|
||||||
$values['networkmapId'] = \get_parameter('networkmapId', 0);
|
$nmId = \get_parameter('networkmapId', null);
|
||||||
|
|
||||||
|
if ($nmId !== null) {
|
||||||
|
if ((bool) is_metaconsole() === true) {
|
||||||
|
$mc_stuff = explode('_', $nmId);
|
||||||
|
$values['node'] = $mc_stuff[0];
|
||||||
|
$values['networkmapId'] = $mc_stuff[1];
|
||||||
|
} else {
|
||||||
|
$values['networkmapId'] = $nmId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$values['xOffset'] = \get_parameter('xOffset', 0);
|
$values['xOffset'] = \get_parameter('xOffset', 0);
|
||||||
$values['yOffset'] = \get_parameter('yOffset', 0);
|
$values['yOffset'] = \get_parameter('yOffset', 0);
|
||||||
$values['zoomLevel'] = (float) \get_parameter('zoomLevel', 0.5);
|
$values['zoomLevel'] = (float) \get_parameter('zoomLevel', 0.5);
|
||||||
|
@ -382,8 +427,9 @@ class NetworkMapWidget extends Widget
|
||||||
$x_offset = $this->values['xOffset'];
|
$x_offset = $this->values['xOffset'];
|
||||||
$y_offset = $this->values['yOffset'];
|
$y_offset = $this->values['yOffset'];
|
||||||
$zoom_dash = $this->values['zoomLevel'];
|
$zoom_dash = $this->values['zoomLevel'];
|
||||||
|
$node = ($this->values['node'] ?? '');
|
||||||
|
|
||||||
$hash = md5($config['dbpass'].$id_networkmap.$config['id_user']);
|
$hash = md5($config['dbpass'].$id_networkmap.$config['id_user'].$node);
|
||||||
|
|
||||||
$style = 'width:'.$size['width'].'px; height:'.$size['height'].'px;';
|
$style = 'width:'.$size['width'].'px; height:'.$size['height'].'px;';
|
||||||
$id = 'body_cell-'.$this->cellId;
|
$id = 'body_cell-'.$this->cellId;
|
||||||
|
@ -401,6 +447,7 @@ class NetworkMapWidget extends Widget
|
||||||
'id_user' => $config['id_user'],
|
'id_user' => $config['id_user'],
|
||||||
'auth_class' => 'PandoraFMS\Dashboard\Manager',
|
'auth_class' => 'PandoraFMS\Dashboard\Manager',
|
||||||
'auth_hash' => Manager::generatePublicHash(),
|
'auth_hash' => Manager::generatePublicHash(),
|
||||||
|
'node' => $node,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,23 @@ div#page {
|
||||||
width: 90% !important;
|
width: 90% !important;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.networkconsole {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.networkconsole svg {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.minimap {
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
border: 1px solid #bbbbbb;
|
||||||
|
}
|
||||||
|
.holding_networkmap {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
right: 50px;
|
||||||
|
top: 20px;
|
||||||
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ require $config['homedir'].'/vendor/autoload.php';
|
||||||
use PandoraFMS\Dashboard\Manager;
|
use PandoraFMS\Dashboard\Manager;
|
||||||
|
|
||||||
if ((bool) is_metaconsole() === true) {
|
if ((bool) is_metaconsole() === true) {
|
||||||
ui_require_css_file('meta_dashboards.css');
|
ui_require_css_file('meta_dashboards');
|
||||||
}
|
}
|
||||||
|
|
||||||
$ajaxPage = 'operation/dashboard/dashboard';
|
$ajaxPage = 'operation/dashboard/dashboard';
|
||||||
|
|
Loading…
Reference in New Issue