".__('General')."
".__('Details')."
".__('Agent custom fields')."
".__('Actions')."
";
// Get criticity image
switch ($event["criticity"]) {
default:
case 0:
$img_sev = "images/status_sets/default/severity_maintenance.png";
break;
case 1:
$img_sev = "images/status_sets/default/severity_informational.png";
break;
case 2:
$img_sev = "images/status_sets/default/severity_normal.png";
break;
case 3:
$img_sev = "images/status_sets/default/severity_warning.png";
break;
case 4:
$img_sev = "images/status_sets/default/severity_critical.png";
break;
case 5:
$img_sev = "images/status_sets/default/severity_minor.png";
break;
case 6:
$img_sev = "images/status_sets/default/severity_major.png";
break;
}
$actions = events_page_actions($event);
$details = events_page_details($event);
$custom_fields = events_page_custom_fields($event);
$general = events_page_general($event);
$comments = events_page_comments($event);
$notifications = '';
$notifications .= '';
$notifications .= ''.ui_print_success_message(__('Error changing event status'),'',true).'
';
$notifications .= ''.ui_print_success_message(__('Event status changed successfully'),'',true).'
';
$notifications .= ''.ui_print_success_message(__('Error changing event owner'),'',true).'
';
$notifications .= ''.ui_print_success_message(__('Event owner changed successfully'),'',true).'
';
$out = ''.$tabs.$notifications.$general.$details.$custom_fields.$comments.$actions.html_print_input_hidden('id_event',$event['id_evento']).'
';
$js = '';
echo $out.$js;
}
if($get_events_details) {
$event_ids = explode(',',get_parameter ('event_ids'));
$events = db_get_all_rows_filter ('tevento',
array ('id_evento' => $event_ids,
'order' => 'utimestamp ASC'),
array ('evento', 'utimestamp', 'estado', 'criticity'));
$out = '';
$out .= ' | |
';
foreach($events as $event) {
switch($event["estado"]) {
case 0:
$img = "../../images/star.png";
$title = __('New event');
break;
case 1:
$img = "../../images/tick.png";
$title = __('Event validated');
break;
case 2:
$img = "../../images/hourglass.png";
$title = __('Event in process');
break;
}
$out .= '';
$out .= ' ';
$out .= ' | ';
$out .= io_safe_output($event['evento']);
$out .= ' |
| ';
$out .= ' |
| ';
$out .= ' |
';
}
$out .= '
';
echo $out;
}
function events_page_actions ($event) {
global $config;
/////////
// Actions
/////////
$table_actions->width = '100%';
$table_actions->data = array ();
$table_actions->head = array ();
$table_actions->style[0] = 'width:35%; font-weight: bold; text-align: left;';
$table_actions->style[1] = 'text-align: left;';
$table_actions->class = "databox alternate";
// Owner
$data = array();
$data[0] = __('Change owner');
$user_name = db_get_value('fullname', 'tusuario', 'id_user', $config['id_user']);
$owners = array($config['id_user'] => $user_name);
if($event['owner_user'] == '') {
$owner_name = __('None');
}
else {
$owner_name = db_get_value('fullname', 'tusuario', 'id_user', $event['owner_user']);
$owners[$event['owner_user']] = $owner_name;
}
$data[1] = html_print_select($owners, 'id_owner', $event['owner_user'], '', __('None'), -1, true);
$data[1] .= html_print_button(__('Update'),'owner_button',false,'event_change_owner();','class="sub next"',true);
$table_actions->data[] = $data;
// Status
$data = array();
$data[0] = __('Change status');
$status = array(0 => __('New'), 2 => __('In process'), 1 => __('Validated'));
$data[1] = html_print_select($status, 'estado', $event['estado'], '', '', 0, true);
$data[1] .= html_print_button(__('Update'),'status_button',false,'event_change_status();','class="sub next"',true);
$table_actions->data[] = $data;
// Comments
$data = array();
$data[0] = __('Comment');
$data[1] = html_print_button(__('Add comment'),'comment_button',false,'$(\'#link_comments\').trigger(\'click\');','class="sub next"',true);
$table_actions->data[] = $data;
// Delete
$data = array();
$data[0] = __('Delete event');
$data[1] = '';
$table_actions->data[] = $data;
$actions = ''.html_print_table($table_actions, true).'
';
return $actions;
}
function events_page_custom_fields ($event) {
global $config;
/////////
// Custom fields
/////////
$table->width = '100%';
$table->data = array ();
$table->head = array ();
$table->style[0] = 'width:35%; font-weight: bold; text-align: left;';
$table->style[1] = 'text-align: left;';
$table->class = "databox alternate";
$fields = db_get_all_rows_filter('tagent_custom_fields');
if($event['id_agente'] == 0) {
$fields_data = array();
}
else {
$fields_data = db_get_all_rows_filter('tagent_custom_data', array('id_agent' => $event['id_agente']));
if(is_array($fields_data)) {
$fields_data_aux = array();
foreach($fields_data as $fd) {
$fields_data_aux[$fd['id_field']] = $fd['description'];
}
$fields_data = $fields_data_aux;
}
}
foreach($fields as $field) {
// Owner
$data = array();
$data[0] = $field['name'];
$data[1] = isset($fields_data[$field['id_field']]) ? $fields_data[$field['id_field']] : ''.__('N/A').'';
$field['id_field'];
$table->data[] = $data;
}
$custom_fields = ''.html_print_table($table, true).'
';
return $custom_fields;
}
function events_page_details ($event) {
global $img_sev;
/////////
// Details
/////////
$table_details->width = '100%';
$table_details->data = array ();
$table_details->head = array ();
$table_details->style[0] = 'width:35%; font-weight: bold; text-align: left;';
$table_details->style[1] = 'text-align: left;';
$table_details->class = "databox alternate";
switch($event['event_type']) {
case 'going_unknown':
case 'going_up_warning':
case 'going_down_warning':
case 'going_up_critical':
case 'going_down_critical':
break;
}
if ($event["id_agente"] != 0) {
$agent = db_get_row('tagente','id_agente',$event["id_agente"]);
}
else {
$agent = array();
}
$data = array();
$data[0] = __('Agent details');
$data[1] = empty($agent) ? '' . __('N/A') . '' : '';
$table_details->data[] = $data;
if (!empty($agent)) {
$data = array();
$data[0] = ''.__('Name').'
';
$data[1] = ui_print_agent_name ($event["id_agente"], true);
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('IP Address').'
';
$data[1] = empty($agent['url_address']) ? ''.__('N/A').'' : $agent['url_address'];
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('OS').'
';
$data[1] = ui_print_os_icon ($agent["id_os"], true, true).' ('.$agent["os_version"].')';
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('Last contact').'
';
$data[1] = $agent["ultimo_contacto"];
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('Last remote contact').'
';
if ($agent["ultimo_contacto_remoto"] == "01-01-1970 00:00:00") {
$data[1] .= __('Never');
}
else {
$data[1] .= $agent["ultimo_contacto_remoto"];
}
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('Custom fields').'
';
$data[1] = html_print_button(__('View custom fields'),'custom_button',false,'$(\'#link_custom_fields\').trigger(\'click\');','class="sub next"',true);
$table_details->data[] = $data;
}
if ($event["id_agentmodule"] != 0) {
$module = db_get_row_filter('tagente_modulo',array('id_agente_modulo' => $event["id_agentmodule"], 'delete_pending' => 0));
}
else {
$module = array();
}
$data = array();
$data[0] = __('Module details');
$data[1] = empty($module) ? '' . __('N/A') . '' : '';
$table_details->data[] = $data;
if (!empty($module)) {
// Module name
$data = array();
$data[0] = ''.__('Name').'
';
$data[1] = '';
$data[1] .= $module['nombre'];
$data[1] .= '';
$table_details->data[] = $data;
// Module group
$data = array();
$data[0] = ''.__('Module group').'
';
$id_module_group = $module['id_module_group'];
if($id_module_group == 0) {
$data[1] = __('No assigned');
}
else {
$module_group = db_get_value('name', 'tmodule_group', 'id_mg', $id_module_group);
$data[1] = '';
$data[1] .= $module_group;
$data[1] .= '';
}
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('Graph').'
';
$data[1] = '';
$data[1] .= html_print_image('images/chart_curve.png',true);
$data[1] .= '';
$table_details->data[] = $data;
}
$data = array();
$data[0] = __('Alert details');
$data[1] = $event["id_alert_am"] == 0 ? '' . __('N/A') . '' : '';
$table_details->data[] = $data;
if($event["id_alert_am"] != 0) {
$data = array();
$data[0] = ''.__('Source').'
';
$data[1] = '';
$standby = db_get_value('standby', 'talert_template_modules', 'id', $event["id_alert_am"]);
if(!$standby) {
$data[1] .= html_print_image ("images/bell.png", true,
array ("title" => __('Go to data overview')));
}
else {
$data[1] .= html_print_image ("images/bell_pause.png", true,
array ("title" => __('Go to data overview')));
}
$sql = 'SELECT name
FROM talert_templates
WHERE id IN (SELECT id_alert_template
FROM talert_template_modules
WHERE id = ' . $event["id_alert_am"] . ');';
$templateName = db_get_sql($sql);
$data[1] .= $templateName;
$data[1] .= '';
$table_details->data[] = $data;
$data = array();
$data[0] = ''.__('Priority').'
';
$priority_code = db_get_value('priority', 'talert_template_modules', 'id', $event["id_alert_am"]);
$alert_priority = get_priority_name ($priority_code);
$data[1] = html_print_image ($img_sev, true,
array ("class" => "image_status",
"width" => 12,
"height" => 12,
"title" => $alert_priority));
$data[1] .= ' '.$alert_priority;
$table_details->data[] = $data;
}
switch($event['event_type']) {
case 'going_unknown':
$data = array();
$data[0] = __('Instructions');
if ($event["unknown_instructions"] != '') {
$data[1] = $event["unknown_instructions"];
}
else {
$data[1] = '' . __('N/A') . '';
}
$table_details->data[] = $data;
break;
case 'going_up_warning':
case 'going_down_warning':
$data = array();
$data[0] = __('Instructions');
if ($event["warning_instructions"] != '') {
$data[1] = $event["warning_instructions"];
}
else {
$data[1] = '' . __('N/A') . '';
}
$table_details->data[] = $data;
break;
case 'going_up_critical':
case 'going_down_critical':
$data = array();
$data[0] = __('Instructions');
if ($event["critical_instructions"] != '') {
$data[1] = $event["critical_instructions"];
}
else {
$data[1] = '' . __('N/A') . '';
}
$table_details->data[] = $data;
break;
}
$data = array();
$data[0] = __('Extra id');
if ($event["id_extra"] != '') {
$data[1] = $event["id_extra"];
}
else {
$data[1] = '' . __('N/A') . '';
}
$table_details->data[] = $data;
$data = array();
$data[0] = __('Source');
if ($event["source"] != '') {
$data[1] = $event["source"];
}
else {
$data[1] = '' . __('N/A') . '';
}
$table_details->data[] = $data;
$details = ''.html_print_table($table_details, true).'
';
return $details;
}
function events_page_general ($event) {
global $img_sev;
global $config;
global $group_rep;
/////////
// General
/////////
$table_general->width = '100%';
$table_general->data = array ();
$table_general->head = array ();
$table_general->style[0] = 'width:35%; font-weight: bold; text-align: left;';
$table_general->style[1] = 'text-align: left;';
$table_general->class = "databox alternate";
$data = array();
$data[0] = __('Event ID');
$data[1] = "#".$event["id_evento"];
$table_general->data[] = $data;
$data = array();
$data[0] = __('Event name');
$data[1] = io_safe_output(io_safe_output($event["evento"]));
$table_general->data[] = $data;
$data = array();
$data[0] = __('Timestamp');
if ($group_rep == 1 && $event["event_rep"] > 0) {
$data[1] = __('First event').': '.date ($config["date_format"], $event['timestamp_rep_min']).'
'.__('Last event').': '.date ($config["date_format"], $event['timestamp_rep']);
}
else {
$data[1] = date ($config["date_format"], strtotime($event["timestamp"]));
}
$table_general->data[] = $data;
$data = array();
$data[0] = __('Type');
$data[1] = events_print_type_img ($event["event_type"], true).' '.events_print_type_description($event["event_type"], true);
$table_general->data[] = $data;
$data = array();
$data[0] = __('Repeated');
if ($group_rep != 0) {
if($event["event_rep"] == 0) {
$data[1] = __('No');
}
else {
$data[1] = sprintf("%d Times",$event["event_rep"]);
}
}
else {
$data[1] = __('No');
}
$table_general->data[] = $data;
$data = array();
$data[0] = __('Severity');
$event_criticity = get_priority_name ($event["criticity"]);
$data[1] = html_print_image ($img_sev, true,
array ("class" => "image_status",
"width" => 12,
"height" => 12,
"title" => $event_criticity));
$data[1] .= ' '.$event_criticity;
$table_general->data[] = $data;
// Get Status
switch($event['estado']) {
case 0:
$img_st = "images/star.png";
$title_st = __('New event');
break;
case 1:
$img_st = "images/tick.png";
$title_st = __('Event validated');
break;
case 2:
$img_st = "images/hourglass.png";
$title_st = __('Event in process');
break;
}
$data = array();
$data[0] = __('Status');
$data[1] = html_print_image($img_st,true).' '.$title_st;
$table_general->data[] = $data;
// If event is validated, show who and when acknowleded it
$data = array();
$data[0] = __('Acknowledged by');
if($event['estado'] == 1) {
$user_ack = db_get_value('fullname', 'tusuario', 'id_user', $event['id_usuario']);
$date_ack = date ($config["date_format"], $event['ack_utimestamp']);
$data[1] = $user_ack.' ('.$date_ack.')';
}
else {
$data[1] = ''.__('N/A').'';
}
$table_general->data[] = $data;
$data = array();
$data[0] = __('Group');
$data[1] = ui_print_group_icon ($event["id_grupo"], true);
$data[1] .= groups_get_name ($event["id_grupo"]);
$table_general->data[] = $data;
$data = array();
$data[0] = __('Tags');
if ($event["tags"] != '') {
$tag_array = explode(',', $event["tags"]);
$data[1] = '';
foreach ($tag_array as $tag_element){
$blank_char_pos = strpos($tag_element, ' ');
$tag_name = substr($tag_element, 0, $blank_char_pos);
$tag_url = substr($tag_element, $blank_char_pos + 1);
$data[1] .= ' ' .$tag_name;
if (!empty($tag_url)){
$data[1] .= ' ' . html_print_image('images/lupa.png', true, array('title' => __('Click here to open a popup window with URL tag'))) . ' ';
}
$data[1] .= ',';
}
$data[1] = rtrim($table_general, ',');
}
else {
$data[1] = '' . __('N/A') . '';
}
$table_general->data[] = $data;
$general = ''.html_print_table($table_general,true).'
';
return $general;
}
function events_page_comments ($event) {
/////////
// Comments
/////////
$table_comments->width = '100%';
$table_comments->data = array ();
$table_comments->head = array ();
$table_comments->style[0] = 'width:35%; vertical-align: top; text-align: left;';
$table_comments->style[1] = 'text-align: left;';
$table_comments->class = "databox alternate";
$comments_array = explode('
',io_safe_output($event["user_comment"]));
// Split comments and put in table
$col = 0;
$data = array();
foreach($comments_array as $c) {
switch($col) {
case 0:
$row_text = preg_replace('/\s*--\s*/',"",$c);
html_debug_print($row_text,true);
$row_text = preg_replace('/\<\/b\>/',"",$row_text);
html_debug_print($row_text,true);
$row_text = preg_replace('/\[/',"
[",$row_text);
$row_text = preg_replace('/[\[|\]]/',"",$row_text);
break;
case 1:
$row_text = preg_replace("/\r\n/","
",io_safe_output(strip_tags($c)));
break;
}
$data[$col] = $row_text;
$col++;
if($col == 2) {
$col = 0;
$table_comments->data[] = $data;
$data = array();
}
}
if(count($comments_array) == 1 && $comments_array[0] == '') {
$table_comments->style[0] = 'text-align:center;';
$table_comments->colspan[0][0] = 2;
$data = array();
$data[0] = __('There are no comments');
$table_comments->data[] = $data;
}
$comments_form = '
';
$comments = '';
return $comments;
}
?>