".__('There are no servers configured into the database').$server_clippy.''; return; } $table = new StdClass(); $table->width = '100%'; $table->class = 'info_table'; $table->cellpadding = 0; $table->cellspacing = 0; $table->size = []; $table->style = []; $table->style[0] = 'font-weight: bold'; $table->align = []; $table->align[1] = 'center'; $table->align[3] = 'center'; $table->align[8] = 'right'; $table->headstyle[1] = 'text-align:center'; $table->headstyle[3] = 'text-align:center'; $table->headstyle[8] = 'text-align:right;width: 120px;'; // $table->title = __('Tactical server information'); $table->titleclass = 'tabletitle'; $table->titlestyle = 'text-transform:uppercase;'; $table->head = []; $table->head[0] = __('Name'); $table->head[1] = __('Status'); $table->head[2] = __('Type'); $table->head[3] = __('Version'); $table->head[4] = __('Modules'); $table->head[5] = __('Lag').ui_print_help_tip(__('Avg. Delay(sec)/Modules delayed'), true); $table->head[6] = __('T/Q').ui_print_help_tip(__('Threads / Queued modules currently'), true); // This will have a column of data such as "6 hours" $table->head[7] = __('Updated'); // Only Pandora Administrator can delete servers if (check_acl($config['id_user'], 0, 'PM')) { $table->head[8] = ''.__('Op.').''; } $table->data = []; $names_servers = []; foreach ($servers as $server) { $data = []; // $table->cellclass[][3] = 'progress_bar'; $table->cellclass[] = [ 3 => 'progress_bar', 8 => 'action_buttons', ]; $data[0] = ''.strip_tags($server['name']).''; // Status $data[1] = ui_print_status_image(STATUS_SERVER_OK, '', true); if (($server['status'] == 0) || (($date - time_w_fixed_tz($server['keepalive'])) > ($server['server_keepalive']) * 2)) { $data[1] = ui_print_status_image(STATUS_SERVER_DOWN, '', true); } // Type $data[2] = ''.$server['img']; if ($server['master'] == 1) { $data[2] .= ui_print_help_tip(__('This is a master server'), true); } // $data[2] .= ' v' .. ''; switch ($server['type']) { case 'snmp': case 'event': case 'autoprovision': case 'migration': $data[3] = $server['version']; $data[4] = __('N/A'); $data[5] = __('N/A'); break; case 'export': $data[3] = $server['version']; $data[4] = $server['modules'].' '.__('of').' '.$server['modules_total']; $data[5] = __('N/A'); break; default: $data[3] = $server['version']; $data[4] = $server['modules'].' '.__('of').' '.$server['modules_total']; $data[5] = ''.$server['lag_txt'].''; break; } $data[6] = $server['threads'].' : '.$server['queued_modules']; if ($server['queued_modules'] > 200) { $data[6] .= clippy_context_help('server_queued_modules'); } $data[7] = ui_print_timestamp($server['keepalive'], true); $ext = '_server'; if ($server['type'] != 'data') { $ext = ''; } $safe_server_name = servers_get_name($server['id_server']); if (($server['type'] == 'data' || $server['type'] == 'enterprise satellite')) { if (servers_check_remote_config($safe_server_name.$ext) && enterprise_installed()) { $names_servers[$safe_server_name] = true; } else { $names_servers[$safe_server_name] = false; } } // Only Pandora Administrator can delete servers if (check_acl($config['id_user'], 0, 'PM')) { $data[8] = ''; if ($server['type'] == 'recon') { $data[8] .= ''; $data[8] .= html_print_image( 'images/firts_task/icono_grande_reconserver.png', true, [ 'title' => __('Manage Discovery tasks'), 'style' => 'width:21px;height:21px;', ] ); $data[8] .= ''; } if ($server['type'] == 'data') { $data[8] .= ''; $data[8] .= html_print_image( 'images/target.png', true, ['title' => __('Reset module status and fired alert counts')] ); $data[8] .= ''; } else if ($server['type'] == 'enterprise snmp') { $data[8] .= ''; $data[8] .= html_print_image( 'images/target.png', true, ['title' => __('Claim back SNMP modules')] ); $data[8] .= ''; } $data[8] .= ''; $data[8] .= html_print_image( 'images/config.png', true, ['title' => __('Edit')] ); $data[8] .= ''; if (($names_servers[$safe_server_name] === true) && ($server['type'] == 'data' || $server['type'] == 'enterprise satellite')) { $data[8] .= ''; $data[8] .= html_print_image( 'images/remote_configuration.png', true, ['title' => __('Remote configuration')] ); $data[8] .= ''; $names_servers[$safe_server_name] = false; } $data[8] .= ''; $data[8] .= html_print_image( 'images/cross.png', true, [ 'title' => __('Delete'), 'onclick' => "if (! confirm ('".__('Modules run by this server will stop working. Do you want to continue?')."')) return false", ] ); $data[8] .= ''; } if ($tiny) { unset($data[4]); unset($data[6]); unset($data[7]); unset($data[8]); } array_push($table->data, $data); } if ($tiny) { unset($table->head[4]); unset($table->head[6]); unset($table->head[7]); unset($table->head[8]); } if ($tiny) { ui_toggle( html_print_table($table, true), __('Tactical server information'), '', '', $hidden_toggle ); } else { html_print_table($table); }