diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 0f47c80a57..318b0cd674 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -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; } diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index d3a4aee622..005d38cd2c 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -43,7 +43,11 @@ function menu_print_menu (&$menu) { } //Open list of menu - echo ''; + echo ''; 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 .= '
'.$sub["text"].'
'; + $submenu_output .= '' . + '
'.$sub["text"].'
' . + '
'; 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 .= '
  • '; //onclick="location.href=\'index.php?sec='.$mainsec.'&sec2='.$main["sec2"].($main["refr"] ? '&refr='.$main["refr"] : '').'\'">'; - + $length = strlen(__($main["text"])); $padding_top = ( $length >= 18) ? 6 : 12; diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 759922819b..912f12409c 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -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';