'tagente_modulo.id_tipo_modulo', 'order' => 'ASC'); break; case 'down': $selectTypeDown = $selected; $order = array('field' => 'tagente_modulo.id_tipo_modulo', 'order' => 'DESC'); break; } break; case 'name': switch ($sort) { case 'up': $selectNameUp = $selected; $order = array('field' => 'tagente_modulo.nombre', 'order' => 'ASC'); break; case 'down': $selectNameDown = $selected; $order = array('field' => 'tagente_modulo.nombre', 'order' => 'DESC'); break; } break; case 'status': switch ($sort) { case 'up': $selectStatusUp = $selected; $order = array('field' => 'tagente_estado.estado', 'order' => 'ASC'); break; case 'down': $selectStatusDown = $selected; $order = array('field' => 'tagente_estado.estado', 'order' => 'DESC'); break; } break; case 'data': switch ($sort) { case 'up': $selectDataUp = $selected; $order = array('field' => 'tagente_estado.datos', 'order' => 'ASC'); break; case 'down': $selectDataDown = $selected; $order = array('field' => 'tagente_estado.datos', 'order' => 'DESC'); break; } break; case 'last_contact': switch ($sort) { case 'up': $selectLastContactUp = $selected; $order = array('field' => 'tagente_estado.utimestamp', 'order' => 'ASC'); break; case 'down': $selectLastContactDown = $selected; $order = array('field' => 'tagente_estado.utimestamp', 'order' => 'DESC'); break; } break; default: $selectTypeUp = ''; $selectTypeDown = ''; $selectNameUp = $selected; $selectNameDown = ''; $selectStatusUp = ''; $selectStatusDown = ''; $selectDataUp = ''; $selectDataDown = ''; $selectLastContactUp = ''; $selectLastContactDown = ''; $order = array('field' => 'tagente_modulo.nombre', 'order' => 'ASC'); break; } // Get all module from agent $sql = sprintf (" SELECT * FROM tagente_estado, tagente_modulo LEFT JOIN tmodule_group ON tmodule_group.id_mg = tagente_modulo.id_module_group WHERE tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.id_agente = %d AND tagente_modulo.disabled = 0 AND tagente_modulo.delete_pending = 0 AND tagente_estado.utimestamp != 0 ORDER BY tagente_modulo.id_module_group , %s %s ", $id_agente, $order['field'], $order['order']); $modules = get_db_all_rows_sql ($sql); if (empty ($modules)) { $modules = array (); } $table->width = 750; $table->cellpadding = 4; $table->cellspacing = 4; $table->class = "databox"; $table->head = array (); $table->data = array (); $table->head[0] = ''; $table->head[1] = __('Type') . ' ' . '' . ''; $table->head[2] = __('Module name') . ' ' . '' . ''; $table->head[3] = __('Description'); $table->head[4] = __('Status') . ' ' . '' . ''; $table->head[5] = __('Data') . ' ' . '' . ''; $table->head[6] = __('Graph'); $table->head[7] = __('Last contact') . ' ' . '' . ''; $table->align = array("left","left","left","left","center"); $last_modulegroup = 0; $rowIndex = 0; foreach ($modules as $module) { //The code add the row of 1 cell with title of group for to be more organice the list. if ($module["id_module_group"] != $last_modulegroup) { $table->colspan[$rowIndex][0] = count($table->head); $table->rowclass[$rowIndex] = 'datos4'; array_push ($table->data, array (''.$module['name'].'')); $rowIndex++; $last_modulegroup = $module["id_module_group"]; } //End of title of group $data = array (); if (($module["id_modulo"] != 1) && ($module["id_tipo_modulo"] != 100)) { if ($module["flag"] == 0) { $data[0] = ''; } else { $data[0] = ''; } } else { $data[0] = ''; } $data[1] = show_server_type ($module['id_modulo']); if (give_acl ($config['id_user'], $id_grupo, "AW")) $data[1] .= ''; $data[2] = print_string_substr ($module["nombre"], 25, true); $data[3] = print_string_substr ($module["descripcion"], 30, true); $status = STATUS_MODULE_WARNING; $title = ""; if ($module["estado"] == 2) { $status = STATUS_MODULE_WARNING; $title = __('WARNING'); } elseif ($module["estado"] == 1) { $status = STATUS_MODULE_CRITICAL; $title = __('CRITICAL'); } else { $status = STATUS_MODULE_OK; $title = __('NORMAL'); } if (is_numeric($module["datos"])) { $title .= " : " . format_for_graph($module["datos"]); } else { $title .= " : " . substr(safe_output($module["datos"]),0,42); } $data[4] = print_status_image($status, $title, true); if ($module["id_tipo_modulo"] == 24) { // log4x switch($module["datos"]) { case 10: $salida = "TRACE"; $style="font-weight:bold; color:darkgreen;"; break; case 20: $salida = "DEBUG"; $style="font-weight:bold; color:darkgreen;"; break; case 30: $salida = "INFO"; $style="font-weight:bold; color:darkgreen;"; break; case 40: $salida = "WARN"; $style="font-weight:bold; color:darkorange;"; break; case 50: $salida = "ERROR"; $style="font-weight:bold; color:red;"; break; case 60: $salida = "FATAL"; $style="font-weight:bold; color:red;"; break; } $salida = "$salida"; } else { if (is_numeric($module["datos"])){ $salida = format_numeric($module["datos"]); } else { $salida = "".substr(safe_output($module["datos"]),0,12).""; } } $data[5] = $salida; $graph_type = return_graphtype ($module["id_tipo_modulo"]); $data[6] = " "; if ($module['history_data'] == 1){ $nombre_tipo_modulo = get_moduletype_name ($module["id_tipo_modulo"]); $handle = "stat".$nombre_tipo_modulo."_".$module["id_agente_modulo"]; $url = 'include/procesos.php?agente='.$module["id_agente_modulo"]; $win_handle=dechex(crc32($module["id_agente_modulo"].$module["nombre"])); $link ="winopeng('operation/agentes/stat_win.php?type=$graph_type&period=86400&id=".$module["id_agente_modulo"]."&label=".$module["nombre"]."&refresh=600','day_".$win_handle."')"; // if ($nombre_tipo_modulo != "log4x") $data[6] .= ''; $data[6] .= " "; } $seconds = get_system_time () - $module["utimestamp"]; if ($module['id_tipo_modulo'] < 21 && $module["module_interval"] > 0 && $module["utimestamp"] > 0 && $seconds >= ($module["module_interval"] * 2)) { $data[7] = ''; } else { $data[7] = ''; } $data[7] .= print_timestamp ($module["utimestamp"], true); $data[7] .= ''; array_push ($table->data, $data); $rowIndex++; } if (empty ($table->data)) { echo '
'.__('This agent doesn\'t have any active monitors').'
'; } else { echo "

".__('Full list of monitors')."

"; print_table ($table); } unset ($table); unset ($table_data); ?>