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') {
// We are selecting "any" module for the selecteds agents
if (($module_name[0] == '0') and (is_array($module_name)) and (count($module_name) == 1)) {
$filter_for_module_deletion = false;
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;
}
} else {
$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) {
$agents_ = '';
$module_status = get_parameter('status_module');
if ($selection_mode == 'modules') {
$agents_ = [];
@ -109,7 +112,7 @@ if ($update) {
}
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++;
$success += (int) $result;
}
@ -132,7 +135,7 @@ if ($update) {
}
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++;
$success += (int) $result;
}
@ -150,7 +153,7 @@ if ($update) {
}
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++;
$success += (int) $result;
}
@ -1899,7 +1902,7 @@ function disabled_status () {
/* ]]> */
</script>
<?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) {
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) {
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.
if ($module['id_tipo_modulo'] >= 15 && $module['id_tipo_modulo'] <= 18) {
if ($snmp_version != '') {