Now the menu entries are can highlight with subpages (with the item 'pages'). TICKET: #2903

This commit is contained in:
mdtrooper 2016-01-18 14:50:42 +01:00
parent e64901ec03
commit 90c024eb9c
3 changed files with 62 additions and 21 deletions

View File

@ -130,7 +130,7 @@ if (check_acl ($config['id_user'], 0, "AW")) {
enterprise_hook('massivepolicies_submenu');
enterprise_hook('massivesnmp_submenu');
enterprise_hook('massivesatellite_submenu');
$sub["gmassive"]["sub2"] = $sub2;
}
@ -140,22 +140,35 @@ if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0,
$menu_godmode["galertas"]["text"] = __('Alerts');
$menu_godmode["galertas"]["sec2"] = "godmode/alerts/alert_list";
$menu_godmode["galertas"]["id"] = "god-alerts";
$sub = array ();
$sub["godmode/alerts/alert_list"]["text"] = __('List of Alerts');
$sub["godmode/alerts/alert_list"]["id"] = 'List of Alerts';
$sub["godmode/alerts/alert_list"]["text"] = __('List of Alerts');
$sub["godmode/alerts/alert_list"]["id"] = 'List of Alerts';
$sub["godmode/alerts/alert_list"]["pages"] =
array("godmode/alerts/alert_view");
if (check_acl ($config['id_user'], 0, "LM")) {
$sub["godmode/alerts/alert_templates"]["text"] = __('Templates');
$sub["godmode/alerts/alert_templates"]["id"] = 'Templates';
$sub["godmode/alerts/alert_templates"]["pages"] =
array("godmode/alerts/configure_alert_template");
$sub["godmode/alerts/alert_actions"]["text"] = __('Actions');
$sub["godmode/alerts/alert_actions"]["id"] = 'Actions';
$sub["godmode/alerts/alert_actions"]["pages"] =
array("godmode/alerts/configure_alert_action");
if (check_acl ($config['id_user'], 0, "PM")) {
$sub["godmode/alerts/alert_commands"]["text"] = __('Commands');
$sub["godmode/alerts/alert_commands"]["id"] = 'Commands';
$sub["godmode/alerts/alert_commands"]["pages"] =
array("godmode/alerts/configure_alert_command");
}
$sub["godmode/alerts/alert_special_days"]["text"] = __('Special days list');
$sub["godmode/alerts/alert_special_days"]["id"] = __('Special days list');
$sub["godmode/alerts/alert_special_days"]["pages"] =
array("godmode/alerts/configure_alert_special_days");
enterprise_hook('eventalerts_submenu');
$sub["godmode/snmpconsole/snmp_alert"]["text"] = __("SNMP alerts");
$sub["godmode/snmpconsole/snmp_alert"]["id"] = "SNMP alerts";
@ -168,19 +181,19 @@ if (check_acl ($config['id_user'], 0, "EW")) {
$menu_godmode["geventos"]["text"] = __('Events');
$menu_godmode["geventos"]["sec2"] = "godmode/events/events&section=filter";
$menu_godmode["geventos"]["id"] = "god-events";
// Custom event fields
$sub = array ();
$sub["godmode/events/events&section=filter"]["text"] = __('Event filters');
$sub["godmode/events/events&section=filter"]["id"] = 'Event filters';
if (check_acl ($config['id_user'], 0, "PM")) {
$sub["godmode/events/events&section=fields"]["text"] = __('Custom events');
$sub["godmode/events/events&section=fields"]["id"] = 'Custom events';
$sub["godmode/events/events&section=responses"]["text"] = __('Event responses');
$sub["godmode/events/events&section=responses"]["id"] = 'Event responses';
}
$menu_godmode["geventos"]["sub"] = $sub;
}
@ -189,24 +202,24 @@ if (check_acl ($config['id_user'], 0, "AW")) {
$menu_godmode["gservers"]["text"] = __('Servers');
$menu_godmode["gservers"]["sec2"] = "godmode/servers/modificar_server";
$menu_godmode["gservers"]["id"] = "god-servers";
$sub = array ();
$sub["godmode/servers/modificar_server"]["text"] = __('Manage servers');
$sub["godmode/servers/modificar_server"]["id"] = 'Manage servers';
$sub["godmode/servers/manage_recontask"]["text"] = __('Recon task');
$sub["godmode/servers/manage_recontask"]["id"] = 'Recon task';
//This subtabs are only for Pandora Admin
if (check_acl ($config['id_user'], 0, "PM")) {
$sub["godmode/servers/plugin"]["text"] = __('Plugins');
$sub["godmode/servers/plugin"]["id"] = 'Plugins';
$sub["godmode/servers/recon_script"]["text"] = __('Recon script');
$sub["godmode/servers/recon_script"]["id"] = 'Recon script';
enterprise_hook('export_target_submenu');
}
$menu_godmode["gservers"]["sub"] = $sub;
}

View File

@ -43,7 +43,11 @@ function menu_print_menu (&$menu) {
}
//Open list of menu
echo '<ul'.(isset ($menu['class']) ? ' class="'.$menu['class'].'"' : '').'>';
echo '<ul' .
(isset ($menu['class']) ?
' class="'.$menu['class'].'"' :
'') .
'>';
foreach ($menu as $mainsec => $main) {
$extensionInMenuParameter = (string) get_parameter ('extension_in_menu','');
@ -61,7 +65,7 @@ function menu_print_menu (&$menu) {
if (enterprise_hook ('enterprise_acl', array ($config['id_user'], $mainsec)) == false)
continue;
if (! isset ($main['id'])) {
$id = 'menu_'.++$idcounter;
}
@ -129,7 +133,7 @@ function menu_print_menu (&$menu) {
//This hacks avoid empty delimiter error when sec2 is not provided.
if (!$sec2) {
$sec2=" ";
$sec2 = " ";
}
//Check if some submenu was selected to mark this (the parent) as selected
@ -168,6 +172,8 @@ function menu_print_menu (&$menu) {
}
}
//Set class
if (($sec2 == $subsec2 || $allsec2 == $subsec2 ||
$selected_submenu2) && isset ($sub[$subsec2]["options"])
@ -190,10 +196,17 @@ function menu_print_menu (&$menu) {
else
$visible = false;
}
elseif ((array_search($sec2, $sub['pages']) !== false) && isset($sub['pages'])) {
$class .= 'submenu_selected selected';
$menu_selected = true;
$selected = true;
$visible = true;
}
else {
//Else it's not selected
$class .= 'submenu_not_selected';
}
if (! isset ($sub["refr"])) {
$sub["refr"] = 0;
}
@ -285,8 +298,16 @@ function menu_print_menu (&$menu) {
$title = '';
}
$submenu_output .= '<a href="index.php?'.$extensionInMenu.'sec='.$secUrl.'&amp;sec2='.$subsec2.($sub["refr"] ? '&amp;refr=' .
$sub["refr"] : '').$link_add.'"' . $title . '><div class="' . $sub_tree_class . '">'.$sub["text"].'</div></a>';
$submenu_output .= '<a href="index.php?' .
$extensionInMenu .
'sec=' . $secUrl . '&amp;' .
'sec2=' . $subsec2 .
($sub["refr"] ?
'&amp;refr=' . $sub["refr"] :
'') .
$link_add . '"' . $title . '>' .
'<div class="' . $sub_tree_class . '">'.$sub["text"].'</div>' .
'</a>';
if (isset($sub['sub2'])) {
//$submenu_output .= html_print_image("include/styles/images/toggle.png", true, array("class" => "toggle", "alt" => "toogle"));
@ -298,7 +319,7 @@ function menu_print_menu (&$menu) {
if (isset($sub['sub2'])) {
//Display if father is selected
$display = "style='display:none'";
$display = "style='display:none;'";
if ($selected) {
$display = "";
@ -366,15 +387,17 @@ function menu_print_menu (&$menu) {
}
}
if ($menu_selected)
$seleccionado = 'selected';
else
$seleccionado = '';
//Print out the first level
$output .= '<li class="'.implode (" ", $classes).' ' . $seleccionado . '" id="icon_'.$id.'">';
//onclick="location.href=\'index.php?sec='.$mainsec.'&amp;sec2='.$main["sec2"].($main["refr"] ? '&amp;refr='.$main["refr"] : '').'\'">';
$length = strlen(__($main["text"]));
$padding_top = ( $length >= 18) ? 6 : 12;

View File

@ -115,6 +115,9 @@ if (check_acl ($config['id_user'], 0, "AR")) {
$sub["operation/agentes/networkmap_list"]["text"] = __('Network map');
$sub["operation/agentes/networkmap_list"]["id"] = 'Network map';
$sub["operation/agentes/networkmap_list"]["refr"] = 0;
$sub["operation/agentes/networkmap_list"]["pages"] = array(
"operation/agentes/networkmap"
);
enterprise_hook ('networkmap_console');
@ -273,6 +276,8 @@ if (check_acl ($config['id_user'], 0, "ER")) {
$sub = array ();
$sub["operation/events/events"]["text"] = __('View events');
$sub["operation/events/events"]["id"] = 'View events';
$sub["operation/events/events"]["pages"] =
array("godmode/events/events");
$sub["operation/events/event_statistics"]["text"] = __('Statistics');
$sub["operation/events/event_statistics"]["id"] = 'Statistics';