networkmaps in dashboards MC
This commit is contained in:
parent
1c94f619ef
commit
5143bbdfdb
|
@ -1727,7 +1727,10 @@ class NetworkMap
|
|||
$item['image_height'] = 0;
|
||||
if (empty($node['style']['image']) === false) {
|
||||
$item['image_url'] = ui_get_full_url(
|
||||
$node['style']['image']
|
||||
$node['style']['image'],
|
||||
false,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$image_size = getimagesize(
|
||||
$config['homedir'].'/'.$node['style']['image']
|
||||
|
@ -3391,7 +3394,7 @@ class NetworkMap
|
|||
&& isset($this->useTooltipster)
|
||||
&& $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'
|
||||
).'" charset="utf-8"></script>';
|
||||
$output .= '<script type="text/javascript" src="'.ui_get_full_url(
|
||||
|
@ -3443,13 +3446,35 @@ class NetworkMap
|
|||
|
||||
$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) {
|
||||
// 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.
|
||||
$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_groups.php';
|
||||
enterprise_include_once('include/functions_networkmap.php');
|
||||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
|
||||
// Check if a node descends from a given node
|
||||
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 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(
|
||||
$id_user=null,
|
||||
|
@ -1243,10 +1244,16 @@ function networkmap_get_networkmaps(
|
|||
$id_user = $config['id_user'];
|
||||
}
|
||||
|
||||
// Configure filters
|
||||
// Configure filters.
|
||||
$where = [];
|
||||
$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)) {
|
||||
$where['subtype'] = $type;
|
||||
}
|
||||
|
@ -1256,7 +1263,30 @@ function networkmap_get_networkmaps(
|
|||
$where['order'][1]['field'] = 'name';
|
||||
$where['order'][1]['order'] = 'ASC';
|
||||
|
||||
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)) {
|
||||
return [];
|
||||
}
|
||||
|
|
|
@ -22,15 +22,30 @@ function include_javascript_d3($return=false)
|
|||
$is_include_javascript = true;
|
||||
|
||||
$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 .= '<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 .= '<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>';
|
||||
}
|
||||
|
||||
|
|
|
@ -782,7 +782,8 @@ function dashboardLoadNetworkMap(settings) {
|
|||
auth_class: settings.auth_class,
|
||||
auth_hash: settings.auth_hash,
|
||||
id_user: settings.id_user,
|
||||
ignore_acl: 1
|
||||
ignore_acl: 1,
|
||||
node: settings.node
|
||||
},
|
||||
dataType: "html",
|
||||
success: function(data) {
|
||||
|
|
|
@ -203,6 +203,10 @@ class NetworkMapWidget extends Widget
|
|||
$values['networkmapId'] = $decoder['networkmaps'];
|
||||
}
|
||||
|
||||
if (isset($decoder['node']) === true) {
|
||||
$values['node'] = $decoder['node'];
|
||||
}
|
||||
|
||||
if (isset($decoder['networkmapId']) === true) {
|
||||
$values['networkmapId'] = $decoder['networkmapId'];
|
||||
}
|
||||
|
@ -268,14 +272,44 @@ class NetworkMapWidget extends Widget
|
|||
$return_all_group = true;
|
||||
}
|
||||
|
||||
// Selected.
|
||||
$selected = $values['networkmapId'];
|
||||
if ((bool) is_metaconsole() === true) {
|
||||
$selected = $values['node'].'_'.$values['networkmapId'];
|
||||
} else {
|
||||
$selected = $values['networkmapId'];
|
||||
}
|
||||
|
||||
// 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 ($values['networkmapId'] !== null && !array_key_exists($values['networkmapId'], $fields)) {
|
||||
$selected_networkmap = db_get_row('tmap', 'id', $values['networkmapId']);
|
||||
// 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 ($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[] = [
|
||||
|
@ -358,7 +392,18 @@ class NetworkMapWidget extends Widget
|
|||
// Retrieve global - common inputs.
|
||||
$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['yOffset'] = \get_parameter('yOffset', 0);
|
||||
$values['zoomLevel'] = (float) \get_parameter('zoomLevel', 0.5);
|
||||
|
@ -382,8 +427,9 @@ class NetworkMapWidget extends Widget
|
|||
$x_offset = $this->values['xOffset'];
|
||||
$y_offset = $this->values['yOffset'];
|
||||
$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;';
|
||||
$id = 'body_cell-'.$this->cellId;
|
||||
|
@ -401,6 +447,7 @@ class NetworkMapWidget extends Widget
|
|||
'id_user' => $config['id_user'],
|
||||
'auth_class' => 'PandoraFMS\Dashboard\Manager',
|
||||
'auth_hash' => Manager::generatePublicHash(),
|
||||
'node' => $node,
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
@ -2,3 +2,23 @@ div#page {
|
|||
width: 90% !important;
|
||||
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;
|
||||
|
||||
if ((bool) is_metaconsole() === true) {
|
||||
ui_require_css_file('meta_dashboards.css');
|
||||
ui_require_css_file('meta_dashboards');
|
||||
}
|
||||
|
||||
$ajaxPage = 'operation/dashboard/dashboard';
|
||||
|
|
Loading…
Reference in New Issue