refactor events meta pandora_enterprise#9086
This commit is contained in:
parent
3b3e964cf9
commit
b82b3c3fb1
|
@ -31,7 +31,6 @@ use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||||
// Begin.
|
// Begin.
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
|
||||||
require_once 'include/functions_events.php';
|
require_once 'include/functions_events.php';
|
||||||
require_once 'include/functions_agents.php';
|
require_once 'include/functions_agents.php';
|
||||||
require_once 'include/functions_ui.php';
|
require_once 'include/functions_ui.php';
|
||||||
|
@ -88,81 +87,70 @@ $get_comments = (bool) get_parameter('get_comments', false);
|
||||||
$get_events_fired = (bool) get_parameter('get_events_fired');
|
$get_events_fired = (bool) get_parameter('get_events_fired');
|
||||||
$get_id_source_event = get_parameter('get_id_source_event');
|
$get_id_source_event = get_parameter('get_id_source_event');
|
||||||
$node_id = (int) get_parameter('node_id', 0);
|
$node_id = (int) get_parameter('node_id', 0);
|
||||||
|
|
||||||
if ($get_comments === true) {
|
if ($get_comments === true) {
|
||||||
$event = get_parameter('event', false);
|
$event = get_parameter('event', false);
|
||||||
$filter = get_parameter('filter', false);
|
|
||||||
|
|
||||||
if ($event === false) {
|
if ($event === false) {
|
||||||
return __('Failed to retrieve comments');
|
return __('Failed to retrieve comments');
|
||||||
}
|
}
|
||||||
|
|
||||||
$eventsGrouped = [];
|
$eventsGrouped = [];
|
||||||
|
// Consider if the event is grouped.
|
||||||
if ($filter['group_rep'] == 1) {
|
if (isset($event['event_rep']) === true && $event['event_rep'] > 0) {
|
||||||
$events = events_get_all(
|
// Default grouped message filtering (evento and estado).
|
||||||
['te.*'],
|
$whereGrouped = sprintf(
|
||||||
// Filter.
|
'`evento` = "%s" AND `estado` = "%s" AND `event_type` = "%s" ',
|
||||||
$filter,
|
$event['evento'],
|
||||||
// Offset.
|
$event['estado'],
|
||||||
null,
|
$event['event_type']
|
||||||
// Limit.
|
|
||||||
null,
|
|
||||||
// Order.
|
|
||||||
null,
|
|
||||||
// Sort_field.
|
|
||||||
null,
|
|
||||||
// History.
|
|
||||||
$filter['history'],
|
|
||||||
// Return_sql.
|
|
||||||
false,
|
|
||||||
// Having.
|
|
||||||
sprintf(
|
|
||||||
' HAVING max_id_evento = %d',
|
|
||||||
$event['id_evento']
|
|
||||||
),
|
|
||||||
// True for show comments of validated events.
|
|
||||||
true
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($events !== false) {
|
// If id_agente is reported, filter the messages by them as well.
|
||||||
$event = $events[0];
|
if ((int) $event['id_agente'] > 0) {
|
||||||
}
|
$whereGrouped .= sprintf(
|
||||||
} else {
|
' AND `id_agente` = %d',
|
||||||
// Consider if the event is grouped.
|
(int) $event['id_agente']
|
||||||
if (isset($event['event_rep']) === true && $event['event_rep'] > 0) {
|
|
||||||
// Evaluate if we are in metaconsole or not.
|
|
||||||
$eventTable = 'tevento';
|
|
||||||
// Default grouped message filtering (evento and estado).
|
|
||||||
$whereGrouped = sprintf(
|
|
||||||
'`evento` = "%s" AND `estado` = "%s"',
|
|
||||||
$event['evento'],
|
|
||||||
$event['estado']
|
|
||||||
);
|
);
|
||||||
// If id_agente is reported, filter the messages by them as well.
|
}
|
||||||
if ((int) $event['id_agente'] > 0) {
|
|
||||||
$whereGrouped .= sprintf(' AND `id_agente` = "%s"', $event['id_agente']);
|
if ((int) $event['id_agentmodule'] > 0) {
|
||||||
|
$whereGrouped .= sprintf(
|
||||||
|
' AND `id_agentmodule` = %d',
|
||||||
|
(int) $event['id_agentmodule']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $event['server_id'] > 0
|
||||||
|
) {
|
||||||
|
$node = new Node($event['server_id']);
|
||||||
|
$node->connect();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get grouped comments.
|
$sql = sprintf(
|
||||||
$eventsGrouped = db_get_all_rows_sql(
|
'SELECT `user_comment`
|
||||||
sprintf(
|
FROM tevento
|
||||||
'SELECT `user_comment`
|
WHERE %s',
|
||||||
FROM `%s`
|
$whereGrouped
|
||||||
WHERE %s',
|
|
||||||
$eventTable,
|
|
||||||
$whereGrouped
|
|
||||||
)
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$events = events_get_event(
|
|
||||||
$event['id_evento'],
|
|
||||||
false,
|
|
||||||
is_metaconsole(),
|
|
||||||
$history
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($events !== false) {
|
// Get grouped comments.
|
||||||
$event = $events;
|
$eventsGrouped = db_get_all_rows_sql($sql);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $event['server_id'] > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$eventsGrouped = [];
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $event['server_id'] > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1270,12 +1258,44 @@ if ($dialogue_event_response) {
|
||||||
if ($add_comment === true) {
|
if ($add_comment === true) {
|
||||||
$comment = (string) get_parameter('comment');
|
$comment = (string) get_parameter('comment');
|
||||||
$eventId = (int) get_parameter('event_id');
|
$eventId = (int) get_parameter('event_id');
|
||||||
|
$server_id = 0;
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$server_id = (int) get_parameter('server_id');
|
||||||
|
}
|
||||||
|
|
||||||
// Safe comments for hacks.
|
// Safe comments for hacks.
|
||||||
if (preg_match('/script/i', io_safe_output($comment))) {
|
if (preg_match('/script/i', io_safe_output($comment))) {
|
||||||
$return = false;
|
$return = false;
|
||||||
} else {
|
} else {
|
||||||
$return = events_comment($eventId, $comment, 'Added comment', $meta, $history);
|
try {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node = new Node($server_id);
|
||||||
|
$node->connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = events_comment(
|
||||||
|
$eventId,
|
||||||
|
$comment,
|
||||||
|
'Added comment'
|
||||||
|
);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = false;
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo ($return === true) ? 'comment_ok' : 'comment_error';
|
echo ($return === true) ? 'comment_ok' : 'comment_error';
|
||||||
|
@ -1283,35 +1303,38 @@ if ($add_comment === true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($change_status) {
|
if ($change_status === true) {
|
||||||
$event_ids = get_parameter('event_ids');
|
$event_ids = get_parameter('event_ids');
|
||||||
$new_status = get_parameter('new_status');
|
$new_status = get_parameter('new_status');
|
||||||
|
|
||||||
if ($node_id > 0) {
|
try {
|
||||||
try {
|
if (is_metaconsole() === true
|
||||||
|
&& $node_id > 0
|
||||||
|
) {
|
||||||
$node = new Node($node_id);
|
$node = new Node($node_id);
|
||||||
$node->connect();
|
$node->connect();
|
||||||
$return = events_change_status(
|
|
||||||
explode(',', $event_ids),
|
|
||||||
$new_status,
|
|
||||||
$meta,
|
|
||||||
$history
|
|
||||||
);
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
// Unexistent agent.
|
|
||||||
$node->disconnect();
|
|
||||||
$success = false;
|
|
||||||
echo 'owner_error';
|
|
||||||
} finally {
|
|
||||||
$node->disconnect();
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$return = events_change_status(
|
$return = events_change_status(
|
||||||
explode(',', $event_ids),
|
explode(',', $event_ids),
|
||||||
$new_status,
|
$new_status
|
||||||
$meta,
|
|
||||||
$history
|
|
||||||
);
|
);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $node_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$success = false;
|
||||||
|
echo 'owner_error';
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $node_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($return !== false) {
|
if ($return !== false) {
|
||||||
|
@ -1320,7 +1343,12 @@ if ($change_status) {
|
||||||
echo json_encode(
|
echo json_encode(
|
||||||
[
|
[
|
||||||
'status_title' => $event_st['title'],
|
'status_title' => $event_st['title'],
|
||||||
'status_img' => html_print_image($event_st['img'], true, false, true),
|
'status_img' => html_print_image(
|
||||||
|
$event_st['img'],
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
),
|
||||||
'status' => 'status_ok',
|
'status' => 'status_ok',
|
||||||
'user' => db_get_value(
|
'user' => db_get_value(
|
||||||
'fullname',
|
'fullname',
|
||||||
|
@ -1356,24 +1384,37 @@ if ($change_owner) {
|
||||||
$new_owner = '';
|
$new_owner = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($node_id > 0) {
|
try {
|
||||||
try {
|
if (is_metaconsole() === true
|
||||||
|
&& $node_id > 0
|
||||||
|
) {
|
||||||
$node = new Node($node_id);
|
$node = new Node($node_id);
|
||||||
$node->connect();
|
$node->connect();
|
||||||
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
|
}
|
||||||
} catch (\Exception $e) {
|
|
||||||
// Unexistent agent.
|
$return = events_change_owner(
|
||||||
$node->disconnect();
|
$event_id,
|
||||||
$success = false;
|
$new_owner,
|
||||||
echo 'owner_error';
|
true
|
||||||
} finally {
|
);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $node_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = false;
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $node_id > 0
|
||||||
|
) {
|
||||||
$node->disconnect();
|
$node->disconnect();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($return) {
|
if ($return === true) {
|
||||||
echo 'owner_ok';
|
echo 'owner_ok';
|
||||||
} else {
|
} else {
|
||||||
echo 'owner_error';
|
echo 'owner_error';
|
||||||
|
@ -1427,8 +1468,8 @@ if ($get_extended_event) {
|
||||||
$similar_ids = get_parameter('similar_ids', $event_id);
|
$similar_ids = get_parameter('similar_ids', $event_id);
|
||||||
$group_rep = $filter['group_rep'];
|
$group_rep = $filter['group_rep'];
|
||||||
$event_rep = $event['event_rep'];
|
$event_rep = $event['event_rep'];
|
||||||
$timestamp_first = $event['min_timestamp'];
|
$timestamp_first = $event['timestamp_first'];
|
||||||
$timestamp_last = $event['max_timestamp'];
|
$timestamp_last = $event['timestamp_last'];
|
||||||
$server_id = $event['server_id'];
|
$server_id = $event['server_id'];
|
||||||
if (empty($server_id) && !empty($event['server_name']) && is_metaconsole()) {
|
if (empty($server_id) && !empty($event['server_name']) && is_metaconsole()) {
|
||||||
$server_id = metaconsole_get_id_server($event['server_name']);
|
$server_id = metaconsole_get_id_server($event['server_name']);
|
||||||
|
@ -1521,19 +1562,19 @@ if ($get_extended_event) {
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'EM',
|
'EM',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)) || (tags_checks_event_acl(
|
)) || (tags_checks_event_acl(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'EW',
|
'EW',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)) || (tags_checks_event_acl(
|
)) || (tags_checks_event_acl(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'ER',
|
'ER',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)))
|
)))
|
||||||
) {
|
) {
|
||||||
$tabs .= "<li><a href='#extended_event_responses_page' id='link_responses'>".html_print_image(
|
$tabs .= "<li><a href='#extended_event_responses_page' id='link_responses'>".html_print_image(
|
||||||
|
@ -1590,19 +1631,19 @@ if ($get_extended_event) {
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'EM',
|
'EM',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)) || (tags_checks_event_acl(
|
)) || (tags_checks_event_acl(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'EW',
|
'EW',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)) || (tags_checks_event_acl(
|
)) || (tags_checks_event_acl(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'ER',
|
'ER',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)))
|
)))
|
||||||
) {
|
) {
|
||||||
$responses = events_page_responses($event);
|
$responses = events_page_responses($event);
|
||||||
|
@ -1620,6 +1661,7 @@ if ($get_extended_event) {
|
||||||
|
|
||||||
$details = events_page_details($event, $server);
|
$details = events_page_details($event, $server);
|
||||||
|
|
||||||
|
$related = '';
|
||||||
if (events_has_extended_info($event['id_evento']) === true) {
|
if (events_has_extended_info($event['id_evento']) === true) {
|
||||||
$related = events_page_related($event, $server);
|
$related = events_page_related($event, $server);
|
||||||
}
|
}
|
||||||
|
@ -1721,8 +1763,7 @@ if ($get_extended_event) {
|
||||||
data : {
|
data : {
|
||||||
page: "include/ajax/events",
|
page: "include/ajax/events",
|
||||||
get_comments: 1,
|
get_comments: 1,
|
||||||
meta: '.(int) is_metaconsole().',
|
event: '.json_encode($event).'
|
||||||
event: '.json_encode($event).',
|
|
||||||
},
|
},
|
||||||
dataType : "html",
|
dataType : "html",
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
|
|
|
@ -11661,53 +11661,16 @@ function get_events_with_user($trash1, $trash2, $other, $returnType, $user_in_db
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch ($config['dbtype']) {
|
db_process_sql('SET group_concat_max_len = 9999999');
|
||||||
case 'mysql':
|
|
||||||
db_process_sql('SET group_concat_max_len = 9999999');
|
|
||||||
|
|
||||||
$sql = "SELECT *, MAX(id_evento) AS id_evento,
|
$sql = "SELECT *, MAX(id_evento) AS id_evento,
|
||||||
GROUP_CONCAT(DISTINCT user_comment SEPARATOR '') AS user_comment,
|
GROUP_CONCAT(DISTINCT user_comment SEPARATOR '') AS user_comment,
|
||||||
MIN(estado) AS min_estado, MAX(estado) AS max_estado,
|
MIN(estado) AS min_estado, MAX(estado) AS max_estado,
|
||||||
COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_rep
|
COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_last
|
||||||
FROM ".$table_events.'
|
FROM ".$table_events.'
|
||||||
WHERE 1=1 '.$sql_post.'
|
WHERE 1=1 '.$sql_post.'
|
||||||
GROUP BY evento, id_agentmodule
|
GROUP BY evento, id_agentmodule
|
||||||
ORDER BY timestamp_rep DESC';
|
ORDER BY timestamp_last DESC';
|
||||||
break;
|
|
||||||
|
|
||||||
case 'postgresql':
|
|
||||||
$sql = "SELECT *, MAX(id_evento) AS id_evento,
|
|
||||||
array_to_string(array_agg(DISTINCT user_comment), '') AS user_comment,
|
|
||||||
MIN(estado) AS min_estado, MAX(estado) AS max_estado,
|
|
||||||
COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_rep
|
|
||||||
FROM ".$table_events.'
|
|
||||||
WHERE 1=1 '.$sql_post.'
|
|
||||||
GROUP BY evento, id_agentmodule
|
|
||||||
ORDER BY timestamp_rep DESC';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'oracle':
|
|
||||||
$set = [];
|
|
||||||
// TODO: Remove duplicate user comments
|
|
||||||
$sql = 'SELECT a.*, b.event_rep, b.timestamp_rep
|
|
||||||
FROM (SELECT *
|
|
||||||
FROM tevento
|
|
||||||
WHERE 1=1 '.$sql_post.") a,
|
|
||||||
(SELECT MAX (id_evento) AS id_evento,
|
|
||||||
to_char(evento) AS evento, id_agentmodule,
|
|
||||||
COUNT(*) AS event_rep, MIN(estado) AS min_estado,
|
|
||||||
MAX(estado) AS max_estado,
|
|
||||||
LISTAGG(user_comment, '') AS user_comment,
|
|
||||||
MAX(utimestamp) AS timestamp_rep
|
|
||||||
FROM ".$table_events.'
|
|
||||||
WHERE 1=1 '.$sql_post.'
|
|
||||||
GROUP BY to_char(evento), id_agentmodule) b
|
|
||||||
WHERE a.id_evento=b.id_evento AND
|
|
||||||
to_char(a.evento)=to_char(b.evento) AND
|
|
||||||
a.id_agentmodule=b.id_agentmodule';
|
|
||||||
$sql = oracle_recode_query($sql, $set);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($other['type'] == 'string') {
|
if ($other['type'] == 'string') {
|
||||||
|
@ -13500,9 +13463,7 @@ function api_set_create_event($id, $trash1, $other, $returnType)
|
||||||
$res = events_comment(
|
$res = events_comment(
|
||||||
$return,
|
$return,
|
||||||
$user_comment,
|
$user_comment,
|
||||||
'Added comment',
|
'Added comment'
|
||||||
is_metaconsole(),
|
|
||||||
$config['history_db_enabled']
|
|
||||||
);
|
);
|
||||||
if ($other['data'][13] != '') {
|
if ($other['data'][13] != '') {
|
||||||
// owner user
|
// owner user
|
||||||
|
@ -13512,9 +13473,7 @@ function api_set_create_event($id, $trash1, $other, $returnType)
|
||||||
events_change_owner(
|
events_change_owner(
|
||||||
$return,
|
$return,
|
||||||
$owner_user,
|
$owner_user,
|
||||||
true,
|
true
|
||||||
is_metaconsole(),
|
|
||||||
$config['history_db_enabled']
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13570,9 +13529,7 @@ function api_set_add_event_comment($id, $thrash2, $other, $thrash3)
|
||||||
$status = events_comment(
|
$status = events_comment(
|
||||||
$id,
|
$id,
|
||||||
$comment,
|
$comment,
|
||||||
'Added comment',
|
'Added comment'
|
||||||
$meta,
|
|
||||||
$history
|
|
||||||
);
|
);
|
||||||
if (is_error($status)) {
|
if (is_error($status)) {
|
||||||
returnError(
|
returnError(
|
||||||
|
|
|
@ -235,7 +235,7 @@ function db_pandora_audit($accion, $descripcion, $user_id=false, $ip=true, $info
|
||||||
if (isset($config['remote_addr']) === true) {
|
if (isset($config['remote_addr']) === true) {
|
||||||
$ip = $config['remote_addr'];
|
$ip = $config['remote_addr'];
|
||||||
} else {
|
} else {
|
||||||
if ($_SERVER['REMOTE_ADDR']) {
|
if (isset($_SERVER['REMOTE_ADDR']) === true) {
|
||||||
$ip = $_SERVER['REMOTE_ADDR'];
|
$ip = $_SERVER['REMOTE_ADDR'];
|
||||||
} else {
|
} else {
|
||||||
$ip = __('N/A');
|
$ip = __('N/A');
|
||||||
|
|
|
@ -458,11 +458,10 @@ function events_delete($id_evento, $filter=null, $history=false, $force_node=fal
|
||||||
* @param integer $id_evento Master event.
|
* @param integer $id_evento Master event.
|
||||||
* @param integer $status Target status.
|
* @param integer $status Target status.
|
||||||
* @param array $filter Optional. Filter options.
|
* @param array $filter Optional. Filter options.
|
||||||
* @param boolean $history Apply on historical table.
|
|
||||||
*
|
*
|
||||||
* @return integer Events validated or false if error.
|
* @return integer Events validated or false if error.
|
||||||
*/
|
*/
|
||||||
function events_update_status($id_evento, $status, $filter=null, $history=false)
|
function events_update_status($id_evento, $status, $filter=null)
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
@ -558,7 +557,7 @@ function events_update_status($id_evento, $status, $filter=null, $history=false)
|
||||||
|
|
||||||
$result = db_process_sql($update_sql);
|
$result = db_process_sql($update_sql);
|
||||||
|
|
||||||
if ($result) {
|
if ($result !== false) {
|
||||||
switch ($status) {
|
switch ($status) {
|
||||||
case EVENT_STATUS_NEW:
|
case EVENT_STATUS_NEW:
|
||||||
$status_string = 'New';
|
$status_string = 'New';
|
||||||
|
@ -568,9 +567,7 @@ function events_update_status($id_evento, $status, $filter=null, $history=false)
|
||||||
events_change_owner(
|
events_change_owner(
|
||||||
$id_evento,
|
$id_evento,
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
false,
|
false
|
||||||
is_metaconsole() ? true : false,
|
|
||||||
$history
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$status_string = 'Validated';
|
$status_string = 'Validated';
|
||||||
|
@ -856,7 +853,7 @@ function events_get_all(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$groups = $filter['id_group_filter'];
|
$groups = isset($filter['id_group_filter']) === true ? $filter['id_group_filter'] : null;
|
||||||
if ((bool) $user_is_admin === false
|
if ((bool) $user_is_admin === false
|
||||||
&& isset($groups) === false
|
&& isset($groups) === false
|
||||||
) {
|
) {
|
||||||
|
@ -1345,7 +1342,7 @@ function events_get_all(
|
||||||
// Pagination.
|
// Pagination.
|
||||||
$pagination = '';
|
$pagination = '';
|
||||||
if (is_metaconsole() === true && empty($id_server) === true) {
|
if (is_metaconsole() === true && empty($id_server) === true) {
|
||||||
// TODO: XXX TIP. capturra el error.
|
// TODO: XXX TIP. captura el error.
|
||||||
$pagination = sprintf(
|
$pagination = sprintf(
|
||||||
' LIMIT %d',
|
' LIMIT %d',
|
||||||
$config['max_number_of_events_per_node']
|
$config['max_number_of_events_per_node']
|
||||||
|
@ -1354,7 +1351,6 @@ function events_get_all(
|
||||||
$pagination = sprintf(' LIMIT %d OFFSET %d', $limit, $offset);
|
$pagination = sprintf(' LIMIT %d OFFSET %d', $limit, $offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
$extra = '';
|
|
||||||
// Group by.
|
// Group by.
|
||||||
$group_by = 'GROUP BY ';
|
$group_by = 'GROUP BY ';
|
||||||
$tagente_join = 'LEFT';
|
$tagente_join = 'LEFT';
|
||||||
|
@ -1367,8 +1363,7 @@ function events_get_all(
|
||||||
|
|
||||||
case '1':
|
case '1':
|
||||||
// Group by events.
|
// Group by events.
|
||||||
$group_by .= 'te.estado, te.event_type, te.id_agente, te.id_agentmodule';
|
$group_by .= 'te.evento, te.id_agente, te.id_agentmodule, te.estado';
|
||||||
$group_by .= $extra;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '2':
|
case '2':
|
||||||
|
@ -1584,9 +1579,9 @@ function events_get_all(
|
||||||
// TODO: XXX;
|
// TODO: XXX;
|
||||||
hd($sort_field, true);
|
hd($sort_field, true);
|
||||||
hd($order, true);
|
hd($order, true);
|
||||||
|
|
||||||
if ($sort_field !== 'agent_name'
|
if ($sort_field !== 'agent_name'
|
||||||
&& $sort_field !== 'server_name'
|
&& $sort_field !== 'server_name'
|
||||||
|
&& $sort_field !== 'timestamp'
|
||||||
) {
|
) {
|
||||||
$sort_field = explode('.', $sort_field)[1];
|
$sort_field = explode('.', $sort_field)[1];
|
||||||
if ($sort_field === 'user_comment') {
|
if ($sort_field === 'user_comment') {
|
||||||
|
@ -1736,9 +1731,7 @@ function events_get_event($id, $fields=false, $meta=false, $history=false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$table = 'tevento';
|
$event = db_get_row('tevento', 'id_evento', $id, $fields);
|
||||||
|
|
||||||
$event = db_get_row($table, 'id_evento', $id, $fields);
|
|
||||||
if ((bool) check_acl($config['id_user'], $event['id_grupo'], 'ER') === false) {
|
if ((bool) check_acl($config['id_user'], $event['id_grupo'], 'ER') === false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1752,31 +1745,24 @@ function events_get_event($id, $fields=false, $meta=false, $history=false)
|
||||||
*
|
*
|
||||||
* @param mixed $id_event Event ID or array of events.
|
* @param mixed $id_event Event ID or array of events.
|
||||||
* @param integer $new_status New status of the event.
|
* @param integer $new_status New status of the event.
|
||||||
* @param boolean $meta Metaconsole mode flag.
|
|
||||||
* @param boolean $history History mode flag.
|
|
||||||
*
|
*
|
||||||
* @return boolean Whether or not it was successful
|
* @return boolean Whether or not it was successful
|
||||||
*/
|
*/
|
||||||
function events_change_status(
|
function events_change_status(
|
||||||
$id_event,
|
$id_event,
|
||||||
$new_status,
|
$new_status
|
||||||
$meta=false,
|
|
||||||
$history=false
|
|
||||||
) {
|
) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$event_table = 'tevento';
|
// Cleans up the selection for all unwanted
|
||||||
|
// values also casts any single values as an array.
|
||||||
// Cleans up the selection for all unwanted values also casts any single values as an array.
|
|
||||||
$id_event = (array) safe_int($id_event, 1);
|
$id_event = (array) safe_int($id_event, 1);
|
||||||
|
|
||||||
// Update ack info if the new status is validated.
|
// Update ack info if the new status is validated.
|
||||||
if ($new_status == EVENT_STATUS_VALIDATED) {
|
$ack_utimestamp = 0;
|
||||||
|
$ack_user = $config['id_user'];
|
||||||
|
if ((int) $new_status === EVENT_STATUS_VALIDATED) {
|
||||||
$ack_utimestamp = time();
|
$ack_utimestamp = time();
|
||||||
$ack_user = $config['id_user'];
|
|
||||||
} else {
|
|
||||||
$acl_utimestamp = 0;
|
|
||||||
$ack_user = $config['id_user'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($new_status) {
|
switch ($new_status) {
|
||||||
|
@ -1800,16 +1786,11 @@ function events_change_status(
|
||||||
$alerts = [];
|
$alerts = [];
|
||||||
|
|
||||||
foreach ($id_event as $k => $id) {
|
foreach ($id_event as $k => $id) {
|
||||||
if ($meta) {
|
$event_group = events_get_group($id);
|
||||||
$event_group = events_meta_get_group($id, $history);
|
$event = events_get_event($id);
|
||||||
$event = events_meta_get_event($id, false, $history);
|
if ($event['id_alert_am'] > 0
|
||||||
$server_id = $event['server_id'];
|
&& in_array($event['id_alert_am'], $alerts) === false
|
||||||
} else {
|
) {
|
||||||
$event_group = events_get_group($id);
|
|
||||||
$event = events_get_event($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($event['id_alert_am'] > 0 && !in_array($event['id_alert_am'], $alerts)) {
|
|
||||||
$alerts[] = $event['id_alert_am'];
|
$alerts[] = $event['id_alert_am'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1823,7 +1804,7 @@ function events_change_status(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($id_event)) {
|
if (empty($id_event) === true) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1834,7 +1815,7 @@ function events_change_status(
|
||||||
];
|
];
|
||||||
|
|
||||||
$ret = db_process_sql_update(
|
$ret = db_process_sql_update(
|
||||||
$event_table,
|
'tevento',
|
||||||
$values,
|
$values,
|
||||||
['id_evento' => $id_event]
|
['id_evento' => $id_event]
|
||||||
);
|
);
|
||||||
|
@ -1843,51 +1824,40 @@ function events_change_status(
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($new_status == EVENT_STATUS_VALIDATED) {
|
if ($new_status === EVENT_STATUS_VALIDATED) {
|
||||||
events_change_owner(
|
events_change_owner(
|
||||||
$id_event,
|
$id_event,
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
false,
|
false
|
||||||
$meta,
|
|
||||||
$history
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
events_comment(
|
events_comment(
|
||||||
$id_event,
|
$id_event,
|
||||||
'',
|
'',
|
||||||
'Change status to '.$status_string,
|
'Change status to '.$status_string
|
||||||
$meta,
|
|
||||||
$history
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($meta && !empty($alerts)) {
|
|
||||||
$server = metaconsole_get_connection_by_id($server_id);
|
|
||||||
metaconsole_connect($server);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Put the alerts in standby or not depends the new status.
|
// Put the alerts in standby or not depends the new status.
|
||||||
foreach ($alerts as $alert) {
|
if (empty($alerts) === false) {
|
||||||
switch ($new_status) {
|
foreach ($alerts as $alert) {
|
||||||
case EVENT_NEW:
|
switch ($new_status) {
|
||||||
case EVENT_VALIDATE:
|
case EVENT_NEW:
|
||||||
alerts_agent_module_standby($alert, 0);
|
case EVENT_VALIDATE:
|
||||||
break;
|
alerts_agent_module_standby($alert, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
case EVENT_PROCESS:
|
case EVENT_PROCESS:
|
||||||
alerts_agent_module_standby($alert, 1);
|
alerts_agent_module_standby($alert, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Ignore.
|
// Ignore.
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($meta && !empty($alerts)) {
|
|
||||||
metaconsole_restore_db();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1908,24 +1878,15 @@ function events_change_status(
|
||||||
function events_change_owner(
|
function events_change_owner(
|
||||||
$id_event,
|
$id_event,
|
||||||
$new_owner=false,
|
$new_owner=false,
|
||||||
$force=false,
|
$force=false
|
||||||
$meta=false,
|
|
||||||
$history=false
|
|
||||||
) {
|
) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$event_table = 'tevento';
|
|
||||||
|
|
||||||
// Cleans up the selection for all unwanted values also casts any single
|
// Cleans up the selection for all unwanted values also casts any single
|
||||||
// values as an array.
|
// values as an array.
|
||||||
$id_event = (array) safe_int($id_event, 1);
|
$id_event = (array) safe_int($id_event, 1);
|
||||||
|
|
||||||
foreach ($id_event as $k => $id) {
|
foreach ($id_event as $k => $id) {
|
||||||
if ($meta) {
|
$event_group = events_get_group($id);
|
||||||
$event_group = events_meta_get_group($id, $history);
|
|
||||||
} else {
|
|
||||||
$event_group = events_get_group($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (check_acl($config['id_user'], $event_group, 'EW') == 0) {
|
if (check_acl($config['id_user'], $event_group, 'EW') == 0) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
|
@ -1936,7 +1897,7 @@ function events_change_owner(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($id_event)) {
|
if (empty($id_event) === true) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1944,17 +1905,13 @@ function events_change_owner(
|
||||||
$new_owner = $config['id_user'];
|
$new_owner = $config['id_user'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only generate comment when is forced (sometimes is owner changes when
|
// Only generate comment when is forced
|
||||||
// comment).
|
// (sometimes is owner changes when comment).
|
||||||
if ($force) {
|
if ($force === true) {
|
||||||
events_comment(
|
events_comment(
|
||||||
$id_event,
|
$id_event,
|
||||||
'',
|
'',
|
||||||
'Change owner to '.$new_owner,
|
'Change owner to '.$new_owner
|
||||||
$meta,
|
|
||||||
$history,
|
|
||||||
true,
|
|
||||||
false
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1963,12 +1920,12 @@ function events_change_owner(
|
||||||
$where = ['id_evento' => $id_event];
|
$where = ['id_evento' => $id_event];
|
||||||
|
|
||||||
// If not force, add to where if owner_user = ''.
|
// If not force, add to where if owner_user = ''.
|
||||||
if (!$force) {
|
if ($force === false) {
|
||||||
$where['owner_user'] = '';
|
$where['owner_user'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret = db_process_sql_update(
|
$ret = db_process_sql_update(
|
||||||
$event_table,
|
'tevento',
|
||||||
$values,
|
$values,
|
||||||
$where,
|
$where,
|
||||||
'AND',
|
'AND',
|
||||||
|
@ -1986,41 +1943,25 @@ function events_change_owner(
|
||||||
/**
|
/**
|
||||||
* Comment events in a transresponse
|
* Comment events in a transresponse
|
||||||
*
|
*
|
||||||
* @param mixed $id_event Event ID or array of events.
|
* @param mixed $id_event Event ID or array of events.
|
||||||
* @param string $comment Comment to be registered.
|
* @param string $comment Comment to be registered.
|
||||||
* @param string $action Action performed with comment. By default just add
|
* @param string $action Action performed with comment. By default just add
|
||||||
* a comment.
|
* a comment.
|
||||||
* @param boolean $meta Flag of metaconsole mode.
|
|
||||||
* @param boolean $history Flag of history mode.
|
|
||||||
* @param boolean $similars Similars.
|
|
||||||
* @param boolean $update_owner Update owner.
|
|
||||||
*
|
*
|
||||||
* @return boolean Whether or not it was successful
|
* @return boolean Whether or not it was successful
|
||||||
*/
|
*/
|
||||||
function events_comment(
|
function events_comment(
|
||||||
$id_event,
|
$id_event,
|
||||||
$comment='',
|
$comment='',
|
||||||
$action='Added comment',
|
$action='Added comment'
|
||||||
$meta=false,
|
|
||||||
$history=false,
|
|
||||||
$similars=true,
|
|
||||||
$update_owner=true
|
|
||||||
) {
|
) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$event_table = 'tevento';
|
|
||||||
|
|
||||||
// Cleans up the selection for all unwanted values also casts any single
|
// Cleans up the selection for all unwanted values also casts any single
|
||||||
// values as an array.
|
// values as an array.
|
||||||
$id_event = (array) safe_int($id_event, 1);
|
$id_event = (array) safe_int($id_event, 1);
|
||||||
|
// Check ACL.
|
||||||
foreach ($id_event as $k => $id) {
|
foreach ($id_event as $k => $id) {
|
||||||
if ($meta) {
|
$event_group = events_get_group($id);
|
||||||
$event_group = events_meta_get_group($id, $history);
|
|
||||||
} else {
|
|
||||||
$event_group = events_get_group($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (check_acl($config['id_user'], $event_group, 'EW') == 0) {
|
if (check_acl($config['id_user'], $event_group, 'EW') == 0) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
AUDIT_LOG_ACL_VIOLATION,
|
AUDIT_LOG_ACL_VIOLATION,
|
||||||
|
@ -2031,35 +1972,38 @@ function events_comment(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($id_event)) {
|
if (empty($id_event) === true) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($update_owner) {
|
|
||||||
// If the event hasn't owner, assign the user as owner.
|
|
||||||
events_change_owner($id_event);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the current event comments.
|
// Get the current event comments.
|
||||||
$first_event = $id_event;
|
$first_event = $id_event;
|
||||||
if (is_array($id_event)) {
|
if (is_array($id_event) === true) {
|
||||||
$first_event = reset($id_event);
|
$first_event = reset($id_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
$event_comments = mysql_db_process_sql(
|
$sql = sprintf(
|
||||||
'SELECT user_comment FROM '.$event_table.' WHERE id_evento = '.$first_event,
|
'SELECT user_comment
|
||||||
'affected_rows',
|
FROM tevento
|
||||||
'',
|
WHERE id_evento = %d',
|
||||||
false
|
$first_event
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$event_comments = db_get_all_rows_sql($sql);
|
||||||
$event_comments_array = [];
|
$event_comments_array = [];
|
||||||
|
|
||||||
if ($event_comments[0]['user_comment'] == '') {
|
if ($event_comments[0]['user_comment'] == '') {
|
||||||
$comments_format = 'new';
|
$comments_format = 'new';
|
||||||
} else {
|
} else {
|
||||||
// If comments are not stored in json, the format is old.
|
// If comments are not stored in json, the format is old.
|
||||||
$event_comments[0]['user_comment'] = str_replace(["\n", '
'], '<br>', $event_comments[0]['user_comment']);
|
$event_comments[0]['user_comment'] = str_replace(
|
||||||
|
[
|
||||||
|
"\n",
|
||||||
|
'
',
|
||||||
|
],
|
||||||
|
'<br>',
|
||||||
|
$event_comments[0]['user_comment']
|
||||||
|
);
|
||||||
$event_comments_array = json_decode($event_comments[0]['user_comment']);
|
$event_comments_array = json_decode($event_comments[0]['user_comment']);
|
||||||
|
|
||||||
if (empty($event_comments_array) === true) {
|
if (empty($event_comments_array) === true) {
|
||||||
|
@ -2083,7 +2027,7 @@ function events_comment(
|
||||||
|
|
||||||
// Update comment.
|
// Update comment.
|
||||||
$ret = db_process_sql_update(
|
$ret = db_process_sql_update(
|
||||||
$event_table,
|
'tevento',
|
||||||
['user_comment' => $event_comments],
|
['user_comment' => $event_comments],
|
||||||
['id_evento' => implode(',', $id_event)]
|
['id_evento' => implode(',', $id_event)]
|
||||||
);
|
);
|
||||||
|
@ -2110,7 +2054,7 @@ function events_comment(
|
||||||
'UPDATE %s
|
'UPDATE %s
|
||||||
SET user_comment = concat("%s", user_comment)
|
SET user_comment = concat("%s", user_comment)
|
||||||
WHERE id_evento in (%s)',
|
WHERE id_evento in (%s)',
|
||||||
$event_table,
|
'tevento',
|
||||||
$comment,
|
$comment,
|
||||||
implode(',', $id_event)
|
implode(',', $id_event)
|
||||||
);
|
);
|
||||||
|
@ -3284,12 +3228,12 @@ function events_page_responses($event, $childrens_ids=[])
|
||||||
$status_blocked
|
$status_blocked
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!$status_blocked) {
|
if ($status_blocked === false) {
|
||||||
$data[2] .= html_print_button(
|
$data[2] .= html_print_button(
|
||||||
__('Update'),
|
__('Update'),
|
||||||
'status_button',
|
'status_button',
|
||||||
false,
|
false,
|
||||||
'event_change_status(\''.$event['similar_ids'].'\');',
|
'event_change_status(\''.$event['similar_ids'].'\','.$event['server_id'].');',
|
||||||
'class="sub next w70p"',
|
'class="sub next w70p"',
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
@ -4764,6 +4708,10 @@ function events_page_comments($event, $ajax=false, $groupedComments=[])
|
||||||
$table_comments->head = [];
|
$table_comments->head = [];
|
||||||
$table_comments->class = 'table_modal_alternate';
|
$table_comments->class = 'table_modal_alternate';
|
||||||
|
|
||||||
|
if (isset($event['user_comment']) === false) {
|
||||||
|
$event['user_comment'] = '';
|
||||||
|
}
|
||||||
|
|
||||||
$comments = (empty($groupedComments) === true) ? $event['user_comment'] : $groupedComments;
|
$comments = (empty($groupedComments) === true) ? $event['user_comment'] : $groupedComments;
|
||||||
|
|
||||||
if (empty($comments) === true) {
|
if (empty($comments) === true) {
|
||||||
|
@ -4793,8 +4741,12 @@ function events_page_comments($event, $ajax=false, $groupedComments=[])
|
||||||
// Plain comments. Can be improved.
|
// Plain comments. Can be improved.
|
||||||
$sortedCommentsArray = [];
|
$sortedCommentsArray = [];
|
||||||
foreach ($comments_array as $comm) {
|
foreach ($comments_array as $comm) {
|
||||||
foreach ($comm as $subComm) {
|
if (isset($comm) === true
|
||||||
$sortedCommentsArray[] = $subComm;
|
&& empty($comm) === false
|
||||||
|
) {
|
||||||
|
foreach ($comm as $subComm) {
|
||||||
|
$sortedCommentsArray[] = $subComm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4820,7 +4772,7 @@ function events_page_comments($event, $ajax=false, $groupedComments=[])
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($comments_array as $comm) {
|
foreach ($comments_array as $comm) {
|
||||||
$comments_format = (empty($comm) === true) ? 'old' : 'new';
|
$comments_format = (empty($comm) === true && is_array($comments) === false) ? 'old' : 'new';
|
||||||
|
|
||||||
switch ($comments_format) {
|
switch ($comments_format) {
|
||||||
case 'new':
|
case 'new':
|
||||||
|
@ -4895,13 +4847,13 @@ function events_page_comments($event, $ajax=false, $groupedComments=[])
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'EM',
|
'EM',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
)) || (tags_checks_event_acl(
|
)) || (tags_checks_event_acl(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$event['id_grupo'],
|
$event['id_grupo'],
|
||||||
'EW',
|
'EW',
|
||||||
$event['clean_tags'],
|
$event['clean_tags'],
|
||||||
$childrens_ids
|
[]
|
||||||
))) && $config['show_events_in_local'] == false || $config['event_replication'] == false
|
))) && $config['show_events_in_local'] == false || $config['event_replication'] == false
|
||||||
) {
|
) {
|
||||||
$event['evento'] = io_safe_output($event['evento']);
|
$event['evento'] = io_safe_output($event['evento']);
|
||||||
|
@ -5047,7 +4999,7 @@ function events_get_sql_order($sort_field='timestamp', $sort='DESC', $group_rep=
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'timestamp':
|
case 'timestamp':
|
||||||
$sort_field_translated = ($group_rep == 0) ? 'timestamp' : 'timestamp_rep';
|
$sort_field_translated = ($group_rep == 0) ? 'timestamp' : 'timestamp_last';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'user_id':
|
case 'user_id':
|
||||||
|
|
|
@ -10637,7 +10637,7 @@ function reporting_get_agents_detailed_event(
|
||||||
'type' => $e['event_type'],
|
'type' => $e['event_type'],
|
||||||
'criticity' => $e['criticity'],
|
'criticity' => $e['criticity'],
|
||||||
'validated_by' => $e['id_usuario'],
|
'validated_by' => $e['id_usuario'],
|
||||||
'timestamp' => $e['timestamp_rep'],
|
'timestamp' => $e['timestamp_last'],
|
||||||
'id_evento' => $e['id_evento'],
|
'id_evento' => $e['id_evento'],
|
||||||
'custom_data' => ($show_custom_data === true) ? $e['custom_data'] : '',
|
'custom_data' => ($show_custom_data === true) ? $e['custom_data'] : '',
|
||||||
];
|
];
|
||||||
|
|
|
@ -1156,7 +1156,7 @@ function reporting_html_event_report_group($table, $item, $pdf=0)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($item['show_summary_group']) {
|
if ($item['show_summary_group']) {
|
||||||
$data[] = '<font class="font_6pt">'.date($config['date_format'], $event['timestamp_rep']).'</font>';
|
$data[] = '<font class="font_6pt">'.date($config['date_format'], $event['timestamp_last']).'</font>';
|
||||||
} else {
|
} else {
|
||||||
$data[] = '<font class="font_6pt">'.date($config['date_format'], strtotime($event['timestamp'])).'</font>';
|
$data[] = '<font class="font_6pt">'.date($config['date_format'], strtotime($event['timestamp'])).'</font>';
|
||||||
}
|
}
|
||||||
|
@ -1381,7 +1381,7 @@ function reporting_html_event_report_module($table, $item, $pdf=0)
|
||||||
$data[3] = get_priority_name($event['criticity']);
|
$data[3] = get_priority_name($event['criticity']);
|
||||||
if ($show_summary_group) {
|
if ($show_summary_group) {
|
||||||
$data[4] = $event['event_rep'];
|
$data[4] = $event['event_rep'];
|
||||||
$data[5] = date($config['date_format'], $event['timestamp_rep']);
|
$data[5] = date($config['date_format'], $event['timestamp_last']);
|
||||||
} else {
|
} else {
|
||||||
$data[4] = date($config['date_format'], strtotime($event['timestamp']));
|
$data[4] = date($config['date_format'], strtotime($event['timestamp']));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1480,21 +1480,6 @@ function dashboardShowEventDialog(settings) {
|
||||||
})
|
})
|
||||||
.show();
|
.show();
|
||||||
|
|
||||||
$.post({
|
|
||||||
url: settings.ajaxUrl,
|
|
||||||
data: {
|
|
||||||
page: "include/ajax/events",
|
|
||||||
get_comments: 1,
|
|
||||||
event: settings.event,
|
|
||||||
filter: []
|
|
||||||
},
|
|
||||||
dataType: "html",
|
|
||||||
success: function(data) {
|
|
||||||
$("#extended_event_comments_page").empty();
|
|
||||||
$("#extended_event_comments_page").html(data);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//$("#refrcounter").countdown("pause");
|
//$("#refrcounter").countdown("pause");
|
||||||
//$("div.vc-countdown").countdown("pause");
|
//$("div.vc-countdown").countdown("pause");
|
||||||
|
|
||||||
|
|
|
@ -81,20 +81,6 @@ function show_event_dialog(event, dialog_page, result) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.show();
|
.show();
|
||||||
$.post({
|
|
||||||
url: "ajax.php",
|
|
||||||
data: {
|
|
||||||
page: "include/ajax/events",
|
|
||||||
get_comments: 1,
|
|
||||||
event: event,
|
|
||||||
filter: values
|
|
||||||
},
|
|
||||||
dataType: "html",
|
|
||||||
success: function(data) {
|
|
||||||
$("#extended_event_comments_page").empty();
|
|
||||||
$("#extended_event_comments_page").html(data);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#refrcounter").countdown("pause");
|
$("#refrcounter").countdown("pause");
|
||||||
$("div.vc-countdown").countdown("pause");
|
$("div.vc-countdown").countdown("pause");
|
||||||
|
@ -472,11 +458,8 @@ function perform_response_massive(response, response_id, out_iterator) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Change the status of an event to new, in process or validated.
|
// Change the status of an event to new, in process or validated.
|
||||||
function event_change_status(event_ids) {
|
function event_change_status(event_ids, node_id) {
|
||||||
var new_status = $("#estado").val();
|
var new_status = $("#estado").val();
|
||||||
var meta = $("#hidden-meta").val();
|
|
||||||
var history = $("#hidden-history").val();
|
|
||||||
var node_id = $("#hidden-node_id").val();
|
|
||||||
|
|
||||||
$("#button-status_button").attr("disabled", "disabled");
|
$("#button-status_button").attr("disabled", "disabled");
|
||||||
$("#response_loading").show();
|
$("#response_loading").show();
|
||||||
|
@ -487,13 +470,10 @@ function event_change_status(event_ids) {
|
||||||
change_status: 1,
|
change_status: 1,
|
||||||
event_ids: event_ids,
|
event_ids: event_ids,
|
||||||
new_status: new_status,
|
new_status: new_status,
|
||||||
meta: meta,
|
node_id: node_id
|
||||||
node_id: node_id,
|
|
||||||
history: history
|
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: $("#hidden-ajax_file").val(),
|
url: $("#hidden-ajax_file").val(),
|
||||||
async: true,
|
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$("#button-status_button").removeAttr("disabled");
|
$("#button-status_button").removeAttr("disabled");
|
||||||
|
@ -607,10 +587,6 @@ function event_comment(current_event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var comment = $("#textarea_comment").val();
|
var comment = $("#textarea_comment").val();
|
||||||
var meta = 0;
|
|
||||||
if ($("#hidden-meta").val() != undefined) {
|
|
||||||
meta = $("#hidden-meta").val();
|
|
||||||
}
|
|
||||||
|
|
||||||
var history = 0;
|
var history = 0;
|
||||||
if ($("#hidden-history").val() != undefined) {
|
if ($("#hidden-history").val() != undefined) {
|
||||||
|
@ -631,7 +607,7 @@ function event_comment(current_event) {
|
||||||
params.push("event_id=" + event.id_evento);
|
params.push("event_id=" + event.id_evento);
|
||||||
}
|
}
|
||||||
params.push("comment=" + comment);
|
params.push("comment=" + comment);
|
||||||
params.push("meta=" + meta);
|
params.push("server_id=" + event.server_id);
|
||||||
params.push("history=" + history);
|
params.push("history=" + history);
|
||||||
|
|
||||||
$("#button-comment_button").attr("disabled", "disabled");
|
$("#button-comment_button").attr("disabled", "disabled");
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
|
use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||||
|
|
||||||
class Events
|
class Events
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -68,7 +70,7 @@ class Events
|
||||||
{
|
{
|
||||||
$system = System::getInstance();
|
$system = System::getInstance();
|
||||||
|
|
||||||
if (!$this->correct_acl) {
|
if ($this->correct_acl === false) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
switch ($parameter2) {
|
switch ($parameter2) {
|
||||||
|
@ -121,7 +123,7 @@ class Events
|
||||||
$status_icon = html_print_image($img_st, true, false, false, false, false, true);
|
$status_icon = html_print_image($img_st, true, false, false, false, false, true);
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
$row[] = '<b class="ui-table-cell-label">'.__('Event Name').'</b><a href="#" onclick="openDetails('.$event['id_evento'].')"><div class="event_name">'.io_safe_output(str_replace([' ', ''], ' ', $event['evento'])).'</div></a>';
|
$row[] = '<b class="ui-table-cell-label">'.__('Event Name').'</b><a href="#" onclick="openDetails('.$event['id_evento'].','.$event['server_id'].')"><div class="event_name">'.io_safe_output(str_replace([' ', ''], ' ', $event['evento'])).'</div></a>';
|
||||||
|
|
||||||
if ($event['id_agente'] == 0) {
|
if ($event['id_agente'] == 0) {
|
||||||
$agent_name = __('System');
|
$agent_name = __('System');
|
||||||
|
@ -130,7 +132,7 @@ class Events
|
||||||
}
|
}
|
||||||
|
|
||||||
$row_1 = '<span class="events_agent">'.$agent_name.'</span>';
|
$row_1 = '<span class="events_agent">'.$agent_name.'</span>';
|
||||||
$row_1 .= '<span class="events_timestamp">'.ui_print_timestamp($event['timestamp_rep'], true, ['units' => 'tiny']).$status_icon.'</span>';
|
$row_1 .= '<span class="events_timestamp">'.ui_print_timestamp($event['timestamp_last'], true, ['units' => 'tiny']).$status_icon.'</span>';
|
||||||
|
|
||||||
$row[] = $row_1;
|
$row[] = $row_1;
|
||||||
|
|
||||||
|
@ -139,179 +141,279 @@ class Events
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode(['end' => $end, 'events' => $events]);
|
echo json_encode(['end' => $end, 'events' => $events]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'get_detail_event':
|
case 'get_detail_event':
|
||||||
$system = System::getInstance();
|
$system = System::getInstance();
|
||||||
|
|
||||||
$id_event = $system->getRequest('id_event', 0);
|
$id_event = $system->getRequest('id_event', 0);
|
||||||
|
$server_id = $system->getRequest('server_id', 0);
|
||||||
|
|
||||||
$meta = false;
|
try {
|
||||||
if ($system->getConfig('metaconsole')) {
|
if (is_metaconsole() === true
|
||||||
$meta = true;
|
&& $server_id > 0
|
||||||
}
|
) {
|
||||||
|
$node = new Node($server_id);
|
||||||
$event = events_get_event($id_event, false, $meta);
|
$node->connect();
|
||||||
if ($event) {
|
|
||||||
// Check if it is a event from module.
|
|
||||||
if ($event['id_agentmodule'] > 0) {
|
|
||||||
$event['module_graph_link'] = '<a data-ajax="false" href="index.php?page=module_graph&id='.$event['id_agentmodule'].'">'.html_print_image('images/chart_curve.png', true, ['style' => 'vertical-align: middle;'], false, false, false, true).'</a>';
|
|
||||||
} else {
|
|
||||||
$event['module_graph_link'] = '<i>'.__('N/A').'</i>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($event['id_agente'] > 0) {
|
$event = events_get_event($id_event, false);
|
||||||
$event['agent'] = "<a class='black'"."href='index.php?page=agent&id=".$event['id_agente']."'>".agents_get_alias($event['id_agente']).'</a>';
|
|
||||||
} else {
|
|
||||||
$event['agent'] = '<i>'.__('N/A').'</i>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$event['evento'] = io_safe_output($event['evento']);
|
if ($event !== false
|
||||||
|
&& empty($event) === false
|
||||||
$event['clean_tags'] = events_clean_tags($event['tags']);
|
) {
|
||||||
$event['timestamp'] = date($system->getConfig('date_format'), $event['utimestamp']);
|
// Check if it is a event from module.
|
||||||
if (empty($event['owner_user'])) {
|
if ($event['id_agentmodule'] > 0) {
|
||||||
$event['owner_user'] = '<i>'.__('N/A').'</i>';
|
$event['module_graph_link'] = '<a data-ajax="false" href="index.php?page=module_graph&id='.$event['id_agentmodule'].'">'.html_print_image('images/chart_curve.png', true, ['style' => 'vertical-align: middle;'], false, false, false, true).'</a>';
|
||||||
} else {
|
|
||||||
$user_owner = db_get_value('fullname', 'tusuario', 'id_user', $event['owner_user']);
|
|
||||||
if (empty($user_owner)) {
|
|
||||||
$user_owner = $event['owner_user'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$event['owner_user'] = $user_owner;
|
|
||||||
}
|
|
||||||
|
|
||||||
$event['event_type'] = events_print_type_description($event['event_type'], true);
|
|
||||||
$event['event_type'] .= ' ';
|
|
||||||
$event['event_type'] .= events_print_type_img($event['event_type'], true);
|
|
||||||
|
|
||||||
if (!isset($group_rep)) {
|
|
||||||
$group_rep = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($group_rep != 0) {
|
|
||||||
if ($event['event_rep'] <= 1) {
|
|
||||||
$event['event_repeated'] = '<i>'.__('No').'</i>';
|
|
||||||
} else {
|
} else {
|
||||||
$event['event_repeated'] = sprintf('%d Times', $event['event_rep']);
|
$event['module_graph_link'] = '<i>'.__('N/A').'</i>';
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$event['event_repeated'] = '<i>'.__('No').'</i>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$event_criticity = get_priority_name($event['criticity']);
|
|
||||||
|
|
||||||
switch ($event['criticity']) {
|
|
||||||
default:
|
|
||||||
case 0:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_maintenance.png';
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_informational.png';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_normal.png';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_warning.png';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_critical.png';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 5:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_minor.png';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 6:
|
|
||||||
$img_sev = 'images/status_sets/default/severity_major.png';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$event['criticity'] = ' '.$event_criticity;
|
|
||||||
$event['criticity'] .= html_print_image(
|
|
||||||
$img_sev,
|
|
||||||
true,
|
|
||||||
[
|
|
||||||
'class' => 'image_status',
|
|
||||||
'width' => 12,
|
|
||||||
'height' => 12,
|
|
||||||
'title' => $event_criticity,
|
|
||||||
],
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($event['estado'] == 1) {
|
|
||||||
$user_ack = db_get_value('fullname', 'tusuario', 'id_user', $event['id_usuario']);
|
|
||||||
if (empty($user_ack)) {
|
|
||||||
$user_ack = $event['id_usuario'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$date_ack = date($system->getConfig('date_format'), $event['ack_utimestamp']);
|
if ($event['id_agente'] > 0) {
|
||||||
$event['acknowledged_by'] = $user_ack.' ('.$date_ack.')';
|
$event['agent'] = "<a class='black'";
|
||||||
} else {
|
$event['agent'] .= "href='index.php?page=agent&id=";
|
||||||
$event['acknowledged_by'] = '<i>'.__('N/A').'</i>';
|
$event['agent'] .= $event['id_agente']."'>";
|
||||||
}
|
$event['agent'] .= agents_get_alias(
|
||||||
|
$event['id_agente']
|
||||||
// Get Status
|
);
|
||||||
switch ($event['estado']) {
|
$event['agent'] .= '</a>';
|
||||||
case 0:
|
} else {
|
||||||
$img_st = 'images/star_dark.png';
|
$event['agent'] = '<i>'.__('N/A').'</i>';
|
||||||
$title_st = __('New event');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
$img_st = 'images/tick.png';
|
|
||||||
$title_st = __('Event validated');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
$img_st = 'images/hourglass.png';
|
|
||||||
$title_st = __('Event in process');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$event['status'] = $title_st;
|
|
||||||
$event['status'] .= ' ';
|
|
||||||
$event['status'] .= html_print_image($img_st, true, false, false, false, false, true);
|
|
||||||
|
|
||||||
$event['group'] = groups_get_name($event['id_grupo'], true);
|
|
||||||
$event['group'] .= ui_print_group_icon($event['id_grupo'], true);
|
|
||||||
|
|
||||||
$event['tags'] = tags_get_tags_formatted($event['tags']);
|
|
||||||
if (empty($event['tags'])) {
|
|
||||||
$event['tags'] = '<i>'.__('N/A').'</i>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$event_comments = db_get_value('user_comment', 'tevento', 'id_evento', $id_event);
|
|
||||||
$event_comments_array = [];
|
|
||||||
$event_comments_array = json_decode($event_comments, true);
|
|
||||||
// Support for new format only.
|
|
||||||
if (empty($event_comments_array)) {
|
|
||||||
$comment = '<i>'.__('N/A').'</i>';
|
|
||||||
} else {
|
|
||||||
$comment = '';
|
|
||||||
$event_comments_array = array_reverse($event_comments_array);
|
|
||||||
foreach ($event_comments_array as $c) {
|
|
||||||
$comment .= date($system->getConfig('date_format'), $c['utimestamp']).' ('.$c['id_user'].')';
|
|
||||||
$c['comment'] = io_safe_output($c['comment']);
|
|
||||||
$c['comment'] = str_replace("\n", '<br>', $c['comment']);
|
|
||||||
$comment .= '<br>'.$c['comment'].'<br>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$event['evento'] = io_safe_output(
|
||||||
|
$event['evento']
|
||||||
|
);
|
||||||
|
|
||||||
|
$event['clean_tags'] = events_clean_tags(
|
||||||
|
$event['tags']
|
||||||
|
);
|
||||||
|
$event['timestamp'] = date(
|
||||||
|
$system->getConfig('date_format'),
|
||||||
|
$event['utimestamp']
|
||||||
|
);
|
||||||
|
if (empty($event['owner_user']) === true) {
|
||||||
|
$event['owner_user'] = '<i>'.__('N/A').'</i>';
|
||||||
|
} else {
|
||||||
|
$user_owner = db_get_value(
|
||||||
|
'fullname',
|
||||||
|
'tusuario',
|
||||||
|
'id_user',
|
||||||
|
$event['owner_user']
|
||||||
|
);
|
||||||
|
if (empty($user_owner) === true) {
|
||||||
|
$user_owner = $event['owner_user'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$event['owner_user'] = $user_owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event['event_type'] = events_print_type_description(
|
||||||
|
$event['event_type'],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$event['event_type'] .= ' ';
|
||||||
|
$event['event_type'] .= events_print_type_img(
|
||||||
|
$event['event_type'],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
if (isset($group_rep) === false) {
|
||||||
|
$group_rep = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int) $group_rep !== 0) {
|
||||||
|
if ($event['event_rep'] <= 1) {
|
||||||
|
$event['event_repeated'] = '<i>'.__('No').'</i>';
|
||||||
|
} else {
|
||||||
|
$event['event_repeated'] = sprintf(
|
||||||
|
'%d Times',
|
||||||
|
$event['event_rep']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$event['event_repeated'] = '<i>'.__('No').'</i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$event_criticity = get_priority_name(
|
||||||
|
$event['criticity']
|
||||||
|
);
|
||||||
|
|
||||||
|
switch ($event['criticity']) {
|
||||||
|
default:
|
||||||
|
case 0:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_maintenance.png';
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_informational.png';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_normal.png';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_warning.png';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_critical.png';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_minor.png';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
$img_sev = 'images/status_sets/default/severity_major.png';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event['criticity'] = ' '.$event_criticity;
|
||||||
|
$event['criticity'] .= html_print_image(
|
||||||
|
$img_sev,
|
||||||
|
true,
|
||||||
|
[
|
||||||
|
'class' => 'image_status',
|
||||||
|
'width' => 12,
|
||||||
|
'height' => 12,
|
||||||
|
'title' => $event_criticity,
|
||||||
|
],
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
if ((int) $event['estado'] === 1) {
|
||||||
|
$user_ack = db_get_value(
|
||||||
|
'fullname',
|
||||||
|
'tusuario',
|
||||||
|
'id_user',
|
||||||
|
$event['id_usuario']
|
||||||
|
);
|
||||||
|
if (empty($user_ack) === true) {
|
||||||
|
$user_ack = $event['id_usuario'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$date_ack = date(
|
||||||
|
$system->getConfig('date_format'),
|
||||||
|
$event['ack_utimestamp']
|
||||||
|
);
|
||||||
|
$event['acknowledged_by'] = $user_ack.' ('.$date_ack.')';
|
||||||
|
} else {
|
||||||
|
$event['acknowledged_by'] = '<i>'.__('N/A').'</i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get Status.
|
||||||
|
switch ($event['estado']) {
|
||||||
|
case 0:
|
||||||
|
$img_st = 'images/star_dark.png';
|
||||||
|
$title_st = __('New event');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
$img_st = 'images/tick.png';
|
||||||
|
$title_st = __('Event validated');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
$img_st = 'images/hourglass.png';
|
||||||
|
$title_st = __('Event in process');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Not posible.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event['status'] = $title_st;
|
||||||
|
$event['status'] .= ' ';
|
||||||
|
$event['status'] .= html_print_image(
|
||||||
|
$img_st,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$event['group'] = groups_get_name(
|
||||||
|
$event['id_grupo'],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$event['group'] .= ui_print_group_icon(
|
||||||
|
$event['id_grupo'],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$event['tags'] = tags_get_tags_formatted(
|
||||||
|
$event['tags']
|
||||||
|
);
|
||||||
|
if (empty($event['tags']) === true) {
|
||||||
|
$event['tags'] = '<i>'.__('N/A').'</i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$event_comments = db_get_value(
|
||||||
|
'user_comment',
|
||||||
|
'tevento',
|
||||||
|
'id_evento',
|
||||||
|
$id_event
|
||||||
|
);
|
||||||
|
$event_comments_array = [];
|
||||||
|
$event_comments_array = json_decode(
|
||||||
|
$event_comments,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
// Support for new format only.
|
||||||
|
if (empty($event_comments_array) === true) {
|
||||||
|
$comment = '<i>'.__('N/A').'</i>';
|
||||||
|
} else {
|
||||||
|
$comment = '';
|
||||||
|
$event_comments_array = array_reverse(
|
||||||
|
$event_comments_array
|
||||||
|
);
|
||||||
|
foreach ($event_comments_array as $c) {
|
||||||
|
$comment .= date(
|
||||||
|
$system->getConfig(
|
||||||
|
'date_format'
|
||||||
|
),
|
||||||
|
$c['utimestamp']
|
||||||
|
).' ('.$c['id_user'].')';
|
||||||
|
$c['comment'] = io_safe_output(
|
||||||
|
$c['comment']
|
||||||
|
);
|
||||||
|
$c['comment'] = str_replace(
|
||||||
|
"\n",
|
||||||
|
'<br>',
|
||||||
|
$c['comment']
|
||||||
|
);
|
||||||
|
$comment .= '<br>'.$c['comment'].'<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$event['comments'] = $comment;
|
||||||
|
|
||||||
|
echo json_encode(['correct' => 1, 'event' => $event]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(['correct' => 0, 'event' => []]);
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
$event['comments'] = $comment;
|
|
||||||
|
|
||||||
echo json_encode(['correct' => 1, 'event' => $event]);
|
|
||||||
} else {
|
|
||||||
echo json_encode(['correct' => 0, 'event' => []]);
|
echo json_encode(['correct' => 0, 'event' => []]);
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -319,11 +421,36 @@ class Events
|
||||||
$system = System::getInstance();
|
$system = System::getInstance();
|
||||||
|
|
||||||
$id_event = $system->getRequest('id_event', 0);
|
$id_event = $system->getRequest('id_event', 0);
|
||||||
|
$server_id = $system->getRequest('server_id', 0);
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node = new Node($server_id);
|
||||||
|
$node->connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (events_change_status($id_event, EVENT_VALIDATE) === true) {
|
||||||
|
echo json_encode(['correct' => 1]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(['correct' => 0]);
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Unexistent agent.
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
if (events_change_status($id_event, EVENT_VALIDATE, $system->getConfig('metaconsole'))) {
|
|
||||||
echo json_encode(['correct' => 1]);
|
|
||||||
} else {
|
|
||||||
echo json_encode(['correct' => 0]);
|
echo json_encode(['correct' => 0]);
|
||||||
|
} finally {
|
||||||
|
if (is_metaconsole() === true
|
||||||
|
&& $server_id > 0
|
||||||
|
) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -443,11 +570,18 @@ class Events
|
||||||
{
|
{
|
||||||
$filter = db_get_row('tevent_filter', 'id_filter', $this->filter);
|
$filter = db_get_row('tevent_filter', 'id_filter', $this->filter);
|
||||||
|
|
||||||
$this->free_search = $filter['search'];
|
$this->free_search = null;
|
||||||
$this->hours_old = $filter['event_view_hr'];
|
$this->hours_old = null;
|
||||||
$this->status = $filter['status'];
|
$this->status = null;
|
||||||
$this->type = $filter['event_type'];
|
$this->type = null;
|
||||||
$this->severity = $filter['severity'];
|
$this->severity = null;
|
||||||
|
if ($filter !== false && empty($filter) === false) {
|
||||||
|
$this->free_search = $filter['search'];
|
||||||
|
$this->hours_old = $filter['event_view_hr'];
|
||||||
|
$this->status = $filter['status'];
|
||||||
|
$this->type = $filter['event_type'];
|
||||||
|
$this->severity = $filter['severity'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -578,6 +712,12 @@ class Events
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
];
|
];
|
||||||
$options['content_text'] .= $ui->getInput($options_hidden);
|
$options['content_text'] .= $ui->getInput($options_hidden);
|
||||||
|
$options_hidden = [
|
||||||
|
'id' => 'server_id',
|
||||||
|
'value' => 0,
|
||||||
|
'type' => 'hidden',
|
||||||
|
];
|
||||||
|
$options['content_text'] .= $ui->getInput($options_hidden);
|
||||||
$options['content_text'] .= '<div id="validate_button_loading" class="invisible center">
|
$options['content_text'] .= '<div id="validate_button_loading" class="invisible center">
|
||||||
<img src="images/ajax-loader.gif" /></div>';
|
<img src="images/ajax-loader.gif" /></div>';
|
||||||
$options['content_text'] .= '<div id="validate_button_correct" class="invisible center">
|
$options['content_text'] .= '<div id="validate_button_correct" class="invisible center">
|
||||||
|
@ -872,25 +1012,24 @@ class Events
|
||||||
$ui->contentAddHtml(
|
$ui->contentAddHtml(
|
||||||
'
|
'
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function openDetails(id_event) {
|
function openDetails(id_event, server_id) {
|
||||||
$.mobile.loading("show");
|
$.mobile.loading("show");
|
||||||
|
|
||||||
postvars = {};
|
postvars = {};
|
||||||
postvars["action"] = "ajax";
|
postvars["action"] = "ajax";
|
||||||
postvars["parameter1"] = "events";
|
postvars["parameter1"] = "events";
|
||||||
postvars["parameter2"] = "get_detail_event";
|
postvars["parameter2"] = "get_detail_event";
|
||||||
postvars["id_event"] = id_event;
|
postvars["id_event"] = id_event;
|
||||||
|
postvars["server_id"] = server_id;
|
||||||
|
|
||||||
$.ajax ({
|
$.ajax ({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "index.php",
|
url: "index.php",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
data: postvars,
|
data: postvars,
|
||||||
success:
|
success:
|
||||||
function (data) {
|
function (data) {
|
||||||
if (data.correct) {
|
if (data.correct) {
|
||||||
event = data.event;
|
event = data.event;
|
||||||
|
|
||||||
//Fill the dialog
|
//Fill the dialog
|
||||||
$("#detail_event_dialog h1.dialog_title")
|
$("#detail_event_dialog h1.dialog_title")
|
||||||
.html(event["evento"]);
|
.html(event["evento"]);
|
||||||
|
@ -917,16 +1056,16 @@ class Events
|
||||||
$("#detail_event_dialog .cell_event_tags")
|
$("#detail_event_dialog .cell_event_tags")
|
||||||
.html(event["tags"]);
|
.html(event["tags"]);
|
||||||
$("#detail_event_dialog .cell_event_comments")
|
$("#detail_event_dialog .cell_event_comments")
|
||||||
|
.html(event["comments"]);
|
||||||
.html(event["comments"]);
|
|
||||||
$("#detail_event_dialog .cell_agent")
|
$("#detail_event_dialog .cell_agent")
|
||||||
.html(event["agent"]);
|
.html(event["agent"]);
|
||||||
|
|
||||||
//The link to module graph
|
//The link to module graph
|
||||||
$(".cell_module_graph").html(event["module_graph_link"]);
|
$(".cell_module_graph").html(event["module_graph_link"]);
|
||||||
|
|
||||||
$("#event_id").val(id_event);
|
$("#event_id").val(id_event);
|
||||||
|
$("#server_id").val(server_id);
|
||||||
|
|
||||||
if (event["estado"] != 1) {
|
if (event["estado"] != 1) {
|
||||||
$("#validate_button").show();
|
$("#validate_button").show();
|
||||||
}
|
}
|
||||||
|
@ -937,9 +1076,7 @@ class Events
|
||||||
$("#validate_button_loading").hide();
|
$("#validate_button_loading").hide();
|
||||||
$("#validate_button_fail").hide();
|
$("#validate_button_fail").hide();
|
||||||
$("#validate_button_correct").hide();
|
$("#validate_button_correct").hide();
|
||||||
|
|
||||||
$.mobile.loading( "hide" );
|
$.mobile.loading( "hide" );
|
||||||
|
|
||||||
$("#detail_event_dialog_hook").click();
|
$("#detail_event_dialog_hook").click();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -954,40 +1091,41 @@ class Events
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function validateEvent() {
|
function validateEvent() {
|
||||||
id_event = $("#event_id").val();
|
id_event = $("#event_id").val();
|
||||||
|
server_id = $("#server_id").val();
|
||||||
|
|
||||||
$("#validate_button").hide();
|
$("#validate_button").hide();
|
||||||
$("#validate_button_loading").show();
|
$("#validate_button_loading").show();
|
||||||
|
|
||||||
//Hide the button to close
|
//Hide the button to close
|
||||||
$("#detail_event_dialog div.ui-header a.ui-btn-right")
|
$("#detail_event_dialog div.ui-header a.ui-btn-right")
|
||||||
.hide();
|
.hide();
|
||||||
|
|
||||||
postvars = {};
|
postvars = {};
|
||||||
postvars["action"] = "ajax";
|
postvars["action"] = "ajax";
|
||||||
postvars["parameter1"] = "events";
|
postvars["parameter1"] = "events";
|
||||||
postvars["parameter2"] = "validate_event";
|
postvars["parameter2"] = "validate_event";
|
||||||
postvars["id_event"] = id_event;
|
postvars["id_event"] = id_event;
|
||||||
|
postvars["server_id"] = server_id;
|
||||||
|
|
||||||
$.ajax ({
|
$.ajax ({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "index.php",
|
url: "index.php",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
data: postvars,
|
data: postvars,
|
||||||
success:
|
success:
|
||||||
function (data) {
|
function (data) {
|
||||||
$("#validate_button_loading").hide();
|
$("#validate_button_loading").hide();
|
||||||
|
|
||||||
if (data.correct) {
|
if (data.correct) {
|
||||||
$("#validate_button_correct").show();
|
$("#validate_button_correct").show();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$("#validate_button_fail").show();
|
$("#validate_button_fail").show();
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#detail_event_dialog div.ui-header a.ui-btn-right")
|
$("#detail_event_dialog div.ui-header a.ui-btn-right")
|
||||||
.show();
|
.show();
|
||||||
},
|
},
|
||||||
|
@ -998,7 +1136,7 @@ class Events
|
||||||
$("#detail_event_dialog div.ui-header a.ui-btn-right")
|
$("#detail_event_dialog div.ui-header a.ui-btn-right")
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>'
|
</script>'
|
||||||
);
|
);
|
||||||
|
@ -1027,18 +1165,17 @@ class Events
|
||||||
\"<td class='vertical_middle'>\" + event[1] + \"</td>\" +
|
\"<td class='vertical_middle'>\" + event[1] + \"</td>\" +
|
||||||
\"</tr>\" + new_rows;
|
\"</tr>\" + new_rows;
|
||||||
});
|
});
|
||||||
|
|
||||||
$(\"table#\"+table_id+\" tbody\").append(new_rows);
|
$(\"table#\"+table_id+\" tbody\").append(new_rows);
|
||||||
|
|
||||||
load_more_rows = 1;
|
load_more_rows = 1;
|
||||||
refresh_link_listener_list_events();
|
refresh_link_listener_list_events();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajax_load_rows() {
|
function ajax_load_rows() {
|
||||||
if (load_more_rows) {
|
if (load_more_rows) {
|
||||||
load_more_rows = 0;
|
load_more_rows = 0;
|
||||||
|
|
||||||
postvars = {};
|
postvars = {};
|
||||||
postvars[\"action\"] = \"ajax\";
|
postvars[\"action\"] = \"ajax\";
|
||||||
postvars[\"parameter1\"] = \"events\";
|
postvars[\"parameter1\"] = \"events\";
|
||||||
|
@ -1052,12 +1189,12 @@ class Events
|
||||||
postvars[\"hours_old\"] = $(\"input[name='hours_old']\").val();
|
postvars[\"hours_old\"] = $(\"input[name='hours_old']\").val();
|
||||||
postvars[\"page\"] = page;
|
postvars[\"page\"] = page;
|
||||||
page++;
|
page++;
|
||||||
|
|
||||||
$.post(\"index.php\",
|
$.post(\"index.php\",
|
||||||
postvars,
|
postvars,
|
||||||
function (data) {
|
function (data) {
|
||||||
add_rows(data, 'list_events');
|
add_rows(data, 'list_events');
|
||||||
|
|
||||||
if($('#list_events').offset() != undefined) {
|
if($('#list_events').offset() != undefined) {
|
||||||
//For large screens load the new events
|
//For large screens load the new events
|
||||||
//Check if the end of the event list tables is in the client limits
|
//Check if the end of the event list tables is in the client limits
|
||||||
|
@ -1066,7 +1203,7 @@ class Events
|
||||||
ajax_load_rows();
|
ajax_load_rows();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.events.length == 0 && page == 1) {
|
if (data.events.length == 0 && page == 1) {
|
||||||
$('#empty_advice_events').show();
|
$('#empty_advice_events').show();
|
||||||
}
|
}
|
||||||
|
@ -1074,7 +1211,7 @@ class Events
|
||||||
\"json\");
|
\"json\");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajax_load_latest_agent_events(id_agent, limit) {
|
function ajax_load_latest_agent_events(id_agent, limit) {
|
||||||
postvars = {};
|
postvars = {};
|
||||||
postvars[\"action\"] = \"ajax\";
|
postvars[\"action\"] = \"ajax\";
|
||||||
|
@ -1083,7 +1220,7 @@ class Events
|
||||||
postvars[\"agent_events\"] = \"1\";
|
postvars[\"agent_events\"] = \"1\";
|
||||||
postvars[\"id_agent\"] = id_agent;
|
postvars[\"id_agent\"] = id_agent;
|
||||||
postvars[\"limit\"] = limit;
|
postvars[\"limit\"] = limit;
|
||||||
|
|
||||||
$.post(\"index.php\",
|
$.post(\"index.php\",
|
||||||
postvars,
|
postvars,
|
||||||
function (data) {
|
function (data) {
|
||||||
|
@ -1095,23 +1232,20 @@ class Events
|
||||||
},
|
},
|
||||||
\"json\");
|
\"json\");
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
ajax_load_rows();
|
ajax_load_rows();
|
||||||
|
|
||||||
$(window).bind(\"scroll\", function () {
|
$(window).bind(\"scroll\", function () {
|
||||||
custom_scroll();
|
custom_scroll();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window).on(\"touchmove\", function(event) {
|
$(window).on(\"touchmove\", function(event) {
|
||||||
custom_scroll();
|
custom_scroll();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function custom_scroll() {
|
function custom_scroll() {
|
||||||
if ($(this).scrollTop() + $(this).height()
|
if ($(this).scrollTop() + $(this).height()
|
||||||
>= ($(document).height() - 100)) {
|
>= ($(document).height() - 100)) {
|
||||||
|
|
||||||
ajax_load_rows();
|
ajax_load_rows();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue