• ".__('General')."
  • ".__('Details')."
  • ".__('Agent custom fields')."
  • ".__('Comments')."
  • ".__('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 .= ''; $notifications .= ''; $notifications .= ''; $notifications .= ''; $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 .= ''.$title.''; $out .= ''; $out .= io_safe_output($event['evento']); $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] = '
    '; $data[1] .= html_print_button(__('Delete event'),'delete_button',false,'if(!confirm(\''.__('Are you sure?').'\')) { return false; } this.form.submit();','class="sub cancel"',true); $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 = '
    '.html_print_textarea("comment", 3, 10, '', 'style="min-height: 15px; width: 100%;"', true); $comments_form .= '
    '.html_print_button(__('Add comment'),'comment_button',false,'event_comment();','class="sub next"',true).'

    '; $comments = '
    '.$comments_form.html_print_table($table_comments, true).'
    '; return $comments; } ?>