#13035 treeview refactored

This commit is contained in:
Daniel Cebrian 2024-04-10 10:50:11 +02:00
parent 36196e64ba
commit 47fc3e1977
3 changed files with 32 additions and 79 deletions

View File

@ -45,11 +45,21 @@ try {
// Ajax controller. // Ajax controller.
$method = get_parameter('method', ''); $method = get_parameter('method', '');
$only_metaconsole = (bool) get_parameter('only_metaconsole', false);
if (method_exists($class, $method) === true) { if (method_exists($class, $method) === true) {
if ($class->ajaxMethod($method) === true) { if ($class->ajaxMethod($method) === true) {
$res = $class->{$method}(); if ($only_metaconsole === true) {
echo json_encode(['success' => true, 'data' => $res]); if (is_metaconsole() === true) {
$res = $class->{$method}();
echo json_encode(['success' => true, 'data' => $res]);
} else {
echo json_encode(['success' => false, 'error' => 'Environment is not a metaconsole']);
}
} else {
$res = $class->{$method}();
echo json_encode(['success' => true, 'data' => $res]);
}
} else { } else {
echo json_encode(['success' => false, 'error' => 'Unavailable method.']); echo json_encode(['success' => false, 'error' => 'Unavailable method.']);
} }

View File

@ -18,13 +18,11 @@ function treeview_printModuleTable($id_module, $server_data=false, $no_head=fals
if (empty($server_data)) { if (empty($server_data)) {
$server_name = ''; $server_name = '';
$server_id = ''; $server_id = '';
$url_hash = '';
$console_url = ui_get_full_url('/'); $console_url = ui_get_full_url('/');
} else { } else {
$server_name = $server_data['server_name']; $server_name = $server_data['server_name'];
$server_id = $server_data['id']; $server_id = $server_data['id'];
$console_url = $server_data['server_url'].'/'; $console_url = $server_data['server_url'].'/';
$url_hash = metaconsole_get_servers_url_hash($server_data);
} }
include_once $config['homedir'].'/include/functions_agents.php'; include_once $config['homedir'].'/include/functions_agents.php';
@ -69,10 +67,11 @@ function treeview_printModuleTable($id_module, $server_data=false, $no_head=fals
$row['title'] = __('Name'); $row['title'] = __('Name');
$row['data'] = html_print_anchor( $row['data'] = html_print_anchor(
[ [
'href' => $console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$module['id_agente'].'&tab=module&edit_module=1&id_agent_module='.$module['id_agente_modulo'].$url_hash, 'href' => '#',
'title' => __('Click here for view this module'), 'title' => __('Click here for view this module'),
'class' => 'font_11', 'class' => 'font_11',
'content' => $cellName, 'content' => $cellName,
'onClick' => 'redirectNode(\''.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$module['id_agente'].'&tab=module&edit_module=1&id_agent_module='.$module['id_agente_modulo'].'\');',
], ],
true true
); );
@ -325,45 +324,9 @@ function treeview_printModuleTable($id_module, $server_data=false, $no_head=fals
echo '<div class="actions_treeview flex flex-evenly">'; echo '<div class="actions_treeview flex flex-evenly">';
if (is_metaconsole() === true) { if (is_metaconsole() === true) {
echo "<form id='module-table-redirection' method='POST' action='".$console_url."index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module'>"; echo '<a target=_blank onclick="redirectNode(\''.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&edit_module=1&id_agente='.$module['id_agente'].'&id_agent_module='.$module['id_agente_modulo'].'\')" href="#">';
parse_str($url_hash, $url_hash_array);
html_print_input_hidden(
'id_agente',
$module['id_agente'],
false
);
html_print_input_hidden(
'edit_module',
1,
false
);
html_print_input_hidden(
'id_agent_module',
$module['id_agente_modulo'],
false
);
html_print_input_hidden(
'loginhash',
$url_hash_array['loginhash'],
false
);
html_print_input_hidden(
'loginhash_data',
$url_hash_array['loginhash_data'],
false
);
html_print_input_hidden(
'loginhash_user',
$url_hash_array['loginhash_user'],
false
);
echo '</form>';
echo "<a target=_blank onclick='event.preventDefault(); document.getElementById(\"module-table-redirection\").submit();' href='#'>";
} else { } else {
echo '<a target=_blank href="'.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$module['id_agente'].'&tab=module&edit_module=1&id_agent_module='.$module['id_agente_modulo'].$url_hash.'">'; echo '<a target=_blank href="'.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$module['id_agente'].'&tab=module&edit_module=1&id_agent_module='.$module['id_agente_modulo'].'">';
} }
html_print_submit_button( html_print_submit_button(
@ -399,13 +362,11 @@ function treeview_printAlertsTable($id_module, $server_data=[], $no_head=false)
if (empty($server_data)) { if (empty($server_data)) {
$server_name = ''; $server_name = '';
$server_id = ''; $server_id = '';
$url_hash = '';
$console_url = ''; $console_url = '';
} else { } else {
$server_name = $server_data['server_name']; $server_name = $server_data['server_name'];
$server_id = $server_data['id']; $server_id = $server_data['id'];
$console_url = $server_data['server_url'].'/'; $console_url = $server_data['server_url'].'/';
$url_hash = metaconsole_get_servers_url_hash($server_data);
} }
$user_access_node = can_user_access_node(); $user_access_node = can_user_access_node();
@ -512,7 +473,7 @@ function treeview_printAlertsTable($id_module, $server_data=[], $no_head=false)
__('Go to alerts edition'), __('Go to alerts edition'),
'upd_button', 'upd_button',
false, false,
'window.location.assign("'.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&search=1&module_name='.$module_name.'&id_agente='.$agent_id.$url_hash.'")', 'redirectNode("'.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&search=1&module_name='.$module_name.'&id_agente='.$agent_id.'")',
['icon' => 'alert'], ['icon' => 'alert'],
true true
), ),
@ -533,15 +494,11 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
global $config; global $config;
if (empty($server_data)) { if (empty($server_data)) {
$server_name = '';
$server_id = ''; $server_id = '';
$url_hash = '';
$console_url = ui_get_full_url('/'); $console_url = ui_get_full_url('/');
} else { } else {
$server_name = $server_data['server_name'];
$server_id = $server_data['id']; $server_id = $server_data['id'];
$console_url = $server_data['server_url'].'/'; $console_url = $server_data['server_url'].'/';
$url_hash = metaconsole_get_servers_url_hash($server_data);
} }
include_once $config['homedir'].'/include/functions_agents.php'; include_once $config['homedir'].'/include/functions_agents.php';
@ -623,15 +580,6 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
$cellName = ((bool) $agent['disabled'] === true) ? '<em>' : ''; $cellName = ((bool) $agent['disabled'] === true) ? '<em>' : '';
if (is_metaconsole() === true) { if (is_metaconsole() === true) {
$pwd = $server_data['auth_token'];
// Create HASH login info.
$user = $config['id_user'];
// Extract auth token from serialized field.
$pwd_deserialiced = json_decode($pwd, true);
$hashdata = $user.$pwd_deserialiced['auth_token'];
$hashdata = md5($hashdata);
if ((bool) $grants_on_node === true && (bool) $user_access_node !== false) { if ((bool) $grants_on_node === true && (bool) $user_access_node !== false) {
$urlAgent = $server_data['server_url'].'/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente']; $urlAgent = $server_data['server_url'].'/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'];
} else { } else {
@ -657,7 +605,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
'title' => __('Click here for view this agent'), 'title' => __('Click here for view this agent'),
'class' => 'font_11', 'class' => 'font_11',
'content' => $cellName, 'content' => $cellName,
'onClick' => "sendHash('".$urlAgent."')", 'onClick' => "redirectNode('".$urlAgent."')",
], ],
true true
); );
@ -998,7 +946,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
$cluster = PandoraFMS\Cluster::loadFromAgentId( $cluster = PandoraFMS\Cluster::loadFromAgentId(
$agent['id_agente'] $agent['id_agente']
); );
$buttons_act .= '<a target=_blank href="'.$console_url.'index.php?sec=reporting&sec2=operation/cluster/cluster&op=update&id='.$cluster->id().'">'; $buttons_act .= '<a target=_blank href="#" onclick="redirectNode(\''.$console_url.'index.php?sec=reporting&sec2=operation/cluster/cluster&op=update&id='.$cluster->id().'\')">';
$buttons_act .= html_print_submit_button( $buttons_act .= html_print_submit_button(
__('Go to cluster edition'), __('Go to cluster edition'),
'upd_button', 'upd_button',
@ -1007,7 +955,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
true true
); );
} else { } else {
$buttons_act .= '<a target=_blank href="'.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.$ent.'&tab=module&show_dialog_create=1">'; $buttons_act .= '<a target=_blank href="#" onclick="redirectNode(\''.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&tab=module&show_dialog_create=1\')">';
$buttons_act .= html_print_submit_button( $buttons_act .= html_print_submit_button(
__('Go to module creation'), __('Go to module creation'),
'upd_button', 'upd_button',
@ -1016,7 +964,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
true true
); );
$buttons_act .= '<a target=_blank href="'.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.$ent.'">'; $buttons_act .= '<a target=_blank href="#" onclick="redirectNode(\''.$console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'\')">';
$buttons_act .= html_print_submit_button( $buttons_act .= html_print_submit_button(
__('Go to agent edition'), __('Go to agent edition'),
'upd_button', 'upd_button',
@ -1038,11 +986,6 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
echo " echo "
<script> <script>
function sendHash(url) {
window.open(url+'&loginhash=auto&loginhash_data=".$hashdata.'&loginhash_user='.str_rot13(($user ?? ''))."', '_blank');
}
$('.max-graph-tree-view').ready(function() { $('.max-graph-tree-view').ready(function() {
widthGraph(); widthGraph();
}); });

View File

@ -2737,7 +2737,7 @@ function menuTabsShowHide() {
} }
} }
function redirectNode(url) { function redirectNode(url, target = "_blank") {
event.preventDefault(); event.preventDefault();
$.ajax({ $.ajax({
method: "POST", method: "POST",
@ -2745,22 +2745,22 @@ function redirectNode(url) {
dataType: "json", dataType: "json",
data: { data: {
page: "include/ajax/jwt.ajax", page: "include/ajax/jwt.ajax",
method: "create" method: "create",
only_metaconsole: 1
}, },
success: function(data) { success: function(data) {
var $form = $("<form class='invisible'></form>"); var $form = $(`<form class='invisible' target='${target}'></form>`);
$form.attr("method", "post"); $form.attr("method", "post");
$form.attr("action", url); $form.attr("action", url);
if (data.success) {
var $input = $("<input>") var $input = $("<input>")
.attr("type", "hidden") .attr("type", "hidden")
.attr("name", "token") .attr("name", "token")
.val(data.data); .val(data.data);
$form.append($input); $form.append($input);
}
$("body").append($form); $("body").append($form);
$form.submit(); $form.submit();
} }
}); });