".__('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] = 'center';
$table->headstyle[1] = 'text-align:center';
$table->headstyle[3] = 'text-align:center';
$table->headstyle[8] = 'text-align:center';
// $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 recon 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'),
false,
$hidden_toggle
);
} else {
html_print_table($table);
}