mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Merge branch 'ent-11206-anadir-la-custom-field-view-de-la-meta-a-los-nodos' into 'develop'
Ent 11206 anadir la custom field view de la meta a los nodos See merge request artica/pandorafms!6233
This commit is contained in:
commit
f7c045c939
@ -1 +1 @@
|
||||
To create the .deb and .rpm package need to hace docker installed on main system and execit `build_all_docker.sh`
|
||||
To create the .deb and .rpm package need to hace docker installed on main system and execit `build_all_docker.sh`
|
||||
|
@ -192,7 +192,7 @@ function quickShell()
|
||||
'name' => 'form-sent',
|
||||
'value' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
false,
|
||||
@ -292,7 +292,6 @@ function quickShellSettings()
|
||||
ui_require_css_file('discovery');
|
||||
|
||||
// Gotty settings. Internal communication (WS).
|
||||
|
||||
if (isset($config['gotty_ssh_enabled']) === false) {
|
||||
config_update_value('gotty_ssh_enabled', 1);
|
||||
}
|
||||
|
@ -1284,7 +1284,7 @@ $class = 'databox filters';
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
<?php
|
||||
html_print_input_text(
|
||||
'text_os_version',
|
||||
$text_os_version,
|
||||
@ -6625,7 +6625,7 @@ function addGeneralRow() {
|
||||
function loadGeneralAgents(agent_group) {
|
||||
var params = [];
|
||||
|
||||
var group = <?php echo $group ?? -1; ?>;
|
||||
var group = <?php echo ($group ?? -1); ?>;
|
||||
if (group < 0) {
|
||||
return;
|
||||
}
|
||||
|
@ -290,6 +290,7 @@ html_print_action_buttons(
|
||||
|
||||
echo '</form>';
|
||||
|
||||
|
||||
function get_list_os_icons_dir()
|
||||
{
|
||||
global $config;
|
||||
|
@ -98,7 +98,10 @@ try {
|
||||
'ajax_url' => 'include/ajax/os',
|
||||
'ajax_data' => ['method' => 'drawOSTable'],
|
||||
'ajax_postprocess' => 'process_datatables_item(item)',
|
||||
'no_sortable_columns' => [-1, 1],
|
||||
'no_sortable_columns' => [
|
||||
-1,
|
||||
1,
|
||||
],
|
||||
'order' => [
|
||||
'field' => 'id',
|
||||
'direction' => 'asc',
|
||||
|
@ -53,7 +53,7 @@ if ($idOS > 0) {
|
||||
} else {
|
||||
$product = io_safe_input(strip_tags(io_safe_output((string) get_parameter('product'))));
|
||||
$version = io_safe_input(strip_tags(io_safe_output((string) get_parameter('version'))));
|
||||
$end_of_life_date = get_parameter('end_of_life_date', date("Y/m/d"));
|
||||
$end_of_life_date = get_parameter('end_of_life_date', date('Y/m/d'));
|
||||
}
|
||||
|
||||
$message = '';
|
||||
|
@ -220,7 +220,7 @@ switch ($tab) {
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
@ -282,4 +282,4 @@ if (empty($id_message) === false) {
|
||||
}
|
||||
}
|
||||
|
||||
include_once $config['homedir'].'/godmode/setup/os_version.list.php';
|
||||
require_once $config['homedir'].'/godmode/setup/os_version.list.php';
|
||||
|
BIN
pandora_console/images/module_event_critical.png
Normal file
BIN
pandora_console/images/module_event_critical.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 487 B |
BIN
pandora_console/images/module_event_ok.png
Normal file
BIN
pandora_console/images/module_event_ok.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 487 B |
BIN
pandora_console/images/module_event_unknown.png
Normal file
BIN
pandora_console/images/module_event_unknown.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 487 B |
BIN
pandora_console/images/module_event_warning.png
Normal file
BIN
pandora_console/images/module_event_warning.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 487 B |
@ -65,6 +65,7 @@ if (check_login()) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($get_custom_fields_data) {
|
||||
$name_custom_fields = get_parameter('name_custom_fields', 0);
|
||||
$array_custom_fields_data = get_custom_fields_data($name_custom_fields);
|
||||
@ -110,30 +111,51 @@ if (check_login()) {
|
||||
|
||||
// Table temporary for save array in table
|
||||
// by order and search custom_field data.
|
||||
$table_temporary = 'CREATE TEMPORARY TABLE temp_custom_fields (
|
||||
id_server int(10),
|
||||
id_agent int(10),
|
||||
name_custom_fields varchar(2048),
|
||||
critical_count int,
|
||||
warning_count int,
|
||||
unknown_count int,
|
||||
notinit_count int,
|
||||
normal_count int,
|
||||
total_count int,
|
||||
`status` int(2),
|
||||
KEY `data_index_temp_1` (`id_server`, `id_agent`)
|
||||
)';
|
||||
db_process_sql($table_temporary);
|
||||
if (is_metaconsole() === true) {
|
||||
$table_temporary = 'CREATE TEMPORARY TABLE temp_custom_fields (
|
||||
id_server int(10),
|
||||
id_agent int(10),
|
||||
name_custom_fields varchar(2048),
|
||||
critical_count int,
|
||||
warning_count int,
|
||||
unknown_count int,
|
||||
notinit_count int,
|
||||
normal_count int,
|
||||
total_count int,
|
||||
`status` int(2),
|
||||
KEY `data_index_temp_1` (`id_server`, `id_agent`)
|
||||
)';
|
||||
} else {
|
||||
$table_temporary = 'CREATE TEMPORARY TABLE temp_custom_fields (
|
||||
id_agent int(10),
|
||||
name_custom_fields varchar(2048),
|
||||
critical_count int,
|
||||
warning_count int,
|
||||
unknown_count int,
|
||||
notinit_count int,
|
||||
normal_count int,
|
||||
total_count int,
|
||||
`status` int(2),
|
||||
KEY `data_index_temp_1` ( `id_agent`)
|
||||
)';
|
||||
}
|
||||
|
||||
$resul_tab_temp = db_process_sql($table_temporary);
|
||||
|
||||
// Insert values array in table temporary.
|
||||
$values_insert = [];
|
||||
foreach ($indexed_descriptions as $key => $value) {
|
||||
$values_insert[] = '('.$value['id_server'].', '.$value['id_agente'].", '".$value['description']."', '".$value['critical_count']."', '".$value['warning_count']."', '".$value['unknown_count']."', '".$value['notinit_count']."', '".$value['normal_count']."', '".$value['total_count']."', ".$value['status'].')';
|
||||
if (is_metaconsole() === true) {
|
||||
$values_insert[] = '('.$value['id_server'].', '.$value['id_agente'].", '".$value['description']."', '".$value['critical_count']."', '".$value['warning_count']."', '".$value['unknown_count']."', '".$value['notinit_count']."', '".$value['normal_count']."', '".$value['total_count']."', ".$value['status'].')';
|
||||
} else {
|
||||
$values_insert[] = '('.$value['id_agente'].", '".$value['description']."', '".$value['critical_count']."', '".$value['warning_count']."', '".$value['unknown_count']."', '".$value['notinit_count']."', '".$value['normal_count']."', '".$value['total_count']."', ".$value['status'].')';
|
||||
}
|
||||
}
|
||||
|
||||
$values_insert_implode = implode(',', $values_insert);
|
||||
$query_insert = 'INSERT INTO temp_custom_fields VALUES '.$values_insert_implode;
|
||||
db_process_sql($query_insert);
|
||||
|
||||
$result_temp = db_process_sql($query_insert);
|
||||
|
||||
// Search table for alias, custom field data, server_name, direction.
|
||||
$search_query = '';
|
||||
@ -199,41 +221,17 @@ if (check_login()) {
|
||||
}
|
||||
|
||||
// Query all fields result.
|
||||
$query = sprintf(
|
||||
'SELECT
|
||||
tma.id_agente,
|
||||
tma.id_tagente,
|
||||
tma.id_tmetaconsole_setup,
|
||||
tma.alias,
|
||||
tma.direccion,
|
||||
tma.server_name,
|
||||
temp.name_custom_fields,
|
||||
temp.status
|
||||
FROM tmetaconsole_agent tma
|
||||
INNER JOIN temp_custom_fields temp
|
||||
ON temp.id_agent = tma.id_tagente
|
||||
AND temp.id_server = tma.id_tmetaconsole_setup
|
||||
WHERE tma.disabled = 0
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
LIMIT %d OFFSET %d
|
||||
',
|
||||
$search_query,
|
||||
$status_agent_search,
|
||||
$status_module_search,
|
||||
$order_by,
|
||||
$length,
|
||||
$start
|
||||
);
|
||||
|
||||
$result = db_get_all_rows_sql($query);
|
||||
|
||||
// Query count.
|
||||
$query_count = sprintf(
|
||||
'SELECT
|
||||
COUNT(tma.id_agente) AS `count`
|
||||
if (is_metaconsole() === true) {
|
||||
$query = sprintf(
|
||||
'SELECT
|
||||
tma.id_agente,
|
||||
tma.id_tagente,
|
||||
tma.id_tmetaconsole_setup,
|
||||
tma.alias,
|
||||
tma.direccion,
|
||||
tma.server_name,
|
||||
temp.name_custom_fields,
|
||||
temp.status
|
||||
FROM tmetaconsole_agent tma
|
||||
INNER JOIN temp_custom_fields temp
|
||||
ON temp.id_agent = tma.id_tagente
|
||||
@ -242,16 +240,87 @@ if (check_login()) {
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
LIMIT %d OFFSET %d
|
||||
',
|
||||
$search_query,
|
||||
$status_agent_search,
|
||||
$status_module_search
|
||||
);
|
||||
$search_query,
|
||||
$status_agent_search,
|
||||
$status_module_search,
|
||||
$order_by,
|
||||
$length,
|
||||
$start
|
||||
);
|
||||
} else {
|
||||
$query = sprintf(
|
||||
'SELECT
|
||||
tma.id_agente,
|
||||
tma.alias,
|
||||
tma.direccion,
|
||||
tma.server_name,
|
||||
temp.name_custom_fields,
|
||||
temp.status
|
||||
FROM tagente as tma
|
||||
INNER JOIN temp_custom_fields temp
|
||||
ON temp.id_agent = tma.id_agente
|
||||
WHERE tma.disabled = 0
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
LIMIT %d OFFSET %d
|
||||
',
|
||||
$search_query,
|
||||
$status_agent_search,
|
||||
$status_module_search,
|
||||
$order_by,
|
||||
$length,
|
||||
$start
|
||||
);
|
||||
}
|
||||
|
||||
$result = db_get_all_rows_sql($query);
|
||||
// Query count.
|
||||
if (is_metaconsole() === true) {
|
||||
$query_count = sprintf(
|
||||
'SELECT
|
||||
COUNT(tma.id_agente) AS `count`
|
||||
FROM tmetaconsole_agent tma
|
||||
INNER JOIN temp_custom_fields temp
|
||||
ON temp.id_agent = tma.id_tagente
|
||||
AND temp.id_server = tma.id_tmetaconsole_setup
|
||||
WHERE tma.disabled = 0
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
',
|
||||
$search_query,
|
||||
$status_agent_search,
|
||||
$status_module_search
|
||||
);
|
||||
} else {
|
||||
$query_count = sprintf(
|
||||
'SELECT
|
||||
COUNT(tma.id_agente) AS `count`
|
||||
FROM tagente tma
|
||||
INNER JOIN temp_custom_fields temp
|
||||
ON temp.id_agent = tma.id_agente
|
||||
WHERE tma.disabled = 0
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
',
|
||||
$search_query,
|
||||
$status_agent_search,
|
||||
$status_module_search
|
||||
);
|
||||
}
|
||||
|
||||
$count = db_get_sql($query_count);
|
||||
|
||||
// For link nodes.
|
||||
$array_nodes = metaconsole_get_connections();
|
||||
if (is_metaconsole() === true) {
|
||||
$array_nodes = metaconsole_get_connections();
|
||||
}
|
||||
|
||||
if (isset($array_nodes) && is_array($array_nodes)) {
|
||||
$hash_array_nodes = [];
|
||||
foreach ($array_nodes as $key => $server) {
|
||||
@ -280,19 +349,24 @@ if (check_login()) {
|
||||
$data = [];
|
||||
foreach ($result as $values) {
|
||||
$image_status = agents_get_image_status($values['status']);
|
||||
|
||||
// Link nodes.
|
||||
$agent_link = '<a href="'.$hash_array_nodes[$values['id_tmetaconsole_setup']]['server_url'].'/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$values['id_tagente'].$hash_array_nodes[$values['id_tmetaconsole_setup']]['hashurl'].'">';
|
||||
if (is_metaconsole() === true) {
|
||||
$agent_link = '<a href="'.$hash_array_nodes[$values['id_tmetaconsole_setup']]['server_url'].'/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$values['id_tagente'].$hash_array_nodes[$values['id_tmetaconsole_setup']]['hashurl'].'">';
|
||||
$agent_alias = ui_print_truncate_text(
|
||||
$values['alias'],
|
||||
'agent_small',
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
'[…]',
|
||||
'font-size:7.5pt;'
|
||||
);
|
||||
} else {
|
||||
$agent_link = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$values['id_agente'].'"/>';
|
||||
$agent_alias = $values['alias'];
|
||||
}
|
||||
|
||||
|
||||
$agent_alias = ui_print_truncate_text(
|
||||
$values['alias'],
|
||||
'agent_small',
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
'[…]',
|
||||
'font-size:7.5pt;'
|
||||
);
|
||||
|
||||
if (can_user_access_node()) {
|
||||
$agent = $agent_link.'<b>'.$agent_alias.'</b></a>';
|
||||
@ -300,6 +374,11 @@ if (check_login()) {
|
||||
$agent = $agent_alias;
|
||||
}
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
$values['id_tagente'] = $values['id_agente'];
|
||||
$values['id_tmetaconsole_setup'] = 1;
|
||||
}
|
||||
|
||||
$data[] = [
|
||||
'ref' => $referencia,
|
||||
'data_custom_field' => ui_bbcode_to_html($values['name_custom_fields']),
|
||||
@ -405,7 +484,7 @@ if (check_login()) {
|
||||
|
||||
$table_modules = new stdClass();
|
||||
$table_modules->width = '100%';
|
||||
$table_modules->class = 'databox data';
|
||||
$table_modules->class = 'databox data custom_field_data';
|
||||
|
||||
$table_modules->head = [];
|
||||
$table_modules->head[0] = __('Module name');
|
||||
@ -589,7 +668,11 @@ if (check_login()) {
|
||||
__('Load filter'),
|
||||
'load_filter',
|
||||
false,
|
||||
'class="sub upd"',
|
||||
[
|
||||
'icon' => 'search',
|
||||
'class' => 'sub upd',
|
||||
'onclick' => 'load_filter()',
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
@ -608,12 +691,14 @@ if (check_login()) {
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
$table = new StdClass;
|
||||
$table->id = 'save_filter_form';
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox';
|
||||
$table->rowspan = [];
|
||||
$table->style = [];
|
||||
$table->cellstyle[0][0] = 'display: grid';
|
||||
$table->cellstyle[0][1] = 'display: grid';
|
||||
|
||||
if ($filters['id'] == 'extended_create_filter') {
|
||||
echo "<div id='msg_error_create'></div>";
|
||||
@ -624,7 +709,7 @@ if (check_login()) {
|
||||
'',
|
||||
15,
|
||||
255,
|
||||
true
|
||||
true,
|
||||
);
|
||||
|
||||
$table->data[1][0] = __('Group');
|
||||
@ -650,11 +735,16 @@ if (check_login()) {
|
||||
);
|
||||
|
||||
$table->rowspan[0][2] = 2;
|
||||
|
||||
$table->data[0][2] = html_print_submit_button(
|
||||
__('Create filter'),
|
||||
'create_filter',
|
||||
false,
|
||||
'class="sub upd"',
|
||||
[
|
||||
'icon' => 'search',
|
||||
'class' => 'sub upd',
|
||||
'onclick' => 'create_filter()',
|
||||
],
|
||||
true
|
||||
);
|
||||
} else {
|
||||
@ -702,14 +792,23 @@ if (check_login()) {
|
||||
__('Delete filter'),
|
||||
'delete_filter',
|
||||
false,
|
||||
'class="sub upd"',
|
||||
[
|
||||
'icon' => 'delete',
|
||||
'class' => 'sub upd',
|
||||
'onclick' => 'delete_filter()',
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[1][2] = html_print_submit_button(
|
||||
__('Update filter'),
|
||||
'update_filter',
|
||||
false,
|
||||
'class="sub upd"',
|
||||
[
|
||||
'icon' => 'update',
|
||||
'class' => 'sub upd',
|
||||
'onclick' => 'update_filter()',
|
||||
],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
@ -116,6 +116,7 @@ function cron_task_lock()
|
||||
return cron_lock('cron.lock');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Release CRON.task lock
|
||||
*
|
||||
@ -130,6 +131,7 @@ function cron_task_release_lock()
|
||||
unlink($config['attachment_store'].'/cron.lock');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Calculates target schedule time
|
||||
*
|
||||
@ -184,6 +186,7 @@ function cron_get_scheduled_time(
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Run scheduled task.
|
||||
*
|
||||
@ -506,7 +509,7 @@ function cron_task_start_gotty(bool $restart_mode=true)
|
||||
$startTime = time();
|
||||
|
||||
// Workaround to wait until process inputs data in the log.
|
||||
while (time() - $startTime < $maxWaitTime) {
|
||||
while ((time() - $startTime) < $maxWaitTime) {
|
||||
if ($start_proc === true) {
|
||||
// Read command output.
|
||||
$log_content = file_get_contents($logFilePath);
|
||||
|
@ -613,8 +613,198 @@ function agent_counters_custom_fields($filters)
|
||||
|
||||
$final_result['indexed_descriptions'] = $data;
|
||||
} else {
|
||||
// TODO.
|
||||
$final_result = false;
|
||||
$result_meta = [];
|
||||
$data = [];
|
||||
|
||||
$query = sprintf(
|
||||
"SELECT tcd.description AS name_data,
|
||||
SUM(IF($agent_state_total, 1, 0)) AS a_agents,
|
||||
SUM(IF($agent_state_critical, 1, 0)) AS a_critical,
|
||||
SUM(IF($agent_state_warning, 1, 0)) AS a_warning,
|
||||
SUM(IF($agent_state_unknown, 1, 0)) AS a_unknown,
|
||||
SUM(IF($agent_state_normal, 1, 0)) AS a_normal,
|
||||
SUM(IF($agent_state_notinit, 1, 0)) AS a_not_init,
|
||||
SUM(tagent_counters.mm_normal) AS m_normal,
|
||||
SUM(tagent_counters.mm_critical) AS m_critical,
|
||||
SUM(tagent_counters.mm_warning) AS m_warning,
|
||||
SUM(tagent_counters.mm_unknown) AS m_unknown,
|
||||
SUM(tagent_counters.mm_not_init) AS m_not_init,
|
||||
SUM(tagent_counters.mm_total) AS m_total
|
||||
FROM tagent_custom_data tcd
|
||||
INNER JOIN tagent_custom_fields tcf
|
||||
ON tcd.id_field = tcf.id_field
|
||||
INNER JOIN (
|
||||
SELECT ta.id_agente,
|
||||
ta.total_count AS c_m_total,
|
||||
SUM( IF(tae.estado = 0, 1, 0) ) AS mm_normal,
|
||||
SUM( IF(tae.estado = 1, 1, 0) ) AS mm_critical,
|
||||
SUM( IF(tae.estado = 2, 1, 0) ) AS mm_warning,
|
||||
SUM( IF(tae.estado = 3, 1, 0) ) AS mm_unknown,
|
||||
SUM( IF(tae.estado = 4 OR tae.estado = 5, 1, 0) ) AS mm_not_init,
|
||||
COUNT(tam.id_agente_modulo) AS mm_total
|
||||
FROM tagente ta
|
||||
LEFT JOIN tagent_secondary_group tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON ta.id_agente = tam.id_agente
|
||||
INNER JOIN tagente_estado tae
|
||||
ON tam.id_agente = tae.id_agente
|
||||
AND tam.id_agente_modulo = tae.id_agente_modulo
|
||||
WHERE ta.disabled = 0
|
||||
AND tam.disabled = 0
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
GROUP by ta.id_agente
|
||||
%s
|
||||
) AS tagent_counters
|
||||
ON tcd.id_agent = tagent_counters.id_agente
|
||||
INNER JOIN tagente ta
|
||||
ON ta.id_agente = tagent_counters.id_agente
|
||||
WHERE tcf.name = '%s'
|
||||
AND tcd.description <> ''
|
||||
%s
|
||||
GROUP BY tcd.description",
|
||||
$groups_and,
|
||||
$and_status,
|
||||
$and_module_search,
|
||||
$and_module_status,
|
||||
$empty_agents_count,
|
||||
$custom_field_name,
|
||||
$custom_data_and
|
||||
);
|
||||
|
||||
$result_meta[] = db_get_all_rows_sql($query);
|
||||
|
||||
$query_data = sprintf(
|
||||
"SELECT
|
||||
tcd.description,
|
||||
ta.id_agente,
|
||||
%d AS id_server,
|
||||
(CASE
|
||||
WHEN ta.critical_count > 0
|
||||
THEN 1
|
||||
WHEN ta.critical_count = 0
|
||||
AND ta.warning_count > 0
|
||||
THEN 2
|
||||
WHEN ta.critical_count = 0
|
||||
AND ta.warning_count = 0
|
||||
AND ta.unknown_count > 0
|
||||
THEN 3
|
||||
WHEN ta.critical_count = 0
|
||||
AND ta.warning_count = 0
|
||||
AND ta.unknown_count = 0
|
||||
AND ta.notinit_count <> ta.total_count
|
||||
THEN 0
|
||||
WHEN ta.total_count = ta.notinit_count
|
||||
THEN 5
|
||||
ELSE 0
|
||||
END) AS `status`,
|
||||
ta.critical_count,
|
||||
ta.warning_count,
|
||||
ta.unknown_count,
|
||||
ta.notinit_count,
|
||||
ta.normal_count,
|
||||
ta.total_count
|
||||
FROM tagente ta
|
||||
LEFT JOIN tagent_secondary_group tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON ta.id_agente = tam.id_agente
|
||||
INNER JOIN tagente_estado tae
|
||||
ON tam.id_agente = tae.id_agente
|
||||
AND tam.id_agente_modulo = tae.id_agente_modulo
|
||||
INNER JOIN tagent_custom_data tcd
|
||||
ON tcd.id_agent = ta.id_agente
|
||||
INNER JOIN tagent_custom_fields tcf
|
||||
ON tcd.id_field = tcf.id_field
|
||||
WHERE ta.disabled = 0
|
||||
AND tcf.name = '%s'
|
||||
AND tcd.description <> ''
|
||||
AND tam.disabled = 0
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
GROUP BY ta.id_agente
|
||||
",
|
||||
$server_data['id'],
|
||||
$custom_field_name,
|
||||
$custom_data_and,
|
||||
$groups_and,
|
||||
$and_status,
|
||||
$and_module_search,
|
||||
$and_module_status
|
||||
);
|
||||
|
||||
$node_result = db_get_all_rows_sql($query_data);
|
||||
;
|
||||
if (empty($node_result)) {
|
||||
$node_result = [];
|
||||
}
|
||||
|
||||
$data = array_merge($data, $node_result);
|
||||
$final_result = [];
|
||||
$array_data = [];
|
||||
if (isset($result_meta) && is_array($result_meta)) {
|
||||
// Initialize counters.
|
||||
$final_result['counters_total'] = [
|
||||
't_m_normal' => 0,
|
||||
't_m_critical' => 0,
|
||||
't_m_warning' => 0,
|
||||
't_m_unknown' => 0,
|
||||
't_m_not_init' => 0,
|
||||
't_m_alerts' => 0,
|
||||
't_m_total' => 0,
|
||||
't_a_critical' => 0,
|
||||
't_a_warning' => 0,
|
||||
't_a_unknown' => 0,
|
||||
't_a_normal' => 0,
|
||||
't_a_not_init' => 0,
|
||||
't_a_agents' => 0,
|
||||
];
|
||||
foreach ($result_meta as $k => $nodo) {
|
||||
if (isset($nodo) && is_array($nodo)) {
|
||||
foreach ($nodo as $key => $value) {
|
||||
// Sum counters total.
|
||||
$final_result['counters_total']['t_m_normal'] += $value['m_normal'];
|
||||
$final_result['counters_total']['t_m_critical'] += $value['m_critical'];
|
||||
$final_result['counters_total']['t_m_warning'] += $value['m_warning'];
|
||||
$final_result['counters_total']['t_m_unknown'] += $value['m_unknown'];
|
||||
$final_result['counters_total']['t_m_not_init'] += $value['m_not_init'];
|
||||
$final_result['counters_total']['t_m_alerts'] += $value['m_alerts'];
|
||||
$final_result['counters_total']['t_m_total'] += $value['m_total'];
|
||||
$final_result['counters_total']['t_a_critical'] += $value['a_critical'];
|
||||
$final_result['counters_total']['t_a_warning'] += $value['a_warning'];
|
||||
$final_result['counters_total']['t_a_unknown'] += $value['a_unknown'];
|
||||
$final_result['counters_total']['t_a_normal'] += $value['a_normal'];
|
||||
$final_result['counters_total']['t_a_not_init'] += $value['a_not_init'];
|
||||
$final_result['counters_total']['t_a_agents'] += $value['a_agents'];
|
||||
|
||||
// Sum counters for data.
|
||||
$array_data[$value['name_data']]['m_normal'] += $value['m_normal'];
|
||||
$array_data[$value['name_data']]['m_critical'] += $value['m_critical'];
|
||||
$array_data[$value['name_data']]['m_warning'] += $value['m_warning'];
|
||||
$array_data[$value['name_data']]['m_unknown'] += $value['m_unknown'];
|
||||
$array_data[$value['name_data']]['m_not_init'] += $value['m_not_init'];
|
||||
$array_data[$value['name_data']]['m_alerts'] += $value['m_alerts'];
|
||||
$array_data[$value['name_data']]['m_total'] += $value['m_total'];
|
||||
$array_data[$value['name_data']]['a_critical'] += $value['a_critical'];
|
||||
$array_data[$value['name_data']]['a_warning'] += $value['a_warning'];
|
||||
$array_data[$value['name_data']]['a_unknown'] += $value['a_unknown'];
|
||||
$array_data[$value['name_data']]['a_normal'] += $value['a_normal'];
|
||||
$array_data[$value['name_data']]['a_not_init'] += $value['a_not_init'];
|
||||
$array_data[$value['name_data']]['a_agents'] += $value['a_agents'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$final_result['counters_name'] = $array_data;
|
||||
}
|
||||
|
||||
$final_result['indexed_descriptions'] = $data;
|
||||
}
|
||||
|
||||
return $final_result;
|
||||
|
@ -1822,10 +1822,7 @@ table.dataTable td {
|
||||
.dataTables_wrapper .dataTables_length {
|
||||
float: left;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_filter input {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
@ -1875,8 +1872,8 @@ table.dataTable td {
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
||||
cursor: default;
|
||||
color: #666 !important;
|
||||
border: 1px solid transparent;
|
||||
color: #fff !important;
|
||||
border: 1px solid #fff !important;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
@ -6781,7 +6781,7 @@ form#modal_form_feedback ul.wizard li > textarea {
|
||||
|
||||
/* Generic classes to reuse and facilitate the creation of custom themes */
|
||||
.pandora_green_text {
|
||||
color: #1d7873;
|
||||
color: #82b92e;
|
||||
}
|
||||
|
||||
.pandora_green_bg {
|
||||
@ -10323,7 +10323,7 @@ select:focus {
|
||||
}
|
||||
|
||||
.dataTables_length > label {
|
||||
font-size: 0px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input[type="button"],
|
||||
@ -12436,6 +12436,43 @@ tr[id^="network_component-plugin-snmp-fields-dynamicMacroRow-"] input {
|
||||
width: 350px !important;
|
||||
}
|
||||
|
||||
form.cfv_status_agent {
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
form.cfv_status_agent label {
|
||||
display: block;
|
||||
line-height: 35px;
|
||||
height: 40px;
|
||||
width: 19%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
margin-top: 10px;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
opacity: 0.3;
|
||||
font-size: 13pt;
|
||||
}
|
||||
|
||||
form.cfv_status_agent label img {
|
||||
vertical-align: middle;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
form.cfv_status_agent input[type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
form.cfv_status_agent input:checked + label {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
form.cfv_status_agent input:checked + label:before {
|
||||
content: "✓ ";
|
||||
}
|
||||
|
||||
.notificaion_menu_container {
|
||||
display: flex;
|
||||
padding-top: 10px;
|
||||
@ -12489,6 +12526,37 @@ tr[id^="network_component-plugin-snmp-fields-dynamicMacroRow-"] input {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* --- Custom fields view --- */
|
||||
.custom_fields_view_layout {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.custom_fields_view {
|
||||
width: 30%;
|
||||
float: left;
|
||||
margin-left: 10px;
|
||||
padding-right: 10px;
|
||||
max-height: 890px;
|
||||
overflow: auto;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.agents_custom_fields {
|
||||
width: 100%;
|
||||
|
||||
margin-bottom: 15px;
|
||||
padding: 25px 5px;
|
||||
}
|
||||
div.agents_custom_fields #datatables_wrapper div.top,
|
||||
div.agents_custom_fields #datatables_wrapper div.bottom {
|
||||
background-color: #414141;
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
padding: 5px;
|
||||
height: 38px;
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
/*Horizontal tree*/
|
||||
|
||||
.horizontal_tree-icon {
|
||||
@ -12518,6 +12586,36 @@ tr[id^="network_component-plugin-snmp-fields-dynamicMacroRow-"] input {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.custom_fields_view {
|
||||
width: 30%;
|
||||
float: left;
|
||||
margin-left: 10px;
|
||||
padding-right: 10px;
|
||||
max-height: 890px;
|
||||
overflow: auto;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.agents_custom_fields {
|
||||
width: 100%;
|
||||
|
||||
margin-bottom: 15px;
|
||||
padding: 25px 5px;
|
||||
}
|
||||
div.agents_custom_fields #datatables_wrapper div.top,
|
||||
div.agents_custom_fields #datatables_wrapper div.bottom {
|
||||
background-color: #414141;
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
padding: 5px;
|
||||
height: 38px;
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
.label_agent_service > label {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.animation-blink {
|
||||
-webkit-animation: glowing 1500ms infinite;
|
||||
-moz-animation: glowing 1500ms infinite;
|
||||
@ -12632,6 +12730,38 @@ tr[id^="network_component-plugin-snmp-fields-dynamicMacroRow-"] input {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
|
||||
.dt-buttons {
|
||||
width: auto;
|
||||
position: absolute;
|
||||
margin-left: 90px;
|
||||
}
|
||||
|
||||
.title_tactical {
|
||||
padding: 10px 0px 10px 0px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
line-height: 23px;
|
||||
color: #000;
|
||||
letter-spacing: 0.3pt;
|
||||
font-family: "lato-bolder";
|
||||
font-style: normal;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td.details-control {
|
||||
background: url("../../images/darrowdown.png") no-repeat center center;
|
||||
cursor: pointer;
|
||||
}
|
||||
tr.shown td.details-control {
|
||||
background: url("../../images/darrowup.png") no-repeat center center;
|
||||
}
|
||||
|
||||
.custom_field_data > tbody > tr > td:not(:first-child) {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ui-date-range-in > a {
|
||||
background-color: #81b92e3b !important;
|
||||
}
|
||||
|
@ -364,13 +364,12 @@ a.pandora_pagination.current:hover {
|
||||
background-size: 22px;
|
||||
background-position: 48px center;
|
||||
background-repeat: no-repeat;
|
||||
background-color: transparent;
|
||||
background-color: #fff;
|
||||
color: var(--primary-color);
|
||||
font-size: 20px;
|
||||
height: 38px;
|
||||
/* height: 32px; */
|
||||
width: 80px;
|
||||
margin-left: 10px;
|
||||
margin-left: 90px;
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -893,3 +892,19 @@ td.w75p#rightcolumn {
|
||||
#pending_alerts_paginate {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.dataTables_filter > label {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
float: left;
|
||||
text-align: right;
|
||||
margin-left: 8%;
|
||||
padding-left: 0px;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||||
background: #bcbcbc;
|
||||
}
|
||||
|
1271
pandora_console/operation/custom_fields/custom_fields_view.php
Normal file
1271
pandora_console/operation/custom_fields/custom_fields_view.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -205,6 +205,10 @@ if ($access_console_node === true) {
|
||||
$sub['operation/inventory/inventory']['refr'] = 0;
|
||||
}
|
||||
|
||||
$sub['operation/custom_fields/custom_fields_view']['text'] = __('Custom fields view');
|
||||
$sub['operation/custom_fields/custom_fields_view']['id'] = 'Custom fields view';
|
||||
$sub['operation/custom_fields/custom_fields_view']['refr'] = 0;
|
||||
|
||||
if ($config['activate_netflow'] || $config['activate_sflow']) {
|
||||
$sub['network_traffic'] = [
|
||||
'text' => __('Network'),
|
||||
|
Loading…
x
Reference in New Issue
Block a user