Merge branch 'ent-9270-dos-mejoras-en-el-interface-view' into 'develop'

Ent 9270 dos mejoras en el interface view

See merge request artica/pandorafms!5428
This commit is contained in:
Diego Muñoz-Reja 2023-01-31 11:10:19 +00:00
commit ea8b5d68d7
5 changed files with 99 additions and 40 deletions

View File

@ -847,30 +847,38 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
$permission = check_acl($config['id_user'], $agent['id_grupo'], 'RR'); $permission = check_acl($config['id_user'], $agent['id_grupo'], 'RR');
if ($permission) { if ($permission) {
$params = [ if ($interface['traffic']['in'] > 0 && $interface['traffic']['out'] > 0) {
'interface_name' => $interface_name, $params = [
'agent_id' => $id_agente, 'interface_name' => $interface_name,
'traffic_module_in' => $interface['traffic']['in'], 'agent_id' => $id_agente,
'traffic_module_out' => $interface['traffic']['out'], 'traffic_module_in' => $interface['traffic']['in'],
]; 'traffic_module_out' => $interface['traffic']['out'],
];
if (defined('METACONSOLE') && !empty($server_id)) { if (defined('METACONSOLE') && !empty($server_id)) {
$params['server'] = $server_id; $params['server'] = $server_id;
}
$params_json = json_encode($params);
$params_encoded = base64_encode($params_json);
$url = ui_get_full_url('operation/agentes/interface_traffic_graph_win.php', false, false, false);
$graph_url = "$url?params=$params_encoded";
$win_handle = dechex(crc32($interface['status_module_id'].$interface_name));
$graph_link = "<a href=\"javascript:winopeng_var('".$graph_url."','".$win_handle."', 800, 480)\">";
$graph_link .= html_print_image(
'images/chart_curve.png',
true,
['title' => __('Interface traffic')]
);
$graph_link .= '</a>';
} else {
$graph_link = html_print_image(
'images/chart_curve.disabled.png',
true,
['title' => __('inOctets and outOctets must be enabled.')]
);
} }
$params_json = json_encode($params);
$params_encoded = base64_encode($params_json);
$url = ui_get_full_url('operation/agentes/interface_traffic_graph_win.php', false, false, false);
$graph_url = "$url?params=$params_encoded";
$win_handle = dechex(crc32($interface['status_module_id'].$interface_name));
$graph_link = "<a href=\"javascript:winopeng_var('".$graph_url."','".$win_handle."', 800, 480)\">";
$graph_link .= html_print_image(
'images/chart_curve.png',
true,
['title' => __('Interface traffic')]
);
$graph_link .= '</a>';
} else { } else {
$graph_link = ''; $graph_link = '';
} }

View File

@ -68,13 +68,16 @@ function print_filters($sec)
] ]
); );
$table->data[1][0] = __('Agents'); $table->data[1][0] = __('Filter Agents');
$table->data[1][1] = html_print_input_text('filter_agents', '', '', 20, 255, true);
$table->data[2][0] = __('Agents');
if (empty($agents) === true || $agents == -1) { if (empty($agents) === true || $agents == -1) {
$agents = []; $agents = [];
} }
$table->data[1][1] = html_print_select( $table->data[2][1] = html_print_select(
[], [],
'selected_agents[]', 'selected_agents[]',
'', '',
@ -90,8 +93,8 @@ function print_filters($sec)
); );
// Interfaces. // Interfaces.
$table->data[1][3] = '<b>'.__('Interfaces').'</b>'; $table->data[2][3] = '<b>'.__('Interfaces').'</b>';
$table->data[1][4] = html_print_select( $table->data[2][4] = html_print_select(
[], [],
'selected_interfaces[]', 'selected_interfaces[]',
$selected_interfaces, $selected_interfaces,
@ -536,8 +539,10 @@ function print_table(
$select_if_usage_module_data_out_down $select_if_usage_module_data_out_down
); );
$table->head[8] = __('Last data'); $table->head[8] = __('Graph');
$table->head[8] .= ui_get_sorting_arrows(
$table->head[9] = __('Last data');
$table->head[9] .= ui_get_sorting_arrows(
$last_data.'up', $last_data.'up',
$last_data.'down', $last_data.'down',
$select_if_last_data_up, $select_if_last_data_up,
@ -677,6 +682,42 @@ function print_table(
$table_data[$loop_index]['if_agent_name'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente='.$agent_interfaces['agent_id'].'">'.$agent_interfaces['agent_alias'].'</a>'; $table_data[$loop_index]['if_agent_name'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente='.$agent_interfaces['agent_id'].'">'.$agent_interfaces['agent_alias'].'</a>';
} }
$all_groups = agents_get_all_groups_agent($agent_interfaces['agent_id']);
$permission = check_acl_one_of_groups($config['id_user'], $all_groups, 'RR');
if ($permission) {
if ($agent_interfaces['traffic']['in'] > 0 && $agent_interfaces['traffic']['out'] > 0) {
$params = [
'interface_name' => $agent_interfaces['if_name'],
'agent_id' => $agent_interfaces['agent_id'],
'traffic_module_in' => $agent_interfaces['traffic']['in'],
'traffic_module_out' => $agent_interfaces['traffic']['out'],
];
$params_json = json_encode($params);
$params_encoded = base64_encode($params_json);
$win_handle = dechex(crc32($interface['status_module_id'].$agent_interfaces['if_name']));
$graph_link = "<a href=\"javascript:winopeng_var('operation/agentes/interface_traffic_graph_win.php?params=";
$graph_link .= $params_encoded."','";
$graph_link .= $win_handle."', 800, 480)\">";
$graph_link .= html_print_image(
'images/chart.png',
true,
[
'title' => __('Interface traffic'),
'class' => 'invert_filter',
]
).'</a>';
} else {
$graph_link = html_print_image(
'images/chart_curve.disabled.png',
true,
['title' => __('inOctets and outOctets must be enabled.')]
);
}
} else {
$graph_link = '';
}
$table_data[$loop_index]['if_name'] = $agent_interfaces['if_name']; $table_data[$loop_index]['if_name'] = $agent_interfaces['if_name'];
$table_data[$loop_index]['if_status_image'] = $agent_interfaces['status_image']; $table_data[$loop_index]['if_status_image'] = $agent_interfaces['status_image'];
$table_data[$loop_index]['if_speed_data'] = ($if_speed_value === null) ? __('N/A') : $if_speed_value.' '.$if_speed_unit; $table_data[$loop_index]['if_speed_data'] = ($if_speed_value === null) ? __('N/A') : $if_speed_value.' '.$if_speed_unit;
@ -684,6 +725,7 @@ function print_table(
$table_data[$loop_index]['if_out_octets'] = ($ifOutOctets['datos'] === null) ? __('N/A') : $ifOutOctets['datos']; $table_data[$loop_index]['if_out_octets'] = ($ifOutOctets['datos'] === null) ? __('N/A') : $ifOutOctets['datos'];
$table_data[$loop_index]['if_usage_module_data_in'] = ($usage_module_data_in['datos'] === null) ? __('N/A') : $usage_module_data_in['datos']; $table_data[$loop_index]['if_usage_module_data_in'] = ($usage_module_data_in['datos'] === null) ? __('N/A') : $usage_module_data_in['datos'];
$table_data[$loop_index]['if_usage_module_data_out'] = ($usage_module_data_out['datos'] === null) ? __('N/A') : $usage_module_data_out['datos']; $table_data[$loop_index]['if_usage_module_data_out'] = ($usage_module_data_out['datos'] === null) ? __('N/A') : $usage_module_data_out['datos'];
$table_data[$loop_index]['if_graph'] = $graph_link;
$table_data[$loop_index]['if_last_data'] = human_time_comparation($agent_interfaces['last_contact']); $table_data[$loop_index]['if_last_data'] = human_time_comparation($agent_interfaces['last_contact']);
$loop_index++; $loop_index++;

View File

@ -137,6 +137,7 @@ $(document).ready(function() {
if (sec === 'estado' && agent_id > 0) { if (sec === 'estado' && agent_id > 0) {
load_agent_interfaces_selector([agent_id]); load_agent_interfaces_selector([agent_id]);
} }
$("#selected_agents").filterByText($("#text-filter_agents"));
}); });

View File

@ -1265,16 +1265,24 @@ if (is_ajax() === true) {
$permission = check_acl($config['id_user'], $agent['id_grupo'], 'RR'); $permission = check_acl($config['id_user'], $agent['id_grupo'], 'RR');
if ($permission) { if ($permission) {
$params = [ if ($interface['traffic']['in'] > 0 && $interface['traffic']['out'] > 0) {
'interface_name' => $interface_name, $params = [
'agent_id' => $id_agent, 'interface_name' => $interface_name,
'traffic_module_in' => $interface['traffic']['in'], 'agent_id' => $id_agent,
'traffic_module_out' => $interface['traffic']['out'], 'traffic_module_in' => $interface['traffic']['in'],
]; 'traffic_module_out' => $interface['traffic']['out'],
$params_json = json_encode($params); ];
$params_encoded = base64_encode($params_json); $params_json = json_encode($params);
$win_handle = dechex(crc32($interface['status_module_id'].$interface_name)); $params_encoded = base64_encode($params_json);
$graph_link = "<a href=\"javascript:winopeng_var('operation/agentes/interface_traffic_graph_win.php?params=$params_encoded','$win_handle', 800, 480)\">".html_print_image('images/chart_curve.png', true, ['title' => __('Interface traffic')]).'</a>'; $win_handle = dechex(crc32($interface['status_module_id'].$interface_name));
$graph_link = "<a href=\"javascript:winopeng_var('operation/agentes/interface_traffic_graph_win.php?params=$params_encoded','$win_handle', 800, 480)\">".html_print_image('images/chart_curve.png', true, ['title' => __('Interface traffic')]).'</a>';
} else {
$graph_link = html_print_image(
'images/chart_curve.disabled.png',
true,
['title' => __('inOctets and outOctets must be enabled.')]
);
}
} else { } else {
$graph_link = ''; $graph_link = '';
} }

View File

@ -1411,8 +1411,8 @@ $agent_interfaces = agents_get_network_interfaces(
if (isset($agent_interfaces) !== true if (isset($agent_interfaces) !== true
|| isset($agent_interfaces[$id_agente]) !== true || isset($agent_interfaces[$id_agente]) !== true
|| is_array($agent_interfaces[$id_agente]['interfaces']) !== true || (is_array($agent_interfaces[$id_agente]['interfaces']) !== true
|| is_object($agent_interfaces[$id_agente]['interfaces']) !== true && is_object($agent_interfaces[$id_agente]['interfaces']) !== true)
) { ) {
$agent_interfaces_count = 0; $agent_interfaces_count = 0;
} else { } else {