'agent_details_bullets', 'content' => reporting_tiny_stats( $agent, true, 'agent', // Useless. ':', true ), ], true ); $table_status = new stdClass(); $table_status->id = 'agent_status_main'; $table_status->width = '90%'; $table_status->height = 'auto'; $table_status->cellspacing = 0; $table_status->cellpadding = 0; $table_status->class = 'floating_form'; $table_status->style[0] = 'height: 28px; width: 30%; padding-right: 5px; text-align: end; vertical-align: top'; $table_status->style[1] = 'height: 28px; width: 70%; padding-left: 5px; font-weight: lighter; vertical-align: top'; $os_agent_text = ''; $os_name = get_os_name((int) $agent['id_os']); if (empty($agent['os_version']) !== true) { $agent['os_version'] = io_safe_output($agent['os_version']); if (strpos($agent['os_version'], '(') !== false) { $os_name = preg_split('/[0-9]|[\(]/', $agent['os_version'])[0]; if (strlen($os_name) === 0) { $os_name = get_os_name((int) $agent['id_os']); $os_agent_text = $agent['os_version']; } else { $os_version = explode($os_name, explode('(', $agent['os_version'])[0])[1]; $os_version_name = preg_split('/[\(]|[\)]/', $agent['os_version']); $os_agent_text = $os_version.' ('.$os_version_name[1].')'; } } else { $os_name = preg_split('/[0-9]/', $agent['os_version'])[0]; $os_agent_text = $agent['os_version']; if (empty($os_name) === false) { $os_version = explode($os_name, explode('(', $agent['os_version'])[0])[1]; $os_agent_text = $os_version; } } } $table_status->data['agent_os'][0] = html_print_div([ 'style' => 'width: 16px; position: relative; left: 75%', 'content' => ui_print_os_icon($agent['id_os'], false, true, true, false, false, false, ['width' => '16px'])], true); $table_status->data['agent_os'][1] = $os_name; if (empty($agent['os_version']) !== true) { $table_status->data['agent_os_version'][0] = __('OS Version'); $table_status->data['agent_os_version'][1] = $os_agent_text; } $addresses = agents_get_addresses($id_agente, true); $address = agents_get_address($id_agente); foreach ($addresses as $k => $add) { if ($add == $address) { unset($addresses[$k]); } } if (empty($address) === false) { $address_text = ''.$address.''; if (!empty($addresses) === true) { if (count($addresses) > 3) { $address_text .= '  '.html_print_image( 'images/sort_down_black.png', true, ['alt' => 'down'] ).''; $address_text .= ''; } } $table_status->data['ip_address'][0] = __('IP address'); $table_status->data['ip_address'][1] = (empty($address) === true) ? ''.__('N/A').'' : $address_text; } $table_status->data['agent_version'][0] = __('Agent Version'); $table_status->data['agent_version'][1] = (empty($agent['agent_version']) === true) ? ''.__('N/A').'' : $agent['agent_version']; $table_status->data['description'][0] = __('Description'); $table_status->data['description'][1] = (empty($agent['comentarios']) === true) ? ''.__('N/A').'' : ui_print_truncate_text($agent['comentarios'], 'description', true); $agentEventsHeader = html_print_div( [ 'class' => 'agent_details_header', 'content' => ''.__('Events (Last 24h)').'', ], true ); $agentEventsGraph = html_print_div( [ 'class' => 'white-table-graph-content', 'content' => graph_graphic_agentevents( $id_agente, 95, 50, SECONDS_1DAY, '', true, true, 500 ), 'style' => 'margin-top: -25px', ], true ); $table_agent = $agentStatusHeader.'
'.$agentStatusGraph.$agentCountModules.'
'.$alive_animation.html_print_table($table_status, true).'
'.$agentEventsHeader.$agentEventsGraph.'
'; /* * END: TABLE AGENT BUILD. */ /* * START: TABLE DATA BUILD */ $data_opcional = new stdClass(); $data_opcional->id = 'agent_data_main'; $data_opcional->width = '100%'; $data_opcional->class = 'floating_form'; // Gis and url address. $agentAdditionalContent = ''; // Position Information. /* if ((bool) $config['activate_gis'] === true) { $dataPositionAgent = gis_get_data_last_position_agent( $agent['id_agente'] ); if (is_array($dataPositionAgent) === true && $dataPositionAgent['stored_longitude'] !== '' && $dataPositionAgent['stored_latitude'] !== '') { $data_opcional->data['agent_position'][0] = __('Position (Long, Lat)'); $dataOptionalOutput = html_print_anchor( [ 'href' => 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente, 'content' => $dataPositionAgent['stored_longitude'].', '.$dataPositionAgent['stored_latitude'], ], true ); if (empty($dataPositionAgent['description']) === false) { $dataOptionalOutput .= ' ('.$dataPositionAgent['description'].')'; } $data_opcional->data['agent_position'][1] = $dataOptionalOutput; } }*/ // If the url description is set. /* if (empty($agent['url_address']) === false) { $data_opcional->data['url_address'][0] = __('Url address'); $data_opcional->data['url_address'][1] = html_print_anchor( [ 'href' => $agent['url_address'], 'content' => $agent['url_address'], ], true ); }*/ // Other IP address and timezone offset. /* if (empty($addresses) === false) { $data_opcional->data['other_ip_address'][0] = __('Other IP addresses'); $data_opcional->data['other_ip_address'][1] = html_print_div( [ 'class' => 'overflow-y mx_height50px', 'content' => implode('
', $addresses), ], true ); } */ // Timezone Offset. /* if ((int) $agent['timezone_offset'] !== 0) { $data_opcional->data['timezone_offset'][0] = __('Timezone Offset'); $data_opcional->data['timezone_offset'][1] = $agent['timezone_offset']; }*/ // Custom fields. $fields = db_get_all_rows_filter( 'tagent_custom_fields', ['display_on_front' => 1] ); if ($fields === false) { $fields = []; } $custom_fields = []; foreach ($fields as $field) { $custom_value = db_get_all_rows_sql( 'select tagent_custom_data.description,tagent_custom_fields.is_password_type from tagent_custom_fields INNER JOIN tagent_custom_data ON tagent_custom_fields.id_field = tagent_custom_data.id_field where tagent_custom_fields.id_field = '.$field['id_field'].' and tagent_custom_data.id_agent = '.$id_agente ); if ($custom_value[0]['description'] !== false && $custom_value[0]['description'] != '') { $data = []; $data[0] = ''.$field['name'].ui_print_help_tip(__('Custom field'), true).''; if ($custom_value[0]['is_password_type']) { $data[1] = '••••••••'; } else if ($field['is_link_enabled'] === '1') { $custom_link_type = io_safe_output($custom_value[0]['description']); $custom_link_type = json_decode($custom_link_type); list($link_text, $link_url) = $custom_link_type; if (json_last_error() !== JSON_ERROR_NONE) { $link_text = ''; $link_url = ''; } if ($link_text === '') { $link_text = $link_url; } $data[1] = ''.$link_text.''; } else { $custom_value[0]['description'] = ui_bbcode_to_html($custom_value[0]['description']); $data[1] = $custom_value[0]['description']; } $custom_fields[] = $data; } } $custom_fields_count = count($custom_fields); for ($i = 0; $i < $custom_fields_count; $i++) { $first_column = $custom_fields[$i]; $j = ($i + 1); $second_column = $custom_fields[$j]; if (is_array($second_column) === true) { $columns = array_merge($first_column, $second_column); } else { $columns = $first_column; if ($data_opcional->data !== null) { $filas = count($data_opcional->data); } $data_opcional->colspan[$filas][1] = 3; } $data_opcional->data[] = $columns; $i++; } /* * END: TABLE DATA BUILD */ // This javascript piece of code is used to make expandible // the body of the table. ?> 'box-flat agent_details_col', 'content' => $table_agent, ], true ); $agentContact = html_print_div( [ 'class' => 'box-flat agent_details_col mrgn_lft_20px', 'content' => $agent_contact, ], true ); /* * EVENTS TABLE END. */ if (isset($data_opcional) === false || isset($data_opcional->data) === false || empty($data_opcional->data) === true) { $agentAdditionalInfo = ''; } else { $agentAdditionalInfo = ui_toggle( html_print_table($data_opcional, true), ''.__('Agent data').'', 'status_monitor_agent', false, false, true, '', 'white-box-content', 'box-flat white_table_graph w100p' ); } $agentIncidents = (isset($table_incident) === false) ? '' : html_print_table($table_incident, true); html_print_div( [ 'class' => 'agent_details_first_row agent_details_line', 'content' => $agentDetails.$agentContact, ] ); html_print_div( [ 'class' => 'agent_details_line', 'content' => $agentEvents, ] ); if (empty($agentAdditionalInfo) === false) { html_print_div( [ 'class' => 'agent_details_line', 'content' => $agentAdditionalInfo, ] ); } if ((bool) $config['ITSM_enabled'] === true) { $show_tab_issue = false; try { $ITSM = new ITSM(); $list = $ITSM->listIncidenceAgents($id_agente, false); if (empty($list) === false) { $show_tab_issue = true; } } catch (\Throwable $th) { $show_tab_issue = false; } if ($show_tab_issue === true) { try { $table_itsm = $ITSM->getTableIncidencesForAgent($id_agente, true, 0); } catch (Exception $e) { $table_itsm = $e->getMessage(); } $itsmInfo = ui_toggle( $table_itsm, ''.__('Incidences').'', 'status_monitor_agent', false, false, true, '', 'white-box-content', 'box-flat white_table_graph w100p' ); html_print_div( [ 'class' => 'agent_details_line', 'content' => $itsmInfo, ] ); } } if (empty($agentIncidents) === false) { html_print_div( [ 'class' => 'agent_details_line', 'content' => ui_toggle( '
'.$agentIncidents.'
', ''.__('Active issue on this agent').'', __('Agent incident main'), 'agent_incident', false, true, '', 'box-flat white-box-content no_border', 'box-flat white_table_graph w100p', ), ], ); } $count_network_incerfaces = agents_get_network_interfaces([$agent], false, false, 0, true); if ($count_network_incerfaces > 0) { ui_toggle( html_print_div( [ 'id' => 'agent_interface_info', 'content' => '', 'class' => 'w100p', ], true ), ''.__('Interface information (SNMP)').'', '', 'interface-table-status-agent', true ); } ?>