"ANY(SELECT id_agente FROM tagente WHERE id_grupo = " . $group); db_process_sql_update('tagente_modulo', array("flag" => 1), $where); } else { db_pandora_audit("ACL Violation", "Trying to set flag for groups"); require ("general/noaccess.php"); exit; } } if ($config["realtimestats"] == 0) { $updated_info = __('Last update'). " : ". ui_print_timestamp (db_get_sql ("SELECT min(utimestamp) FROM tgroup_stat"), true); } else { $updated_info = __("Updated at realtime"); } $updated_time = $updated_info; $refr = get_parameter('refr', 30); // By default 30 seconds $group_id = get_parameter('group_id', 0); $offset = get_parameter('offset', 0); $hor_offset = get_parameter('hor_offset', 0); $block = 20; $groups = users_get_groups (); $filter_groups = '
'; $filter_groups .= ''.__('Group').''; $filter_groups .= html_print_select_groups(false, "AR", true, 'group_id', $group_id, 'this.form.submit()', '', '', true, false, true, '', false , 'width: 100px; margin-right: 10px;; margin-top: 5px;'); $filter_groups .= '
'; $comborefr = '
'; $comborefr .= ''.__('Refresh').''; $comborefr .= html_print_select ( array('30' => '30 '.__('seconds'), (string)SECONDS_1MINUTE => __('1 minute'), (string)SECONDS_2MINUTES => __('2 minutes'), (string)SECONDS_5MINUTES => __('5 minutes'), (string)SECONDS_10MINUTES => __('10 minutes')) , 'refr', (int)get_parameter('refr', 0), $script = 'this.form.submit()', '', 0, true, false, false, '', false, 'width: 100px; margin-right: 10px; margin-top: 5px;'); $comborefr .= "
"; if ($config["pure"] == 0) { $fullscreen['text'] = '' . html_print_image ("images/full_screen.png", true, array ("title" => __('Full screen mode'))) . ""; } else { $fullscreen['text'] = '' . html_print_image ("images/normal_screen.png", true, array ("title" => __('Back to normal mode'))) . ""; $config['refr'] = $refr; } $onheader = array('updated_time' => $updated_time, 'fullscreen' => $fullscreen, 'combo_groups' => $filter_groups); if ($config['pure'] == 1) { $onheader['combo_refr'] = $comborefr; } // Header ui_print_page_header (__("Agents/Alerts"), "images/op_alerts.png", false, "", false, $onheader); // Old style table, we need a lot of special formatting,don't use table function // Prepare old-style table $filter = array ('offset' => (int) $offset, 'limit' => (int) $config['block_size']); $filter_count = array(); if ($group_id > 0) { $filter['id_grupo'] = $group_id; $filter_count['id_grupo'] = $group_id; } // Get the id of all agents with alerts $sql = 'SELECT DISTINCT(id_agente) FROM tagente_modulo WHERE id_agente_modulo IN (SELECT id_agent_module FROM talert_template_modules)'; $agents_with_alerts_raw = db_get_all_rows_sql($sql); if ($agents_with_alerts_raw === false) { $agents_with_alerts_raw = array(); } $agents_with_alerts = array(); foreach ($agents_with_alerts_raw as $awar) { $agents_with_alerts[] = $awar['id_agente']; } $filter['id_agente'] = $agents_with_alerts; $filter_count['id_agente'] = $agents_with_alerts; $agents = agents_get_agents ($filter); $nagents = count(agents_get_agents ($filter_count)); if ($agents == false) { echo "
" . __('There are no agents with alerts')."
"; return; } $all_alerts = agents_get_alerts_simple (); if($config["pure"] == 1) { $block = count($all_alerts); } $templates = array(); $agent_alerts = array(); foreach ($all_alerts as $alert) { $templates[$alert['id_alert_template']] = ''; $agent_alerts[$alert['agent_name']][$alert['id_alert_template']][] = $alert; } // Prepare pagination ui_pagination ($nagents); echo ''; echo ""; if ($hor_offset > 0) { $new_hor_offset = $hor_offset-$block; echo ""; } if (!empty($templates)) { $sql = sprintf('SELECT id, name FROM talert_templates WHERE id IN (%s)',implode(',',array_keys($templates))); $templates_raw = db_get_all_rows_sql($sql); } $alerts = array(); $ntemplates = 0; foreach ($templates_raw as $temp) { if (isset($templates[$temp['id']]) && $templates[$temp['id']] == '') { $ntemplates++; if ($ntemplates <= $hor_offset || $ntemplates > ($hor_offset+$block)) { continue; } $templates[$temp['id']] = $temp['name']; } } foreach ($templates as $tid => $tname) { if ($tname == '') { continue; } echo '"; } if (($hor_offset + $block) < $ntemplates) { $new_hor_offset = $hor_offset+$block; echo ""; } foreach ($agents as $agent) { echo ''; // Name of the agent echo ''; // Alerts of the agent $anyfired = false; foreach ($templates as $tid => $tname) { if ($tname == '') { continue; } if (isset($agent_alerts[$agent['nombre']][$tid])) { foreach($agent_alerts[$agent['nombre']][$tid] as $alert) { if($alert["times_fired"] > 0) { $anyfired = true; } } $cellstyle = ''; if($anyfired) { $cellstyle = 'background:'.COL_ALERTFIRED.';'; } echo ''; } echo ''; } echo '
".__("Agents")." / ".__("Alert templates")."".html_print_image("images/darrowleft.png",true, array('title' => __('Previous templates')))." '. html_print_image('images/information.png', true, array('title' => io_safe_output($tname))) ."".html_print_image("images/darrowright.png",true, array('title' => __('More templates')))."
'.$agent['nombre'].' '; $uniqid = uniqid(); echo "
"; echo count($agent_alerts[$agent['nombre']][$tid])." ".__('Alerts')." "; echo "".html_print_image('images/zoom.png', true).""; echo "
"; print_alerts_summary_modal_window($uniqid, $agent_alerts[$agent['nombre']][$tid]); } else { echo '
'; } echo '
'; } // Print the modal window for the summary of each alerts group function print_alerts_summary_modal_window($id, $alerts) { $table->width = '98%'; $table->class = "databox"; $table->data = array (); $table->head[0] = __('Module'); $table->head[1] = __('Action'); $table->head[2] = __('Last fired'); $table->head[3] = __('Status'); foreach($alerts as $alert) { $data[0] = modules_get_agentmodule_name ($alert['id_agent_module']); $actions = alerts_get_alert_agent_module_actions ($alert['id']); $actionDefault = db_get_value_sql("SELECT id_alert_action FROM talert_templates WHERE id = " . $alert['id_alert_template']); $actionText = ''; if (!empty($actions)) { $actionText = '
'; } else { if (!empty($actionDefault)) { $actionText = db_get_sql ("SELECT name FROM talert_actions WHERE id = $actionDefault"). " (".__("Default") . ")"; } } $data[1] = $actionText; $data[2] = ui_print_timestamp ($alert["last_fired"], true); $status = STATUS_ALERT_NOT_FIRED; if ($alert["times_fired"] > 0) { $status = STATUS_ALERT_FIRED; $title = __('Alert fired').' '.$alert["times_fired"].' '.__('times'); } elseif ($alert["disabled"] > 0) { $status = STATUS_ALERT_DISABLED; $title = __('Alert disabled'); } else { $status = STATUS_ALERT_NOT_FIRED; $title = __('Alert not fired'); } $data[3] = ui_print_status_image($status, $title, true); array_push ($table->data, $data); } $content = html_print_table($table,true); $agent = modules_get_agentmodule_agent_name($alerts[0]['id_agent_module']); $template = alerts_get_alert_template_name($alerts[0]['id_alert_template']); echo ''; } extensions_add_operation_menu_option(__("Agents/Alerts view"), 'estado', null, "v1r1"); extensions_add_main_function('mainAgentsAlerts'); ui_require_jquery_file('pandora'); ?>