Merge branch 'ent-13331-vista-de-inventario-basico-de-agentes-muestra-deshabilitados' into 'develop'

Ent 13331 Vista de inventario básico de Agentes muestra deshabilitados

See merge request artica/pandorafms!7140
This commit is contained in:
Jose Martin 2024-04-08 07:44:08 +00:00
commit d637e7734f
2 changed files with 84 additions and 34 deletions

View File

@ -710,7 +710,9 @@ function inventory_get_datatable(
$inventory_search_string='', $inventory_search_string='',
$export_csv=false, $export_csv=false,
$return_mode=false, $return_mode=false,
$order_by_agent=false $order_by_agent=false,
$date_init=false,
$status_agent=-1,
) { ) {
global $config; global $config;
@ -737,6 +739,10 @@ function inventory_get_datatable(
array_push($where, 'tagent_module_inventory.id_agente IN ('.implode(',', $agents_ids).')'); array_push($where, 'tagent_module_inventory.id_agente IN ('.implode(',', $agents_ids).')');
} }
if ($status_agent > -1) {
array_push($where, 'tagente.disabled ='.$status_agent);
}
if ($inventory_module_name[0] !== '0' if ($inventory_module_name[0] !== '0'
&& $inventory_module_name !== '' && $inventory_module_name !== ''
&& $inventory_module_name !== 'all' && $inventory_module_name !== 'all'
@ -750,21 +756,23 @@ function inventory_get_datatable(
} }
if ($utimestamp > 0) { if ($utimestamp > 0) {
array_push($where, 'tagente_datos_inventory.utimestamp <= '.$utimestamp.' '); array_push($where, 'tagent_module_inventory.utimestamp <= '.$utimestamp.' ');
}
if ($date_init !== false) {
array_push($where, 'tagent_module_inventory.utimestamp >= '.$date_init.' ');
} }
$sql = sprintf( $sql = sprintf(
'SELECT tmodule_inventory.*, 'SELECT tmodule_inventory.*,
tagent_module_inventory.*, tagent_module_inventory.*,
tagente.alias as name_agent, tagente.alias as name_agent,
tagente_datos_inventory.utimestamp as last_update, tagent_module_inventory.utimestamp as last_update,
tagente_datos_inventory.timestamp as last_update_timestamp, tagent_module_inventory.timestamp as last_update_timestamp,
tagente_datos_inventory.data as data_inventory tagent_module_inventory.data as data_inventory
FROM tmodule_inventory FROM tmodule_inventory
INNER JOIN tagent_module_inventory LEFT JOIN tagent_module_inventory
ON tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory ON tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory
INNER JOIN tagente_datos_inventory
ON tagent_module_inventory.id_agent_module_inventory = tagente_datos_inventory.id_agent_module_inventory
LEFT JOIN tagente LEFT JOIN tagente
ON tagente.id_agente = tagent_module_inventory.id_agente ON tagente.id_agente = tagent_module_inventory.id_agente
@ -884,12 +892,14 @@ function get_data_basic_info_sql($params, $count=false)
} }
$where = 'WHERE 1=1 '; $where = 'WHERE 1=1 ';
if ($params['id_agent'] > 0 && $count === true) { if ($params['id_agent'] > 0) {
$where .= sprintf(' AND id_agente = %d', $params['id_agent']);
} else if ($params['id_agent'] > 0 && $count === false) {
$where .= sprintf(' AND %s.id_agente = %d', $table, $params['id_agent']); $where .= sprintf(' AND %s.id_agente = %d', $table, $params['id_agent']);
} }
if ($params['status'] >= 0) {
$where .= sprintf(' AND %s.disabled = %d', $table, $params['status']);
}
if ($params['id_group'] > 0) { if ($params['id_group'] > 0) {
$where .= sprintf(' AND id_grupo = %d', $params['id_group']); $where .= sprintf(' AND id_grupo = %d', $params['id_group']);
} else { } else {
@ -910,7 +920,7 @@ function get_data_basic_info_sql($params, $count=false)
); );
} }
if ($params['utimestamp'] > 0 && $count === false) { if ($params['utimestamp'] > 0) {
$where .= sprintf( $where .= sprintf(
' AND utimestamp BETWEEN %d AND %d', ' AND utimestamp BETWEEN %d AND %d',
($params['utimestamp'] - $params['period']), ($params['utimestamp'] - $params['period']),
@ -977,21 +987,20 @@ function get_data_basic_info_sql($params, $count=false)
$limit_condition = ''; $limit_condition = '';
$order_condition = ''; $order_condition = '';
$fields = 'count(*)';
$innerjoin = ''; $innerjoin = '';
$groupby = ''; $groupby = '';
if ($count !== true) { if (is_metaconsole() === true) {
if (is_metaconsole() === true) { $fields = 'tmetaconsole_agent.*, tagent_secondary_group.*, tagent_custom_data.*';
$fields = 'tmetaconsole_agent.*, tagent_secondary_group.*, tagent_custom_data.*'; } else {
} else { $fields = 'tagente.*, tagent_secondary_group.*, tagent_custom_data.*';
$fields = 'tagente.*, tagent_secondary_group.*, tagent_custom_data.*'; }
}
$innerjoin = 'LEFT JOIN tagente_estado ON '.$table.'.id_agente = tagente_estado.id_agente '; $innerjoin = 'LEFT JOIN tagente_estado ON '.$table.'.id_agente = tagente_estado.id_agente ';
$innerjoin .= 'LEFT JOIN tagent_secondary_group ON '.$table.'.id_agente = tagent_secondary_group.id_agent '; $innerjoin .= 'LEFT JOIN tagent_secondary_group ON '.$table.'.id_agente = tagent_secondary_group.id_agent ';
$innerjoin .= 'LEFT JOIN tagent_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent '; $innerjoin .= 'LEFT JOIN tagent_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent ';
$groupby = 'GROUP BY '.$table.'.id_agente';
if ($count !== true) {
$limit_condition = sprintf( $limit_condition = sprintf(
'LIMIT %d, %d', 'LIMIT %d, %d',
$params['start'], $params['start'],
@ -999,8 +1008,12 @@ function get_data_basic_info_sql($params, $count=false)
); );
$order_condition = sprintf('ORDER BY %s', $params['order']); $order_condition = sprintf('ORDER BY %s', $params['order']);
} else {
$fields = 'COUNT(*)';
} }
$groupby = 'GROUP BY '.$table.'.id_agente';
$sql = sprintf( $sql = sprintf(
'SELECT %s 'SELECT %s
FROM %s FROM %s
@ -1018,13 +1031,19 @@ function get_data_basic_info_sql($params, $count=false)
$limit_condition $limit_condition
); );
$sql_count = sprintf(
'SELECT COUNT(*)
FROM (%s) AS sub_sql',
$sql
);
if ($count !== true) { if ($count !== true) {
$result = db_get_all_rows_sql($sql); $result = db_get_all_rows_sql($sql);
if ($result === false) { if ($result === false) {
$result = []; $result = [];
} }
} else { } else {
$result = db_get_sql($sql); $result = db_get_sql($sql_count);
if ($result === false) { if ($result === false) {
$result = 0; $result = 0;
} }

View File

@ -91,6 +91,7 @@ if ($custom_date === '1') {
$date_init = strtotime($date_init); $date_init = strtotime($date_init);
$utimestamp = strtotime($date_end); $utimestamp = strtotime($date_end);
$status_agent = (int) get_parameter('status', -1);
if (is_ajax() === true) { if (is_ajax() === true) {
$get_csv_url = (bool) get_parameter('get_csv_url'); $get_csv_url = (bool) get_parameter('get_csv_url');
@ -192,8 +193,9 @@ if (is_ajax() === true) {
'order' => $order, 'order' => $order,
'id_agent' => $id_agent, 'id_agent' => $id_agent,
'id_group' => $id_group, 'id_group' => $id_group,
'utimestamp' => strtotime($utimestamp), 'utimestamp' => $utimestamp,
'period' => $period, 'period' => $period,
'status' => $status_agent,
]; ];
$data = get_data_basic_info_sql($params); $data = get_data_basic_info_sql($params);
@ -449,6 +451,8 @@ if ($is_metaconsole === true) {
if ($inventory_id_agent > 0) { if ($inventory_id_agent > 0) {
$sql .= ' AND id_agente = '.$inventory_id_agent; $sql .= ' AND id_agente = '.$inventory_id_agent;
$agents_node = [$inventory_id_agent => $inventory_id_agent]; $agents_node = [$inventory_id_agent => $inventory_id_agent];
} else {
$agents_node = [-1 => true];
} }
$result_module = db_get_all_rows_sql($sql); $result_module = db_get_all_rows_sql($sql);
@ -462,8 +466,8 @@ if ($is_metaconsole === true) {
$export, $export,
false, false,
$order_by_agent, $order_by_agent,
$server, $date_init,
$pagination_url_parameters $status_agent
); );
$data_tmp['server_name'] = $connection['server_name']; $data_tmp['server_name'] = $connection['server_name'];
@ -495,6 +499,8 @@ if ($is_metaconsole === true) {
if ($inventory_id_agent > 0) { if ($inventory_id_agent > 0) {
$sql .= ' AND id_agente = '.$inventory_id_agent; $sql .= ' AND id_agente = '.$inventory_id_agent;
$agents_node = [$inventory_id_agent => $inventory_id_agent]; $agents_node = [$inventory_id_agent => $inventory_id_agent];
} else {
$agents_node = [-1 => true];
} }
$result = db_get_all_rows_sql($sql); $result = db_get_all_rows_sql($sql);
@ -510,8 +516,8 @@ if ($is_metaconsole === true) {
$export, $export,
false, false,
$order_by_agent, $order_by_agent,
$server, $date_init,
$pagination_url_parameters $status_agent
); );
$data_tmp['server_name'] = $server['server_name']; $data_tmp['server_name'] = $server['server_name'];
@ -764,6 +770,23 @@ if (is_metaconsole() === false) {
); );
} }
$table->data[2][0] = html_print_label_input_block(
__('Status agent'),
html_print_select(
[
-1 => __('All'),
0 => __('Enabled'),
1 => __('Disabled'),
],
'status',
$status_agent,
'',
'',
0,
true
)
);
$searchForm .= html_print_table($table, true); $searchForm .= html_print_table($table, true);
$searchForm .= html_print_div( $searchForm .= html_print_div(
[ [
@ -1054,12 +1077,17 @@ if ($inventory_module !== 'basic') {
} }
} }
} else { } else {
// Single agent selected. if ($inventory_id_agent > 0) {
if ($inventory_id_agent > 0 && isset($agents[$inventory_id_agent]) === true) { // Single agent selected.
$agents = [$inventory_id_agent => $agents[$inventory_id_agent]]; if ($inventory_id_agent > 0 && isset($agents[$inventory_id_agent]) === true) {
$agents = [$inventory_id_agent => $agents[$inventory_id_agent]];
}
$agents_ids = array_keys($agents);
} else {
$agents_ids = [-1];
} }
$agents_ids = array_keys($agents);
if (count($agents_ids) > 0) { if (count($agents_ids) > 0) {
$rows = inventory_get_datatable( $rows = inventory_get_datatable(
$agents_ids, $agents_ids,
@ -1068,7 +1096,9 @@ if ($inventory_module !== 'basic') {
$inventory_search_string, $inventory_search_string,
$export, $export,
false, false,
$order_by_agent $order_by_agent,
$date_init,
$status_agent
); );
} }
@ -1355,6 +1385,7 @@ if ($inventory_module !== 'basic') {
'id_agent' => $id_agente, 'id_agent' => $id_agente,
'id_group' => $inventory_id_group, 'id_group' => $inventory_id_group,
'search' => $search, 'search' => $search,
'status' => $status_agent,
], ],
'zeroRecords' => __('Agent info not found'), 'zeroRecords' => __('Agent info not found'),
'emptyTable' => __('Agent info not found'), 'emptyTable' => __('Agent info not found'),