mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-30 09:15:15 +02:00
add new widget color tabs module pandora_enterprise#8621
This commit is contained in:
parent
6dcff5f15d
commit
31ef3f5375
@ -3664,7 +3664,7 @@ function get_modules_agents($id_module_group, $id_agents, $selection, $select_mo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$selection) {
|
if (!$selection && $useName === true) {
|
||||||
// Common modules.
|
// Common modules.
|
||||||
$final_modules = [];
|
$final_modules = [];
|
||||||
$nodes_consulted = count($modules);
|
$nodes_consulted = count($modules);
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
|
|
||||||
namespace PandoraFMS\Dashboard;
|
namespace PandoraFMS\Dashboard;
|
||||||
|
|
||||||
|
use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,13 +217,8 @@ class ColorModuleTabs extends Widget
|
|||||||
|
|
||||||
$values['moduleColorModuleTabs'] = [];
|
$values['moduleColorModuleTabs'] = [];
|
||||||
if (isset($decoder['moduleColorModuleTabs']) === true) {
|
if (isset($decoder['moduleColorModuleTabs']) === true) {
|
||||||
if (isset($decoder['moduleColorModuleTabs'][0]) === true
|
if (empty($decoder['moduleColorModuleTabs']) === false) {
|
||||||
&& empty($decoder['moduleColorModuleTabs']) === false
|
$values['moduleColorModuleTabs'] = $decoder['moduleColorModuleTabs'];
|
||||||
) {
|
|
||||||
$values['moduleColorModuleTabs'] = explode(
|
|
||||||
',',
|
|
||||||
$decoder['moduleColorModuleTabs'][0]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,7 +250,7 @@ class ColorModuleTabs extends Widget
|
|||||||
'agent_values' => agents_get_agents_selected(0),
|
'agent_values' => agents_get_agents_selected(0),
|
||||||
'agent_name' => 'agentsColorModuleTabs[]',
|
'agent_name' => 'agentsColorModuleTabs[]',
|
||||||
'agent_ids' => $values['agentsColorModuleTabs'],
|
'agent_ids' => $values['agentsColorModuleTabs'],
|
||||||
'selectionModules' => true,
|
'selectionModules' => $values['selectionColorModuleTabs'],
|
||||||
'selectionModulesNameId' => 'selectionColorModuleTabs',
|
'selectionModulesNameId' => 'selectionColorModuleTabs',
|
||||||
'modules_ids' => $values['moduleColorModuleTabs'],
|
'modules_ids' => $values['moduleColorModuleTabs'],
|
||||||
'modules_name' => 'moduleColorModuleTabs[]',
|
'modules_name' => 'moduleColorModuleTabs[]',
|
||||||
@ -285,9 +282,24 @@ class ColorModuleTabs extends Widget
|
|||||||
// Retrieve global - common inputs.
|
// Retrieve global - common inputs.
|
||||||
$values = parent::getPost();
|
$values = parent::getPost();
|
||||||
|
|
||||||
$values['agentsColorModuleTabs'] = \get_parameter('agentsColorModuleTabs', []);
|
$values['agentsColorModuleTabs'] = \get_parameter(
|
||||||
$values['selectionColorModuleTabs'] = \get_parameter('selectionColorModuleTabs', 0);
|
'agentsColorModuleTabs',
|
||||||
$values['moduleColorModuleTabs'] = \get_parameter('moduleColorModuleTabs', []);
|
[]
|
||||||
|
);
|
||||||
|
$values['selectionColorModuleTabs'] = \get_parameter(
|
||||||
|
'selectionColorModuleTabs',
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
$values['moduleColorModuleTabs'] = \get_parameter(
|
||||||
|
'moduleColorModuleTabs'
|
||||||
|
);
|
||||||
|
|
||||||
|
$values['moduleColorModuleTabs'] = get_same_modules_all(
|
||||||
|
explode(',', $values['agentsColorModuleTabs'][0]),
|
||||||
|
explode(',', $values['moduleColorModuleTabs'][0])
|
||||||
|
);
|
||||||
|
|
||||||
$values['formatData'] = \get_parameter_switch('formatData', 0);
|
$values['formatData'] = \get_parameter_switch('formatData', 0);
|
||||||
|
|
||||||
return $values;
|
return $values;
|
||||||
@ -305,6 +317,80 @@ class ColorModuleTabs extends Widget
|
|||||||
|
|
||||||
$size = parent::getSize();
|
$size = parent::getSize();
|
||||||
|
|
||||||
|
$output = '';
|
||||||
|
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$modules_nodes = array_reduce(
|
||||||
|
$this->values['moduleColorModuleTabs'],
|
||||||
|
function ($carry, $item) {
|
||||||
|
$explode = explode('|', $item);
|
||||||
|
$carry[$explode[0]][] = $explode[1];
|
||||||
|
return $carry;
|
||||||
|
},
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
|
$modules = [];
|
||||||
|
foreach ($modules_nodes as $n => $mod) {
|
||||||
|
try {
|
||||||
|
$node = new Node((int) $n);
|
||||||
|
$node->connect();
|
||||||
|
$node_mods = $this->getInfoModules($mod);
|
||||||
|
if (empty($node_mods) === false) {
|
||||||
|
foreach ($node_mods as $value) {
|
||||||
|
$value['id_node'] = $n;
|
||||||
|
$value['server_name'] = $node->toArray()['server_name'];
|
||||||
|
$modules[] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$node->disconnect();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$modules = $this->getInfoModules(
|
||||||
|
$this->values['moduleColorModuleTabs']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($modules !== false && empty($modules) === false) {
|
||||||
|
$output .= '<div class="container-tabs">';
|
||||||
|
foreach ($modules as $module) {
|
||||||
|
$output .= $this->drawTabs($module);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= '</div>';
|
||||||
|
} else {
|
||||||
|
$output .= '<div class="container-center">';
|
||||||
|
$output .= \ui_print_info_message(
|
||||||
|
__('Not found modules'),
|
||||||
|
'',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$output .= '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get info modules.
|
||||||
|
*
|
||||||
|
* @param array $modules Modules.
|
||||||
|
*
|
||||||
|
* @return array Data.
|
||||||
|
*/
|
||||||
|
private function getInfoModules(array $modules): array
|
||||||
|
{
|
||||||
|
$where = sprintf(
|
||||||
|
'tagente_modulo.id_agente_modulo IN (%s)',
|
||||||
|
implode(',', $modules)
|
||||||
|
);
|
||||||
|
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT tagente_modulo.id_agente_modulo AS `id`,
|
'SELECT tagente_modulo.id_agente_modulo AS `id`,
|
||||||
tagente_modulo.nombre AS `name`,
|
tagente_modulo.nombre AS `name`,
|
||||||
@ -315,19 +401,17 @@ class ColorModuleTabs extends Widget
|
|||||||
FROM tagente_modulo
|
FROM tagente_modulo
|
||||||
LEFT JOIN tagente_estado
|
LEFT JOIN tagente_estado
|
||||||
ON tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
ON tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||||
WHERE tagente_modulo.id_agente_modulo IN (%s)',
|
WHERE %s',
|
||||||
implode(',', $this->values['moduleColorModuleTabs'])
|
$where
|
||||||
);
|
);
|
||||||
|
|
||||||
$modules = db_get_all_rows_sql($sql);
|
$modules = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
$output = '<div class="container-tabs">';
|
if ($modules === false) {
|
||||||
foreach ($modules as $module) {
|
$modules = [];
|
||||||
$output .= $this->drawTabs($module);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$output .= '</div>';
|
return $modules;
|
||||||
return $output;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -348,6 +432,11 @@ class ColorModuleTabs extends Widget
|
|||||||
$style = 'background-color:'.$background.'; color:'.$color.';';
|
$style = 'background-color:'.$background.'; color:'.$color.';';
|
||||||
$output = '<div class="widget-module-tabs" style="'.$style.'">';
|
$output = '<div class="widget-module-tabs" style="'.$style.'">';
|
||||||
$output .= '<span class="widget-module-tabs-title">';
|
$output .= '<span class="widget-module-tabs-title">';
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$output .= $data['server_name'];
|
||||||
|
$output .= '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
$output .= $data['name'];
|
$output .= $data['name'];
|
||||||
$output .= '</span>';
|
$output .= '</span>';
|
||||||
$output .= '<span class="widget-module-tabs-data">';
|
$output .= '<span class="widget-module-tabs-data">';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user