diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 26fb6ef503..93543cd905 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,7 +1,14 @@ +2014-05-09 Alejandro Gallardo + + * general/shortcut_bar.php: Updated the shortcut bar. + + * include/styles/pandora.css: Added new styles for the + shortcut bar elements. + 2014-05-08 Alejandro Gallardo - * pandora_console/extensions/matrix_events/ajax.php, - pandora_console/extensions/matrix_events.php: Added + * extensions/matrix_events/ajax.php, + extensions/matrix_events.php: Added files. New extension to see the latest events like if you were the operator of the Nebuchadnezzar. diff --git a/pandora_console/general/shortcut_bar.php b/pandora_console/general/shortcut_bar.php index 71ce023454..ca9040597d 100644 --- a/pandora_console/general/shortcut_bar.php +++ b/pandora_console/general/shortcut_bar.php @@ -20,12 +20,18 @@ global $config; check_login (); require_once("include/functions_reporting.php"); +require_once("include/functions_events.php"); if (is_ajax()) { - $save_item_shorcut = get_parameter("save_item_shorcut", 0); + $save_item_shorcut = (bool) get_parameter("save_item_shorcut"); + $update_shortcut_state = (bool) get_parameter('update_shortcut_state'); + $get_alerts_fired = (bool) get_parameter('get_alerts_fired'); + $get_critical_events = (bool) get_parameter('get_critical_events'); + $get_opened_incidents = (bool) get_parameter('get_opened_incidents'); if ($save_item_shorcut) { + $result = false; $data = get_parameter("data", ''); $id_user = get_parameter('id_user', 0); @@ -42,76 +48,107 @@ if (is_ajax()) { db_process_sql_update('tusuario', $shortcut_data, array('id_user' => $id_user)); } + + echo json_encode($result); + return; } - require_once("include/functions_events.php"); - - - $update_shortcut_state = get_parameter('update_shortcut_state', 0); - $get_critical_events = get_parameter('get_critical_events', 0); - $get_opened_incidents = get_parameter('get_opened_incidents', 0); - // Update if shortcut is visible or hidden if ($update_shortcut_state) { - $value = get_parameter('value', 0); - db_process_sql_update('tusuario', array('shortcut' => $value), array('id_user' => $config['id_user'])); + $value = (int) get_parameter('value'); + $result = db_process_sql_update('tusuario', array('shortcut' => $value), array('id_user' => $config['id_user'])); + + echo json_encode($result); + return; + } + + // Get critical events (realtime update) + if ($get_alerts_fired){ + echo sc_get_alerts_fired(); + return; } // Get critical events (realtime update) if ($get_critical_events){ - - $own_info = get_user_info ($config['id_user']); - - if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) - $own_groups = array_keys(users_get_groups($config['id_user'], "IR")); - else - $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); - - // Get events in the last 8 hours - $shortcut_events_update = events_get_group_events($own_groups, 28800, time()); - if ($shortcut_events_update == false) - $shortcut_events_update = array(); - - $critical_events_update = 0; - foreach($shortcut_events_update as $event_update){ - if ($event_update['criticity'] == 4 and $event_update['estado'] == 0) { - $critical_events_update++; - } - } - - echo $critical_events_update; + echo sc_get_critical_events(); + return; } // Select only opened incidents if ($get_opened_incidents) { - $own_info = get_user_info ($config['id_user']); - - if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) - $own_groups = array_keys(users_get_groups($config['id_user'], "IR")); - else - $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); - - $sql = "SELECT count(*) total_incidents FROM tincidencia WHERE - id_grupo IN (".implode (",",array_keys ($own_groups)).") AND estado IN (0) - ORDER BY actualizacion"; - - + echo sc_get_opened_incidents(); + return; + } + + return; +} + +function sc_get_alerts_fired () { + global $config; + + $data_reporting = reporting_get_group_stats(); + + return $data_reporting['monitor_alerts_fired']; +} + +function sc_get_critical_events () { + global $config; + + $own_info = get_user_info ($config['id_user']); + + if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) + $own_groups = array_keys(users_get_groups($config['id_user'], "IR")); + else + $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); + + // Get events in the last 8 hours + $shortcut_events_update = events_get_group_events($own_groups, 28800, time()); + if ($shortcut_events_update == false) + $shortcut_events_update = array(); + + $critical_events_update = 0; + foreach($shortcut_events_update as $event_update){ + if ($event_update['criticity'] == 4 and $event_update['estado'] == 0) { + $critical_events_update++; + } + } + + return $critical_events_update; +} + +function sc_get_opened_incidents () { + global $config; + + $own_info = get_user_info ($config['id_user']); + + if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) { + $sql = "SELECT count(*) total_incidents + FROM tincidencia + WHERE estado = 0 + ORDER BY actualizacion"; + $result_incidents_update = db_get_all_rows_sql ($sql); + } + else { + $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); + $sql = "SELECT count(*) total_incidents + FROM tincidencia + WHERE id_grupo IN (".implode (",",array_keys ($own_groups)).") + AND estado = 0 + ORDER BY actualizacion"; if (!empty($own_groups)) { - $result_incidents_update = db_get_all_rows_sql ($sql); + $result_incidents_update = db_get_all_rows_sql($sql); } else { $result_incidents_update = false; } - - if ($result_incidents_update === false) - $shortcut_incidents = 0; - else - $shortcut_incidents = $result_incidents_update[0]['total_incidents']; - - echo $shortcut_incidents; } - return; + if ($result_incidents_update === false) + $shortcut_incidents = 0; + else + $shortcut_incidents = $result_incidents_update[0]['total_incidents']; + + return $shortcut_incidents; } @@ -121,127 +158,94 @@ $shortcut_state = db_get_value_filter('shortcut', 'tusuario', array('id_user' => if ($shortcut_state == 0) return; -if ($shortcut_state == 2) { - echo "
"; -} -else { - echo "
"; -} - html_print_image("images/pandora_textlogo.png", false, array("title" => __("Press here to activate shortcut bar"))); -echo "
"; -if ($shortcut_state == 2) { - echo "
"; -} -else { - echo "
"; -} - -echo "     "; $own_info = get_user_info ($config['id_user']); -// If user is admin can see all groups -if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) { - echo ""; -} -else { - $own_groups = array_keys(users_get_groups($config['id_user'], "AR", false)); - if (!empty($own_groups)) { - $alerts_group = array_shift($own_groups); - echo ""; - } -} -html_print_image("images/bell.png", false, array("title" => __("Alerts fired"), "style" => "margin-bottom: -5px;")); -echo " "; +$shortcut_html = "
"; +$shortcut_html .= "
"; +$shortcut_html .= html_print_image("images/control_play.png", true, array("title" => __("Press here to activate shortcut bar"))); +$shortcut_html .= "
"; +$shortcut_html .= "
"; -// Calculate alerts fired -$data_reporting = reporting_get_group_stats(); +$num_shortcut_items = 0; -echo "" . $data_reporting['monitor_alerts_fired'] . ""; -if (!empty($own_groups)) { - echo ""; -} -echo "     "; +// Alerts item +if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM") || check_acl ($config['id_user'], 0, "AR")) { + $alerts_fired = sc_get_alerts_fired(); -$own_info = get_user_info ($config['id_user']); + $shortcut_html .= ""; + $shortcut_html .= html_print_image("images/op_alerts.png", true, array("title" => __("Alerts fired"), "style" => "margin-bottom: 0px;")); + $shortcut_html .= " "; + $shortcut_html .= "" . $alerts_fired . ""; + $shortcut_html .= ""; -// If user is admin can see all groups -if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) { - echo ""; -} -else { - $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); - if (!empty($own_groups)){ - $events_group = array_shift($own_groups); - echo ""; - } -} -html_print_image("images/lightning_go.png", false, array("title" => __("Critical events"), "style" => "margin-bottom: -5px;")); -echo " "; - -// Calculate critical events (not validated) -$own_info = get_user_info ($config['id_user']); - -if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM")) - $own_groups = array_keys(users_get_groups($config['id_user'], "IR")); -else - $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); - -// Get events in the last 8 hours -$shortcut_events = events_get_group_events($own_groups, 28800, time()); -if ($shortcut_events == false) - $shortcut_events = array(); - -$critical_events = 0; -foreach ($shortcut_events as $event) { - if ($event['criticity'] == 4 and $event['estado'] == 0) { - $critical_events++; - } + $num_shortcut_items++; +} + +// Events item +if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM") || check_acl ($config['id_user'], 0, "IR")) { + $critical_events = sc_get_critical_events(); + + $shortcut_html .= ""; + $shortcut_html .= html_print_image("images/op_events.png", true, array("title" => __("Critical events"), "style" => "margin-bottom: 0px;")); + $shortcut_html .= " "; + $shortcut_html .= "" . $critical_events . ""; + $shortcut_html .= ""; + + $num_shortcut_items++; } -echo "" . $critical_events . ""; -echo ""; -echo "     "; // Calculate opened incidents (id integria incidents are not enabled) if ($config['integria_enabled'] == 0) { - echo ""; - html_print_image("images/book_edit.png", false, array("title" => __("Incidents opened"), "style" => "margin-bottom: -5px;")); - echo " "; - // Select only opened incidents - $sql = "SELECT count(*) total_incidents FROM tincidencia WHERE - id_grupo IN (".implode (",",array_keys ($own_groups)).") AND estado IN (0) - ORDER BY actualizacion"; + $shortcut_incidents = sc_get_opened_incidents(); - if (!empty($own_groups)) { - $result_incidents = db_get_all_rows_sql ($sql); - } - else { - $result_incidents = false; - } - - if ($result_incidents === false) - $shortcut_incidents = 0; - else - $shortcut_incidents = $result_incidents[0]['total_incidents']; - - - echo "" . $shortcut_incidents . ""; - echo ""; - echo "     "; + $shortcut_html .= ""; + $shortcut_html .= html_print_image("images/book_edit.png", true, array("title" => __("Incidents opened"), "style" => "margin-bottom: 0px;")); + $shortcut_html .= " "; + $shortcut_html .= "" . $shortcut_incidents . ""; + $shortcut_html .= ""; + + $num_shortcut_items++; } -echo "   "; -echo "|"; -echo "    "; -echo "    "; -echo ""; -html_print_image("images/reporting.png", false, array("title" => __("View reports"), "style" => "margin-bottom: -5px;")); -echo ""; +if ($num_shortcut_items > 0) { + $shortcut_html .= ""; + $shortcut_html .= "|"; + $shortcut_html .= ""; +} -echo "     "; +$shortcut_html .= ""; +$shortcut_html .= html_print_image("images/op_reporting.png", true, array("title" => __("View reports"), "style" => "margin-bottom: 0px;")); +$shortcut_html .= ""; +$num_shortcut_items++; -echo ""; -html_print_image("images/email.png", false, array("title" => __("Create new message"), "style" => "margin-bottom: -5px;")); -echo ""; +$shortcut_html .= ""; +$shortcut_html .= html_print_image("images/email_mc.png", true, array("title" => __("Create new message"), "style" => "margin-bottom: 0px;")); +$shortcut_html .= ""; +$num_shortcut_items++; + +//Quick access +// $shortcut_data = db_get_value('shortcut_data', 'tusuario', 'id_user', $config['id_user']); +// if (!empty($shortcut_data)) { +// $serialize = $shortcut_data; +// $unserialize = json_decode($serialize, true); + +// $items = $unserialize['item_shorcut']; +// } +// else { +// $items = array(); +// } +// $shortcut_html .= "
" . +// __("Shortcut: "); +// $shortcut_html .= "
    "; +// foreach ($items as $item) { +// $shortcut_html .= "
  • " . io_safe_output($item) . "
  • "; +// } +// $shortcut_html .= "
"; + +$shortcut_html .= "
"; +$shortcut_html .= "
"; + +echo $shortcut_html; // Login in Console and shortcut bar is disabled // This will show and hide the shortcut value in Javascript code @@ -254,120 +258,121 @@ else { html_print_input_hidden("shortcut_id_user", $config['id_user']); - -//Quick access -$shortcut_data = db_get_value('shortcut_data', 'tusuario', 'id_user', $config['id_user']); -if (!empty($shortcut_data)) { - $serialize = $shortcut_data; - $unserialize = json_decode($serialize, true); - - $items = $unserialize['item_shorcut']; -} -else { - $items = array(); -} -echo "
" . - __("Shortcut: "); -echo "
    "; -foreach ($items as $item) { - echo "
  • " . io_safe_output($item) . "
  • "; -} -echo "
"; -echo "
"; - -echo "
"; - ?> + \ No newline at end of file diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 5037953df0..a8b436919c 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -2884,3 +2884,40 @@ td.empty_field { #table_macros textarea { width: 96%; } + +/* Shortcut bar */ + +#shortcut_container { + position: fixed; + margin: 0px !important; + bottom: 0px; + left: 0px; +} + +#shortcut_bar { + background-color: #333; + background-image: url(../../images/header_blackout.png); + border-top: 1px solid #808080; + border-right: 1px solid #808080; + border-top-right-radius: 5px; +} + +#shortcut_button { + display: inline-block; + background-color: #333; + border: 1px solid #808080; + border-bottom: none; + border-top-left-radius: 15px; + border-top-right-radius: 15px; +} + +.shortcut_item { + padding: 2px 10px; + text-decoration: none; +} + +.shortcut_item>span { + color: #eee; + font-weight: bold; + font-size: 9pt; +} \ No newline at end of file