2018-09-13 16:07:40 +02:00
|
|
|
<script type="text/javascript">
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
$( document ).ready(function() {
|
|
|
|
|
|
|
|
$('[id^=checkbox-id_inc]').change(function(){
|
|
|
|
if($(this).parent().parent().hasClass('checkselected')){
|
|
|
|
$(this).parent().parent().removeClass('checkselected');
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
$(this).parent().parent().addClass('checkselected');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('[id^=checkbox-all_action]').change(function(){
|
|
|
|
if ($("#checkbox-all_action").prop("checked")) {
|
|
|
|
$('[id^=checkbox-id_inc]').parent().parent().addClass('checkselected');
|
|
|
|
$('[name^=id_inc]').prop("checked", true);
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
$('[id^=checkbox-id_inc]').parent().parent().removeClass('checkselected');
|
|
|
|
$('[name^=id_inc]').prop("checked", false);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
2018-09-13 16:07:40 +02:00
|
|
|
|
|
|
|
</script>
|
|
|
|
|
2006-03-27 05:37:27 +02:00
|
|
|
<?php
|
2006-07-19 20:29:12 +02:00
|
|
|
|
2009-06-08 20:17:33 +02:00
|
|
|
// Pandora FMS - http://pandorafms.com
|
|
|
|
// ==================================================
|
2011-03-17 19:02:44 +01:00
|
|
|
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
2009-06-08 20:17:33 +02:00
|
|
|
// Please see http://pandorafms.org for full contribution list
|
2006-07-19 20:29:12 +02:00
|
|
|
// This program is free software; you can redistribute it and/or
|
|
|
|
// modify it under the terms of the GNU General Public License
|
2008-04-01 15:53:11 +02:00
|
|
|
// as published by the Free Software Foundation for version 2.
|
2006-07-19 20:29:12 +02:00
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU General Public License for more details.
|
2010-03-02 20:25:51 +01:00
|
|
|
global $config;
|
2019-01-30 16:18:44 +01:00
|
|
|
require_once 'include/functions_incidents.php';
|
2007-02-06 16:38:29 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
check_login();
|
2008-08-11 Esteban Sanchez <estebans@artica.es>
* include/functions_db.php: Added __ as an alias of lang_string().
* include/functions_reporting_pdf.php,
include/functions_reporting.php, include/functions.php,
include/functions_visual_map.php, index.php,
operation/incidents/incident.php,
operation/incidents/incident_detail.php,
operation/incidents/incident_note.php,
operation/incidents/incident_search.php,
operation/incidents/incident_statistics.php,
operation/snmpconsole/snmp_alert.php,
operation/snmpconsole/snmp_view.php, operation/users/user.php,
operation/users/user_edit.php, operation/users/user_statistics.php,
operation/events/event_statistics.php, operation/events/events.php,
operation/visual_console/render_view.php,
operation/visual_console/index.php, operation/extensions.php,
operation/agentes/estado_alertas.php,
operation/agentes/status_monitor.php,
operation/agentes/estado_grupo.php, operation/agentes/export_csv.php,
operation/agentes/datos_agente.php,
operation/agentes/estado_ultimopaquete.php,
operation/agentes/estado_generalagente.php,
operation/agentes/estado_agente.php, operation/agentes/bulbs.php,
operation/agentes/status_events.php, operation/agentes/sla_view.php,
operation/agentes/exportdata.php,
operation/agentes/estado_monitores.php,
operation/agentes/ver_agente.php, operation/agentes/estadisticas.php,
operation/agentes/tactical.php, operation/agentes/networkmap.php,
operation/messages/message.php,
operation/reporting/reporting_viewer.php,
operation/reporting/graph_viewer.php,
operation/reporting/custom_reporting.php,
operation/servers/view_server.php,
operation/servers/view_server_detail.php, operation/menu.php,
reporting/fgraph.php, reporting/stat_win.php, ajax.php,
general/logoff.php, general/pandora_help.php, general/footer.php,
general/noaccess.php, general/logon_failed.php,
general/links_menu.php, general/login_page.php, general/logon_ok.php,
general/header.php, general/main_menu.php,
godmode/groups/configure_group.php, godmode/groups/group_list.php,
godmode/setup/news.php, godmode/setup/links.php,
godmode/setup/setup.php, godmode/users/user_list.php,
godmode/users/configure_user.php, godmode/profiles/profile_list.php,
godmode/admin_access_logs.php, godmode/db/db_info_data.php,
godmode/db/db_main.php, godmode/db/db_audit.php,
godmode/db/db_sanity.php, godmode/db/db_refine.php,
godmode/db/db_info.php, godmode/db/db_event.php,
godmode/db/db_purge.php, godmode/extensions.php,
godmode/agentes/agent_template.php,
godmode/agentes/module_manager_editor_network.php,
godmode/agentes/module_manager_editor_wmi.php,
godmode/agentes/alert_manager.php,
godmode/agentes/module_manager_editor_plugin.php,
godmode/agentes/module_manager_editor_prediction.php,
godmode/agentes/alert_manager_editor.php,
godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor_data.php,
godmode/agentes/module_manager.php,
godmode/agentes/modificar_agente.php,
godmode/agentes/configurar_agente.php,
godmode/agentes/agent_disk_conf_editor.php,
godmode/agentes/planned_downtime.php,
godmode/agentes/manage_config_remote.php,
godmode/agentes/agent_manager.php,
godmode/modules/manage_network_components_form.php,
godmode/modules/manage_nc_groups_form.php,
godmode/modules/manage_network_templates.php,
godmode/modules/module_list.php,
godmode/modules/manage_network_templates_form.php,
godmode/modules/manage_network_components_form_network.php,
godmode/modules/manage_network_components_form_wmi.php,
godmode/modules/manage_network_components.php,
godmode/modules/manage_nc_groups.php,
godmode/reporting/reporting_builder.php,
godmode/reporting/map_builder.php,
godmode/reporting/graph_builder.php, godmode/servers/plugin.php,
godmode/servers/manage_recontask.php,
godmode/servers/modificar_server.php,
godmode/servers/manage_recontask_form.php,
godmode/alerts/modify_alert.php, godmode/alerts/configure_alert.php,
godmode/menu.php: Replaced $id_user with $config['id_user']. Use __a
instead of $lang_label to future use of gettext. Style
corrections.
* godmode/agentes/planned_downtime.php: Rewritten to use Pandora
functions and adopt the UI style. Replaced lang_string with __().
* pandoradb.sql: Fields in tplanned_downtime renamed to fit
guidelines.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1005 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-08-11 12:59:07 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$incident_r = check_acl($config['id_user'], 0, 'IR');
|
|
|
|
$incident_w = check_acl($config['id_user'], 0, 'IW');
|
|
|
|
$incident_m = check_acl($config['id_user'], 0, 'IM');
|
2016-09-08 16:06:12 +02:00
|
|
|
$access = ($incident_r == true) ? 'IR' : (($incident_w == true) ? 'IW' : (($incident_m == true) ? 'IM' : 'IR'));
|
|
|
|
|
|
|
|
if (!$incident_r && !$incident_w && !$incident_m) {
|
2019-01-30 16:18:44 +01:00
|
|
|
db_pandora_audit('ACL Violation', 'Trying to access incident viewer');
|
|
|
|
include 'general/noaccess.php';
|
|
|
|
exit;
|
2007-02-05 18:45:14 +01:00
|
|
|
}
|
|
|
|
|
2011-08-09 18:58:32 +02:00
|
|
|
// Header
|
2019-01-30 16:18:44 +01:00
|
|
|
ui_print_page_header(
|
|
|
|
__('Incident management'),
|
|
|
|
'images/book_edit.png',
|
|
|
|
false,
|
|
|
|
'',
|
|
|
|
false,
|
|
|
|
''
|
|
|
|
);
|
2010-03-03 23:19:22 +01:00
|
|
|
|
2011-08-09 18:58:32 +02:00
|
|
|
// Take input parameters
|
|
|
|
// Offset adjustment
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($_GET['offset'])) {
|
|
|
|
$offset = get_parameter('offset');
|
|
|
|
} else {
|
|
|
|
$offset = 0;
|
2008-09-19 18:08:59 +02:00
|
|
|
}
|
|
|
|
|
2011-08-09 18:58:32 +02:00
|
|
|
// Check action. Try to get author and group
|
2019-01-30 16:18:44 +01:00
|
|
|
$action = get_parameter('action');
|
|
|
|
|
|
|
|
if ($action == 'mass') {
|
|
|
|
$id_inc = get_parameter('id_inc', []);
|
|
|
|
$delete_btn = get_parameter('delete_btn', -1);
|
|
|
|
$own_btn = get_parameter('own_btn', -1);
|
|
|
|
|
|
|
|
foreach ($id_inc as $incident) {
|
|
|
|
if (check_acl($config['id_user'], incidents_get_group($incident), 'IM') || incidents_get_author($incident) == $config['id_user'] || incidents_get_owner($incident) == $config['id_user']) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
db_pandora_audit('ACL Forbidden', 'Mass-update or deletion of incident');
|
|
|
|
include 'general/noaccess.php';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($delete_btn != -1) {
|
|
|
|
$result = incidents_delete_incident($id_inc);
|
|
|
|
ui_print_result_message(
|
|
|
|
$result,
|
|
|
|
__('Successfully deleted'),
|
|
|
|
__('Could not be deleted')
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($own_btn != -1) {
|
|
|
|
$result = incidents_process_chown($id_inc, $config['id_user']);
|
|
|
|
ui_print_result_message(
|
|
|
|
$result,
|
|
|
|
__('Successfully reclaimed ownership'),
|
|
|
|
__('Could not reclame ownership')
|
|
|
|
);
|
|
|
|
}
|
|
|
|
} else if ($action == 'update') {
|
|
|
|
$id_inc = get_parameter('id_inc', 0);
|
|
|
|
$author = incidents_get_author($id_inc);
|
|
|
|
$owner = incidents_get_owner($id_inc);
|
|
|
|
$grupo = incidents_get_group($id_inc);
|
|
|
|
|
|
|
|
if ($author != $config['id_user'] && $owner != $config['id_user'] && !check_acl($config['id_user'], $grupo, 'IM')) {
|
|
|
|
// Only admins (manage incident) or owners/creators can modify incidents
|
|
|
|
db_pandora_audit('ACL Forbidden', 'Update incident #'.$id_inc, $author);
|
|
|
|
include 'general/noaccess.php';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
$titulo = get_parameter('titulo');
|
|
|
|
$titulo = io_safe_input(strip_tags(io_safe_output($titulo)));
|
|
|
|
$descripcion = get_parameter('descripcion');
|
|
|
|
$origen = get_parameter('origen_form');
|
|
|
|
$prioridad = get_parameter('prioridad_form', 0);
|
|
|
|
$estado = get_parameter('estado_form', 0);
|
|
|
|
$grupo = get_parameter('grupo_form', 1);
|
|
|
|
$usuario = get_parameter('usuario_form', $config['id_user']);
|
|
|
|
$id_agent = get_parameter('id_agent');
|
|
|
|
|
|
|
|
$sql = sprintf(
|
|
|
|
"UPDATE tincidencia
|
2013-06-18 11:48:57 +02:00
|
|
|
SET titulo = '%s', origen = '%s', estado = %d, id_grupo = %d, id_usuario = '%s', prioridad = %d, descripcion = '%s', id_lastupdate = '%s', id_agent = %d
|
2019-01-30 16:18:44 +01:00
|
|
|
WHERE id_incidencia = %d",
|
|
|
|
$titulo,
|
|
|
|
$origen,
|
|
|
|
$estado,
|
|
|
|
$grupo,
|
|
|
|
$usuario,
|
|
|
|
$prioridad,
|
|
|
|
$descripcion,
|
|
|
|
$config['id_user'],
|
|
|
|
$id_agent,
|
|
|
|
$id_inc
|
|
|
|
);
|
|
|
|
$result = db_process_sql($sql);
|
|
|
|
|
|
|
|
if ($result !== false) {
|
|
|
|
db_pandora_audit('Incident updated', 'User '.$config['id_user'].' updated incident #'.$id_inc);
|
|
|
|
}
|
|
|
|
|
|
|
|
ui_print_result_message(
|
|
|
|
$result,
|
|
|
|
__('Successfully updated'),
|
|
|
|
__('Could not be updated')
|
|
|
|
);
|
|
|
|
} else if ($action == 'insert') {
|
|
|
|
// Create incident
|
|
|
|
$grupo = get_parameter('grupo_form', 1);
|
|
|
|
|
|
|
|
if (!check_acl($config['id_user'], $grupo, 'IW')) {
|
|
|
|
db_pandora_audit('ACL Forbidden', 'User '.$config['id_user'].' tried to update incident');
|
|
|
|
include 'general/noaccess.php';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read input variables
|
|
|
|
$titulo = get_parameter('titulo');
|
|
|
|
$titulo = io_safe_input(strip_tags(io_safe_output($titulo)));
|
|
|
|
$descripcion = get_parameter('descripcion');
|
|
|
|
$origen = get_parameter('origen_form');
|
|
|
|
$prioridad = get_parameter('prioridad_form');
|
|
|
|
$id_creator = $config['id_user'];
|
|
|
|
$estado = get_parameter('estado_form');
|
|
|
|
$usuario = get_parameter('usuario_form', '');
|
|
|
|
$id_agent = get_parameter('id_agent');
|
|
|
|
|
|
|
|
$sql = sprintf(
|
|
|
|
"INSERT INTO tincidencia
|
2013-06-18 11:48:57 +02:00
|
|
|
(inicio, actualizacion, titulo, descripcion, id_usuario, origen, estado, prioridad, id_grupo, id_creator, id_agent, id_agente_modulo)
|
|
|
|
VALUES
|
|
|
|
(NOW(), NOW(), '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, 0)",
|
2019-01-30 16:18:44 +01:00
|
|
|
$titulo,
|
|
|
|
$descripcion,
|
|
|
|
$usuario,
|
|
|
|
$origen,
|
|
|
|
$estado,
|
|
|
|
$prioridad,
|
|
|
|
$grupo,
|
|
|
|
$config['id_user'],
|
|
|
|
$id_agent
|
|
|
|
);
|
|
|
|
$id_inc = db_process_sql($sql, 'insert_id');
|
|
|
|
|
|
|
|
if ($id_inc === false) {
|
|
|
|
ui_print_error_message(__('Error creating incident'));
|
|
|
|
} else {
|
|
|
|
ui_print_success_message(__('Incident created'));
|
|
|
|
db_pandora_audit('Incident created', 'User '.$config['id_user'].' created incident #'.$id_inc);
|
|
|
|
}
|
2007-02-05 18:45:14 +01:00
|
|
|
}
|
2006-03-27 05:37:27 +02:00
|
|
|
|
2011-08-09 18:58:32 +02:00
|
|
|
// Search
|
2019-01-30 16:18:44 +01:00
|
|
|
$filter = '';
|
2007-02-05 18:45:14 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$texto = (string) get_parameter('texto', '');
|
|
|
|
if ($texto != '') {
|
|
|
|
$filter .= sprintf(" AND (titulo LIKE '%%%s%%' OR descripcion LIKE '%%%s%%')", $texto, $texto);
|
|
|
|
}
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$usuario = (string) get_parameter('usuario', '');
|
|
|
|
if ($usuario != '') {
|
|
|
|
$filter .= sprintf(" AND id_usuario = '%s'", $usuario);
|
|
|
|
}
|
2006-03-27 05:37:27 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$estado = (int) get_parameter('estado', -1);
|
|
|
|
if ($estado >= 0) {
|
|
|
|
// -1 = All
|
|
|
|
$filter .= sprintf(' AND estado = %d', $estado);
|
|
|
|
}
|
2007-02-19 08:44:07 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$grupo = (int) get_parameter('grupo', 0);
|
2011-08-09 18:58:32 +02:00
|
|
|
if ($grupo > 0) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$filter .= sprintf(' AND id_grupo = %d', $grupo);
|
|
|
|
if (check_acl($config['id_user'], $grupo, 'IM') == 0) {
|
|
|
|
db_pandora_audit('ACL Forbidden', 'User tried to read incidents from group without access');
|
|
|
|
include 'general/noaccess.php';
|
|
|
|
exit;
|
|
|
|
}
|
2007-02-05 18:45:14 +01:00
|
|
|
}
|
2006-03-27 05:37:27 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$prioridad = (int) get_parameter('prioridad', -1);
|
|
|
|
if ($prioridad != -1) {
|
|
|
|
// -1 = All
|
|
|
|
$filter .= sprintf(' AND prioridad = %d', $prioridad);
|
|
|
|
}
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$agent_search = (int) get_parameter('agent_search');
|
2015-06-08 11:05:19 +02:00
|
|
|
if ($agent_search != 0) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$filter .= sprintf(' AND id_agent = %d', $agent_search);
|
2012-01-23 18:01:00 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$offset = (int) get_parameter('offset', 0);
|
|
|
|
$groups = users_get_groups($config['id_user'], 'IR');
|
|
|
|
|
|
|
|
// Select incidencts where the user has access to ($groups from
|
|
|
|
// get_user_groups), array_keys for the id, implode to pass to SQL
|
|
|
|
switch ($config['dbtype']) {
|
|
|
|
case 'mysql':
|
|
|
|
$sql = 'SELECT * FROM tincidencia WHERE
|
|
|
|
id_grupo IN ('.implode(',', array_keys($groups)).')'.$filter.'
|
|
|
|
ORDER BY actualizacion DESC LIMIT '.$offset.','.$config['block_size'];
|
|
|
|
$count_sql = 'SELECT count(*) FROM tincidencia WHERE
|
|
|
|
id_grupo IN ('.implode(',', array_keys($groups)).')'.$filter.'
|
|
|
|
ORDER BY actualizacion DESC';
|
|
|
|
$total_sql = 'SELECT count(*) FROM tincidencia WHERE
|
|
|
|
id_grupo IN ('.implode(',', array_keys($groups)).')
|
|
|
|
ORDER BY actualizacion DESC';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'postgresql':
|
|
|
|
case 'oracle':
|
|
|
|
$set = [];
|
|
|
|
$set['limit'] = $config['block_size'];
|
|
|
|
$set['offset'] = $offset;
|
|
|
|
$sql = 'SELECT * FROM tincidencia WHERE
|
|
|
|
id_grupo IN ('.implode(',', array_keys($groups)).')'.$filter.'
|
|
|
|
ORDER BY actualizacion DESC';
|
|
|
|
$sql = oracle_recode_query($sql, $set);
|
|
|
|
$count_sql = 'SELECT count(*) FROM tincidencia WHERE
|
|
|
|
id_grupo IN ('.implode(',', array_keys($groups)).')'.$filter;
|
|
|
|
$total_sql = 'SELECT count(*) FROM tincidencia WHERE
|
|
|
|
id_grupo IN ('.implode(',', array_keys($groups)).')';
|
|
|
|
break;
|
2012-03-31 04:37:47 +02:00
|
|
|
}
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$result = db_get_all_rows_sql($sql);
|
|
|
|
$count = db_get_value_sql($count_sql);
|
|
|
|
$count_total = db_get_value_sql($total_sql);
|
2012-01-23 18:01:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($result)) {
|
|
|
|
$result = [];
|
|
|
|
$count = 0;
|
2011-11-03 18:28:18 +01:00
|
|
|
}
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2015-08-18 16:23:45 +02:00
|
|
|
if ($count_total >= 1) {
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<form name="visualizacion" method="post" action="index.php?sec=workspace&sec2=operation/incidents/incident">';
|
2010-02-19 Sancho Lerena <slerena@artica.es>
* functions_events.php: Fixed typo (switched meaning) in two labels.
* include/styles/pandora.css: Changed background color of th default style.
* include/functions_reporting.php: Improved function get_group_stats(). Now
supports stats from batch-mode and get realtime stats in a more efficient
way. Fixed get_fired_alerts_reporting_table() to avoid problems in external
reporting (PDF & XML).
* include/functions_servers.php: get_server_performance() now uses batch mode
stats reporting, and improved also the realtime stats generation. Same with
function get_server_info().
* include/functions_config.php: Added new config tokens (not fully
implemented yet) for event, trap, strings and audit automatic purge.
* include/functions_ui.php: Added new print_page_header() function to set
the new standard header in all pages, using the "tabbed" format to show
the title, subtitle and other options like help, or custom-tabs for the page
* pandoradb.sql: Added tserver.stat_utimestamp field. Added indexes to
tsession table. Fixed typo in field name in tgroup_stat: agents_uknown to
agents_unknown.
* extensions/ext_backup: New directory to place "deleted" extensions.
* extensions/dbmanager/dbmanager.css: Table names now are in it's original
lowercase/uppercase format.
* extensions/dbmanager.php: Updated headers, and now return "empty" when
a search is empty, instead "error" as before.
* extensions/users_connected.php
extensions/module_groups.php
extensions/plugin_registration.php
extensions/pandora_logs.php
operation/incidents/incident.php
operation/snmpconsole/snmp_view.php
operation/users/user.php
operation/users/user_edit.php
godmode/agentes/planned_downtime.php
operation/events/events.php
operation/visual_console/index.php
operation/agentes/estado_generalagente.php
operation/agentes/estado_agente.php
operation/agentes/exportdata.php
operation/agentes/ver_agente.php
operation/agentes/status_monitor.php
operation/agentes/alerts_status.php
operation/users/user_statistics.php: Added new header format.
* operation/agentes/estado_grupo.php: Removed old group view.
* operation/agentes/tactical.php: Adapted to use new realtime/batch
statistical system. Placed events above server info. Showing only pending
events and other minor changes.
* operation/agentes/group_view.php: NEW screen, replacing old one. Probably
most ugly, but much more useful than before.
* operation/agentes/networkmap.php: Added title.
* operation/messages/message.php: Added title and adding some exists in
code was missing before.
* operation/reporting/reporting_viewer.php: Added title.
* operation/reporting/graph_viewer.php: Added title.
* operation/reporting/custom_reporting.php: Added title.
* operation/servers/view_server.php:
* operation/menu.php: Replaced old group view with new (this has english
name). Removed autorefresh "by default" in server view.
* extras/pandoradb_migrate_v3.0_to_v3.1.sql: Fixed typo.
* extras/pandora_diag.php: Minor changes, removed some info and added other.
* general/logon_ok.php: Minor aesthetic changes.
* general/header.php: Fixed missing ";"
* operation/extensions.php,
godmode/extensions.php: Added support for delete extensions.
* godmode/menu.php: New setup items.
* godmode/setup/setup.php,
godmode/setup/performance.php,
godmode/setup/setup_visuals.php: Reordered setup options, new setup section
"Performance", added new performance options to set "realtime" statistics
or "batchmode" with it's own interval. Some setup info is now shared with
the servers (but it it's any change in setup, servers should be restarted
anyway).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2390 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-02-19 16:16:03 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<table class="databox filters" cellpadding="4" cellspacing="4" width="100%"><tr>
|
2015-06-26 14:52:01 +02:00
|
|
|
<td valign="middle"><h3>'.__('Filter').'</h3>';
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$fields = incidents_get_status();
|
|
|
|
echo '<b>'.__('Incidents:').'</b>'.' ';
|
|
|
|
html_print_select($fields, 'estado', $estado, 'javascript:this.form.submit();', __('All incidents'), -1, false, false, false, 'w155');
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
// Legend
|
|
|
|
echo '</td><td valign="middle"><noscript>';
|
|
|
|
html_print_submit_button(__('Show'), 'submit-estado', false, ['class' => 'sub']);
|
2008-12-10 21:15:38 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</noscript></td><td rowspan="7" class="f9" style="padding-left: 30px; vertical-align: top;"><h3>'.__('Status').'</h3>';
|
|
|
|
foreach (incidents_get_status() as $id => $str) {
|
|
|
|
incidents_print_status_img($id);
|
|
|
|
echo ' - '.$str.'<br />';
|
|
|
|
}
|
2008-12-10 21:15:38 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</td><td rowspan="7" class="f9" style="padding-left: 30px; vertical-align: top;"><h3>'.__('Priority').'</h3>';
|
|
|
|
foreach (incidents_get_priorities() as $id => $str) {
|
|
|
|
incidents_print_priority_img($id);
|
|
|
|
echo ' - '.$str.'<br />';
|
|
|
|
}
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</td></tr><tr><td>';
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$fields = incidents_get_priorities();
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<b>'.__('Priorities:').'</b>'.' ';
|
|
|
|
html_print_select($fields, 'prioridad', $prioridad, 'javascript:this.form.submit();', __('All priorities'), -1, false, false, false, 'w155');
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</td></tr><tr><td>';
|
2006-03-27 05:37:27 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<b>'.__('Users:').'</b>'.' ';
|
|
|
|
html_print_select(users_get_info(), 'usuario', $usuario, 'javascript:this.form.submit();', __('All users'), '', false, false, false, 'w155');
|
2008-09-19 18:08:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</td></tr><tr><td>';
|
2012-01-23 18:01:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$agents_incidents = agents_get_agents(false, ['id_agente', 'nombre']);
|
2012-01-23 18:01:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($agents_incidents === false) {
|
|
|
|
$agents_incidents = [];
|
|
|
|
}
|
2012-01-23 18:01:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$result_agent_incidents = [];
|
|
|
|
foreach ($agents_incidents as $agent_incident) {
|
|
|
|
$result_agent_incidents[$agent_incident['id_agente']] = $agent_incident['nombre'];
|
|
|
|
}
|
2012-01-23 18:01:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<b>'.__('Agents:').'</b>'.' ';
|
|
|
|
html_print_select(
|
|
|
|
$result_agent_incidents,
|
|
|
|
'agent_search',
|
|
|
|
$agent_search,
|
|
|
|
'javascript:this.form.submit();',
|
|
|
|
__('All agents'),
|
|
|
|
'',
|
|
|
|
false,
|
|
|
|
false,
|
|
|
|
false,
|
|
|
|
'w155'
|
|
|
|
);
|
2012-01-23 18:01:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</td></tr><tr><td colspan=3>';
|
2015-06-12 15:50:46 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<b>'.__('Groups:').'</b>'.' ';
|
|
|
|
html_print_select_groups($config['id_user'], 'IR', true, 'grupo', $grupo, 'javascript:this.form.submit();', '', '', false, false, false, 'w155');
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
// echo " ";
|
|
|
|
echo '</td></tr><tr><td colspan=3>';
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<b>'.__('Free text:').'</b>'.ui_print_help_tip(
|
|
|
|
__('Search by incident name or description, list matches.'),
|
|
|
|
true
|
|
|
|
).' ';
|
|
|
|
html_print_input_text('texto', $texto, '', 45);
|
|
|
|
echo ' ';
|
|
|
|
html_print_input_image('submit', 'images/zoom.png', __('Search'), 'padding:0;', false, ['alt' => __('Search')]);
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</td></tr></table>';
|
|
|
|
echo '</form>';
|
2015-06-26 14:52:01 +02:00
|
|
|
}
|
2011-08-09 18:58:32 +02:00
|
|
|
|
2015-08-18 16:23:45 +02:00
|
|
|
if ($count_total < 1) {
|
2019-01-30 16:18:44 +01:00
|
|
|
include_once $config['homedir'].'/general/firts_task/incidents.php';
|
|
|
|
} else {
|
|
|
|
// TOTAL incidents
|
|
|
|
$url = 'index.php?sec=workspace&sec2=operation/incidents/incident';
|
|
|
|
|
|
|
|
$estado = -1;
|
|
|
|
|
|
|
|
// add form filter values for group, priority, state, and search fields: user and text
|
|
|
|
if ($grupo != -1) {
|
|
|
|
$url .= '&grupo='.$grupo;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($prioridad != -1) {
|
|
|
|
$url .= '&prioridad='.$prioridad;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($estado != -1) {
|
|
|
|
$url .= '&estado='.$estado;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($usuario != '') {
|
|
|
|
$url .= '&usuario='.$usuario;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($texto != '') {
|
|
|
|
$url .= '&texto='.$texto;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Show pagination
|
|
|
|
ui_pagination($count, $url, $offset, 0, false);
|
|
|
|
// ($count + $offset) it's real count of incidents because it's use LIMIT $offset in query.
|
|
|
|
echo '<br />';
|
|
|
|
|
|
|
|
// Show headers
|
|
|
|
$table->width = '100%';
|
|
|
|
$table->class = 'databox data';
|
|
|
|
$table->cellpadding = 4;
|
|
|
|
$table->cellspacing = 4;
|
|
|
|
$table->head = [];
|
|
|
|
$table->data = [];
|
|
|
|
$table->size = [];
|
|
|
|
$table->align = [];
|
|
|
|
|
|
|
|
$table->head[0] = __('ID');
|
|
|
|
$table->head[1] = __('Status');
|
|
|
|
$table->head[2] = __('Incident');
|
|
|
|
$table->head[3] = __('Priority');
|
|
|
|
$table->head[4] = __('Group');
|
|
|
|
$table->head[5] = __('Updated');
|
|
|
|
$table->head[6] = __('Source');
|
|
|
|
$table->head[7] = __('Owner');
|
|
|
|
$table->head[8] = __('Action').html_print_checkbox('all_action', 0, false, true, false);
|
|
|
|
|
|
|
|
$table->size[0] = 43;
|
|
|
|
$table->size[7] = 50;
|
|
|
|
|
|
|
|
$table->align[1] = 'left';
|
|
|
|
$table->align[3] = 'left';
|
|
|
|
$table->align[4] = 'left';
|
|
|
|
$table->align[8] = 'left';
|
|
|
|
|
|
|
|
$rowPair = true;
|
|
|
|
$iterator = 0;
|
|
|
|
foreach ($result as $row) {
|
|
|
|
if ($rowPair) {
|
|
|
|
$table->rowclass[$iterator] = 'rowPair';
|
|
|
|
} else {
|
|
|
|
$table->rowclass[$iterator] = 'rowOdd';
|
|
|
|
}
|
|
|
|
|
|
|
|
$rowPair = !$rowPair;
|
|
|
|
$iterator++;
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
|
|
|
|
$data[0] = '<a href="index.php?sec=workspace&sec2=operation/incidents/incident_detail&id='.$row['id_incidencia'].'">'.$row['id_incidencia'].'</a>';
|
|
|
|
$attach = incidents_get_attach($row['id_incidencia']);
|
|
|
|
|
|
|
|
if (!empty($attach)) {
|
|
|
|
$data[0] .= ' '.html_print_image('images/attachment.png', true, ['style' => 'align:middle;']);
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[1] = incidents_print_status_img($row['estado'], true);
|
|
|
|
$data[2] = '<a href="index.php?sec=workspace&sec2=operation/incidents/incident_detail&id='.$row['id_incidencia'].'">'.ui_print_truncate_text(io_safe_output($row['titulo']), 'item_title').'</a>';
|
|
|
|
$data[3] = incidents_print_priority_img($row['prioridad'], true);
|
|
|
|
$data[4] = ui_print_group_icon($row['id_grupo'], true);
|
|
|
|
$data[5] = ui_print_timestamp($row['actualizacion'], true);
|
|
|
|
$data[6] = $row['origen'];
|
|
|
|
if (empty($row['id_usuario'])) {
|
|
|
|
$data[7] = 'SYSTEM';
|
|
|
|
} else {
|
|
|
|
$data[7] = ui_print_username($row['id_usuario'], true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (check_acl($config['id_user'], $row['id_grupo'], 'IM') || $config['id_user'] == $row['id_usuario'] || $config['id_user'] == $row['id_creator']) {
|
|
|
|
$data[8] = html_print_checkbox('id_inc[]', $row['id_incidencia'], false, true);
|
|
|
|
} else {
|
|
|
|
$data[8] = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
array_push($table->data, $data);
|
|
|
|
}
|
|
|
|
|
|
|
|
echo '<form method="post" action="'.$url.'&action=mass" style="margin-bottom: 0px;">';
|
|
|
|
html_print_table($table);
|
|
|
|
echo '<div style="text-align:right; float:right;">';
|
|
|
|
if (check_acl($config['id_user'], 0, 'IW')) {
|
|
|
|
html_print_submit_button(__('Delete incidents'), 'delete_btn', false, 'class="sub delete" style="margin-right: 5px;"');
|
|
|
|
}
|
|
|
|
|
|
|
|
if (check_acl($config['id_user'], 0, 'IM')) {
|
|
|
|
html_print_submit_button(__('Become owner'), 'own_btn', false, 'class="sub upd"');
|
|
|
|
}
|
|
|
|
|
|
|
|
echo '</div>';
|
|
|
|
echo '</form>';
|
|
|
|
unset($table);
|
|
|
|
if (check_acl($config['id_user'], 0, 'IW')) {
|
|
|
|
echo '<div style="text-align:right; float:right; padding-right: 5px;">';
|
|
|
|
echo '<form method="post" action="index.php?sec=workspace&sec2=operation/incidents/incident_detail&insert_form=1">';
|
|
|
|
html_print_submit_button(__('Create incident'), 'crt', false, 'class="sub next"');
|
|
|
|
echo '</form>';
|
|
|
|
echo '</div>';
|
|
|
|
}
|
2011-08-09 18:58:32 +02:00
|
|
|
}
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
|
2015-06-26 14:52:01 +02:00
|
|
|
|
2008-12-10 21:15:38 +01:00
|
|
|
echo '<div style="clear:both"> </div>';
|