Merge branch 'ent-6582-Bug-con-masivas-de-modulos-y-filtro-module-status' into 'develop'

fixed status filter when applying changes to a module of any agent

See merge request artica/pandorafms!3630
This commit is contained in:
Daniel Rodriguez 2021-01-04 11:16:07 +01:00
commit f528e47cdc
2 changed files with 26 additions and 5 deletions

View File

@ -86,7 +86,11 @@ function process_manage_delete($module_name, $id_agents, $module_status='all')
if ($selection_delete_mode == 'agents') { if ($selection_delete_mode == 'agents') {
// We are selecting "any" module for the selecteds agents // We are selecting "any" module for the selecteds agents
if (($module_name[0] == '0') and (is_array($module_name)) and (count($module_name) == 1)) { if (($module_name[0] == '0') and (is_array($module_name)) and (count($module_name) == 1)) {
if ($status_module != -1) {
$filter_for_module_deletion = sprintf('tagente_modulo.id_agente_modulo IN (SELECT id_agente_modulo FROM tagente_estado where estado = %s OR utimestamp=0 )', $status_module);
} else {
$filter_for_module_deletion = false; $filter_for_module_deletion = false;
}
} else { } else {
$filter_for_module_deletion = sprintf('tagente_modulo.nombre IN ("%s")', implode('","', $module_name)); $filter_for_module_deletion = sprintf('tagente_modulo.nombre IN ("%s")', implode('","', $module_name));
} }

View File

@ -46,6 +46,9 @@ $update = (bool) get_parameter_post('update');
if ($update) { if ($update) {
$agents_ = ''; $agents_ = '';
$module_status = get_parameter('status_module');
if ($selection_mode == 'modules') { if ($selection_mode == 'modules') {
$agents_ = []; $agents_ = [];
@ -109,7 +112,7 @@ if ($update) {
} }
foreach ($module_name as $mod_name) { foreach ($module_name as $mod_name) {
$result = process_manage_edit($mod_name['nombre'], $id_agent, $modules_selection_mode); $result = process_manage_edit($mod_name['nombre'], $id_agent, $module_status, $modules_selection_mode);
$count++; $count++;
$success += (int) $result; $success += (int) $result;
} }
@ -132,7 +135,7 @@ if ($update) {
} }
foreach ($module_name as $mod_name) { foreach ($module_name as $mod_name) {
$result = process_manage_edit($mod_name['nombre'], $id_agent, $modules_selection_mode); $result = process_manage_edit($mod_name['nombre'], $id_agent, $module_status, $modules_selection_mode);
$count++; $count++;
$success += (int) $result; $success += (int) $result;
} }
@ -150,7 +153,7 @@ if ($update) {
} }
foreach ($modules_ as $module_) { foreach ($modules_ as $module_) {
$result = process_manage_edit($module_, $agent_, $modules_selection_mode); $result = process_manage_edit($module_, $agent_, $module_status, $modules_selection_mode);
$count++; $count++;
$success += (int) $result; $success += (int) $result;
} }
@ -1899,7 +1902,7 @@ function disabled_status () {
/* ]]> */ /* ]]> */
</script> </script>
<?php <?php
function process_manage_edit($module_name, $agents_select=null, $module_status='all') function process_manage_edit($module_name, $agents_select=null, $module_status='-1', $selection_mode='all')
{ {
if (is_int($module_name) && $module_name < 0) { if (is_int($module_name) && $module_name < 0) {
ui_print_error_message(__('No modules selected')); ui_print_error_message(__('No modules selected'));
@ -2189,6 +2192,20 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
} }
foreach ($modules as $module) { foreach ($modules as $module) {
if ($module_status !== '-1') {
if (modules_is_not_init($module['id_agente_modulo']) === true) {
if ($module_status != AGENT_MODULE_STATUS_NO_DATA && $module_status != AGENT_MODULE_STATUS_NOT_INIT) {
continue;
}
} else {
$status = modules_get_agentmodule_status($module['id_agente_modulo']);
if ($module_status !== $status) {
continue;
}
}
}
// Set tcp_send value according to module type since the purpose of this field in database varies in case of SNMP modules. // Set tcp_send value according to module type since the purpose of this field in database varies in case of SNMP modules.
if ($module['id_tipo_modulo'] >= 15 && $module['id_tipo_modulo'] <= 18) { if ($module['id_tipo_modulo'] >= 15 && $module['id_tipo_modulo'] <= 18) {
if ($snmp_version != '') { if ($snmp_version != '') {