mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 00:04:37 +02:00
wip event view
This commit is contained in:
parent
bb552226a6
commit
ef3d299d58
@ -60,96 +60,12 @@ $fields_selected = explode(',', $config['event_fields']);
|
|||||||
|
|
||||||
$result_selected = [];
|
$result_selected = [];
|
||||||
|
|
||||||
// show list of fields selected.
|
// Show list of fields selected.
|
||||||
if ($fields_selected[0] != '') {
|
if ($fields_selected[0] != '') {
|
||||||
foreach ($fields_selected as $field_selected) {
|
foreach ($fields_selected as $field_selected) {
|
||||||
switch ($field_selected) {
|
$result_selected[$field_selected] = events_get_column_name(
|
||||||
case 'id_evento':
|
$field_selected
|
||||||
$result = __('Event Id');
|
);
|
||||||
break;
|
|
||||||
|
|
||||||
case 'evento':
|
|
||||||
$result = __('Event Name');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'id_agente':
|
|
||||||
$result = __('Agent Name');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'id_usuario':
|
|
||||||
$result = __('User');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'id_grupo':
|
|
||||||
$result = __('Group');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'estado':
|
|
||||||
$result = __('Status');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'timestamp':
|
|
||||||
$result = __('Timestamp');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'event_type':
|
|
||||||
$result = __('Event Type');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'id_agentmodule':
|
|
||||||
$result = __('Module Name');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'id_alert_am':
|
|
||||||
$result = __('Alert');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'criticity':
|
|
||||||
$result = __('Severity');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'user_comment':
|
|
||||||
$result = __('Comment');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'tags':
|
|
||||||
$result = __('Tags');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'source':
|
|
||||||
$result = __('Source');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'id_extra':
|
|
||||||
$result = __('Extra Id');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'owner_user':
|
|
||||||
$result = __('Owner');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'ack_utimestamp':
|
|
||||||
$result = __('ACK Timestamp');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'instructions':
|
|
||||||
$result = __('Instructions');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'server_name':
|
|
||||||
$result = __('Server Name');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'data':
|
|
||||||
$result = __('Data');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'module_status':
|
|
||||||
$result = __('Module Status');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$result_selected[$field_selected] = $result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +93,8 @@ $fields_available = [];
|
|||||||
|
|
||||||
$fields_available['id_evento'] = __('Event Id');
|
$fields_available['id_evento'] = __('Event Id');
|
||||||
$fields_available['evento'] = __('Event Name');
|
$fields_available['evento'] = __('Event Name');
|
||||||
$fields_available['id_agente'] = __('Agent Name');
|
$fields_available['id_agente'] = __('Agent ID');
|
||||||
|
$fields_available['agent_name'] = __('Agent Name');
|
||||||
$fields_available['id_usuario'] = __('User');
|
$fields_available['id_usuario'] = __('User');
|
||||||
$fields_available['id_grupo'] = __('Group');
|
$fields_available['id_grupo'] = __('Group');
|
||||||
$fields_available['estado'] = __('Status');
|
$fields_available['estado'] = __('Status');
|
||||||
|
@ -39,10 +39,11 @@ define('TIME_FORMAT', 'H:i:s');
|
|||||||
define('TIME_FORMAT_JS', 'HH:mm:ss');
|
define('TIME_FORMAT_JS', 'HH:mm:ss');
|
||||||
|
|
||||||
// Events state constants.
|
// Events state constants.
|
||||||
|
define('EVENT_ALL', -1);
|
||||||
define('EVENT_NEW', 0);
|
define('EVENT_NEW', 0);
|
||||||
define('EVENT_VALIDATE', 1);
|
define('EVENT_VALIDATE', 1);
|
||||||
define('EVENT_PROCESS', 2);
|
define('EVENT_PROCESS', 2);
|
||||||
|
define('EVENT_NO_VALIDATED', 3);
|
||||||
|
|
||||||
|
|
||||||
// Agents disabled status.
|
// Agents disabled status.
|
||||||
|
@ -70,17 +70,112 @@ function events_get_all_fields()
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates SQL from filter (array) options.
|
* Same as events_get_column_names but retrieving only one result.
|
||||||
*
|
*
|
||||||
* @param array $filter Filters.
|
* @param string $field Raw field name.
|
||||||
*
|
*
|
||||||
* @return string DB sql filter for where clause.
|
* @return string Traduction.
|
||||||
*/
|
*/
|
||||||
function events_sql_db_filter($filter)
|
function events_get_column_name($field)
|
||||||
{
|
{
|
||||||
if (!isset($filter) || is_array($filter)) {
|
switch ($field) {
|
||||||
return '';
|
case 'id_evento':
|
||||||
|
return __('Event Id');
|
||||||
|
|
||||||
|
case 'evento':
|
||||||
|
return __('Event Name');
|
||||||
|
|
||||||
|
case 'id_agente':
|
||||||
|
return __('Agent ID');
|
||||||
|
|
||||||
|
case 'agent_name':
|
||||||
|
return __('Agent name');
|
||||||
|
|
||||||
|
case 'agent_alias':
|
||||||
|
return __('Agent alias');
|
||||||
|
|
||||||
|
case 'id_usuario':
|
||||||
|
return __('User');
|
||||||
|
|
||||||
|
case 'id_grupo':
|
||||||
|
return __('Group');
|
||||||
|
|
||||||
|
case 'estado':
|
||||||
|
return __('Status');
|
||||||
|
|
||||||
|
case 'timestamp':
|
||||||
|
return __('Timestamp');
|
||||||
|
|
||||||
|
case 'event_type':
|
||||||
|
return __('Event Type');
|
||||||
|
|
||||||
|
case 'id_agentmodule':
|
||||||
|
return __('Module Name');
|
||||||
|
|
||||||
|
case 'id_alert_am':
|
||||||
|
return __('Alert');
|
||||||
|
|
||||||
|
case 'criticity':
|
||||||
|
return __('Severity');
|
||||||
|
|
||||||
|
case 'user_comment':
|
||||||
|
return __('Comment');
|
||||||
|
|
||||||
|
case 'tags':
|
||||||
|
return __('Tags');
|
||||||
|
|
||||||
|
case 'source':
|
||||||
|
return __('Source');
|
||||||
|
|
||||||
|
case 'id_extra':
|
||||||
|
return __('Extra Id');
|
||||||
|
|
||||||
|
case 'owner_user':
|
||||||
|
return __('Owner');
|
||||||
|
|
||||||
|
case 'ack_utimestamp':
|
||||||
|
return __('ACK Timestamp');
|
||||||
|
|
||||||
|
case 'instructions':
|
||||||
|
return __('Instructions');
|
||||||
|
|
||||||
|
case 'server_name':
|
||||||
|
return __('Server Name');
|
||||||
|
|
||||||
|
case 'data':
|
||||||
|
return __('Data');
|
||||||
|
|
||||||
|
case 'module_status':
|
||||||
|
return __('Module Status');
|
||||||
|
|
||||||
|
case 'options':
|
||||||
|
return __('Options');
|
||||||
|
|
||||||
|
default:
|
||||||
|
return __($field);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return column names from fields selected.
|
||||||
|
*
|
||||||
|
* @param array $fields Array of fields.
|
||||||
|
*
|
||||||
|
* @return array Names array.
|
||||||
|
*/
|
||||||
|
function events_get_column_names($fields)
|
||||||
|
{
|
||||||
|
if (!isset($fields) || !is_array($fields)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$names = [];
|
||||||
|
foreach ($fields as $f) {
|
||||||
|
$names[] = events_get_column_name($f);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $names;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +218,7 @@ function events_get_all(
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql_filters = [];
|
$sql_filters = [];
|
||||||
if (isset($filter['event_view_hr'])) {
|
if (isset($filter['event_view_hr']) && ($filter['event_view_hr'] > 0)) {
|
||||||
$sql_filters[] = sprintf(
|
$sql_filters[] = sprintf(
|
||||||
' AND utimestamp > UNIX_TIMESTAMP(now() - INTERVAL %d HOUR) ',
|
' AND utimestamp > UNIX_TIMESTAMP(now() - INTERVAL %d HOUR) ',
|
||||||
$filter['event_view_hr']
|
$filter['event_view_hr']
|
||||||
@ -153,10 +248,77 @@ function events_get_all(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($filter['severity']) && $filter['severity'] > 0) {
|
if (isset($filter['severity']) && $filter['severity'] > 0) {
|
||||||
|
switch ($filter['severity']) {
|
||||||
|
case EVENT_CRIT_MAINTENANCE:
|
||||||
|
case EVENT_CRIT_INFORMATIONAL:
|
||||||
|
case EVENT_CRIT_NORMAL:
|
||||||
|
case EVENT_CRIT_MINOR:
|
||||||
|
case EVENT_CRIT_WARNING:
|
||||||
|
case EVENT_CRIT_MAJOR:
|
||||||
|
case EVENT_CRIT_CRITICAL:
|
||||||
|
default:
|
||||||
$sql_filters[] = sprintf(
|
$sql_filters[] = sprintf(
|
||||||
' AND criticity = %d ',
|
' AND criticity = %d ',
|
||||||
$filter['severity']
|
$filter['severity']
|
||||||
);
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_CRIT_WARNING_OR_CRITICAL:
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND (criticity = %d OR criticity = %d)',
|
||||||
|
EVENT_CRIT_WARNING,
|
||||||
|
EVENT_CRIT_CRITICAL
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_CRIT_NOT_NORMAL:
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND criticity != %d',
|
||||||
|
EVENT_CRIT_NORMAL
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_CRIT_OR_NORMAL:
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND (criticity = %d OR criticity = %d)',
|
||||||
|
EVENT_CRIT_NORMAL,
|
||||||
|
EVENT_CRIT_CRITICAL
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($filter['id_group']) && $filter['id_group'] > 0) {
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND id_group = %d ',
|
||||||
|
$filter['id_group']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($filter['status'])) {
|
||||||
|
switch ($filter['status']) {
|
||||||
|
case EVENT_ALL:
|
||||||
|
default:
|
||||||
|
// Do not filter.
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_NEW:
|
||||||
|
case EVENT_VALIDATE:
|
||||||
|
case EVENT_PROCESS:
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND estado = %d',
|
||||||
|
$filter['status']
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_NO_VALIDATED:
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND (estado = %d OR estado = %d)',
|
||||||
|
EVENT_NEW,
|
||||||
|
EVENT_PROCESS
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$table = events_get_events_table($meta, $history);
|
$table = events_get_events_table($meta, $history);
|
||||||
@ -170,14 +332,28 @@ function events_get_all(
|
|||||||
|
|
||||||
// Reset array sql filters.
|
// Reset array sql filters.
|
||||||
$sql_filters = [];
|
$sql_filters = [];
|
||||||
|
$agent_join_filters = [];
|
||||||
|
|
||||||
if (!empty($filter['agent_alias'])) {
|
if (!empty($filter['agent_alias'])) {
|
||||||
$sql_filters[] = sprintf(
|
$agent_join_filters[] = sprintf(
|
||||||
' AND ta.alias = "%s" ',
|
' AND ta.alias = "%s" ',
|
||||||
$filter['agent_alias']
|
$filter['agent_alias']
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($filter['search'])) {
|
||||||
|
$sql_filters[] = sprintf(
|
||||||
|
' AND (lower(ta.alias) like lower("%%%s%%")
|
||||||
|
OR lower(te.evento) like lower("%%%s%%")
|
||||||
|
OR lower(te.user_comment) like lower("%%%s%%")
|
||||||
|
OR lower(te.id_extra) like lower("%%%s%%")
|
||||||
|
OR lower(te.source) like lower("%%%s%%") )',
|
||||||
|
$filter['search'],
|
||||||
|
$filter['search'],
|
||||||
|
$filter['search']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$order_by = '';
|
$order_by = '';
|
||||||
if (isset($order, $sort_field)) {
|
if (isset($order, $sort_field)) {
|
||||||
$order_by = events_get_sql_order($sort_field, $order);
|
$order_by = events_get_sql_order($sort_field, $order);
|
||||||
@ -216,6 +392,15 @@ function events_get_all(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$tgrupo_join = 'LEFT';
|
||||||
|
if (isset($filter['id_group_filter']) && $filter['id_group_filter'] > 0) {
|
||||||
|
$tgrupo_join = 'INNER';
|
||||||
|
$tgrupo_join_filters[] = sprintf(
|
||||||
|
' AND tg.id_grupo = %s',
|
||||||
|
$filter['id_group_filter']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Secondary groups.
|
// Secondary groups.
|
||||||
db_process_sql('SET group_concat_max_len = 9999999');
|
db_process_sql('SET group_concat_max_len = 9999999');
|
||||||
$event_lj = events_get_secondary_groups_left_join($table);
|
$event_lj = events_get_secondary_groups_left_join($table);
|
||||||
@ -223,19 +408,26 @@ function events_get_all(
|
|||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT %s
|
'SELECT %s
|
||||||
FROM %s
|
FROM %s
|
||||||
|
%s
|
||||||
%s JOIN tagente ta
|
%s JOIN tagente ta
|
||||||
ON ta.id_agente = te.id_agente
|
ON ta.id_agente = te.id_agente
|
||||||
%s
|
%s
|
||||||
|
%s JOIN tgrupo tg
|
||||||
|
ON te.id_grupo = tg.id_grupo
|
||||||
%s
|
%s
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
%s
|
%s
|
||||||
%s
|
%s
|
||||||
%s
|
%s
|
||||||
|
%s
|
||||||
',
|
',
|
||||||
join(',', $fields),
|
join(',', $fields),
|
||||||
$tevento,
|
$tevento,
|
||||||
$tagente_join,
|
|
||||||
$event_lj,
|
$event_lj,
|
||||||
|
$tagente_join,
|
||||||
|
join(' ', $agent_join_filters),
|
||||||
|
$tgrupo_join,
|
||||||
|
join(' ', $tgrupo_join_filters),
|
||||||
join(' ', $sql_filters),
|
join(' ', $sql_filters),
|
||||||
$group_by,
|
$group_by,
|
||||||
$order_by,
|
$order_by,
|
||||||
|
@ -2821,6 +2821,7 @@ function ui_progress(
|
|||||||
* ]
|
* ]
|
||||||
* ]
|
* ]
|
||||||
* ],
|
* ],
|
||||||
|
* 'extra_html' => HTML content to be placed after 'filter' section.
|
||||||
* ]
|
* ]
|
||||||
* End.
|
* End.
|
||||||
*
|
*
|
||||||
@ -2863,6 +2864,10 @@ function ui_print_datatable(array $parameters)
|
|||||||
$parameters['order']['field'],
|
$parameters['order']['field'],
|
||||||
$parameters['columns']
|
$parameters['columns']
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (empty($order)) {
|
||||||
|
$order = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$order .= ', "'.$parameters['order']['direction'].'"';
|
$order .= ', "'.$parameters['order']['direction'].'"';
|
||||||
@ -3002,6 +3007,12 @@ function ui_print_datatable(array $parameters)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extra html.
|
||||||
|
$extra = '';
|
||||||
|
if (isset($parameters['extra_html']) && !empty($parameters['extra_html'])) {
|
||||||
|
$extra = $parameters['extra_html'];
|
||||||
|
}
|
||||||
|
|
||||||
// Base table.
|
// Base table.
|
||||||
$table = '<table id="'.$table_id.'" ';
|
$table = '<table id="'.$table_id.'" ';
|
||||||
$table .= 'class="'.$parameters['class'].'"';
|
$table .= 'class="'.$parameters['class'].'"';
|
||||||
@ -3118,7 +3129,8 @@ function ui_print_datatable(array $parameters)
|
|||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
$output = $filter.$table.$js;
|
// Order.
|
||||||
|
$output = $filter.$extra.$table.$js;
|
||||||
|
|
||||||
ui_require_css_file('datatables.min', 'include/styles/js/');
|
ui_require_css_file('datatables.min', 'include/styles/js/');
|
||||||
ui_require_javascript_file('datatables.min');
|
ui_require_javascript_file('datatables.min');
|
||||||
|
@ -146,3 +146,41 @@ fieldset {
|
|||||||
.event.flex-row.h100p.nowrap div {
|
.event.flex-row.h100p.nowrap div {
|
||||||
max-width: 98%;
|
max-width: 98%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.filter_summary {
|
||||||
|
margin-bottom: 3em;
|
||||||
|
height: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter_summary div.label {
|
||||||
|
background: #878787;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bolder;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
.filter_summary div.content {
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter_summary > div {
|
||||||
|
border: 1px solid #eee;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter_summary div {
|
||||||
|
float: left;
|
||||||
|
margin-right: 2em;
|
||||||
|
text-align: center;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#events_processing {
|
||||||
|
background: #dedede;
|
||||||
|
font-size: 3em;
|
||||||
|
height: auto;
|
||||||
|
padding: 2em;
|
||||||
|
color: #777;
|
||||||
|
border: none;
|
||||||
|
margin-top: -2em;
|
||||||
|
}
|
||||||
|
@ -250,3 +250,14 @@ tr.disabled_row_user * {
|
|||||||
table.dataTable.info_table.no-footer {
|
table.dataTable.info_table.no-footer {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Datatables pagination */
|
||||||
|
.dataTables_paginate.paging_simple_numbers {
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #82b92e;
|
||||||
|
border-color: #82b92e;
|
||||||
|
}
|
||||||
|
@ -66,17 +66,20 @@ $access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m ==
|
|||||||
// Load specific stylesheet.
|
// Load specific stylesheet.
|
||||||
ui_require_css_file('events');
|
ui_require_css_file('events');
|
||||||
|
|
||||||
|
// Load extra javascript.
|
||||||
|
ui_require_javascript_file('pandora_events');
|
||||||
|
|
||||||
// Get requests.
|
// Get requests.
|
||||||
$id_group = get_parameter('filter[id_group]');
|
$id_group = get_parameter('filter[id_group]');
|
||||||
$event_type = get_parameter('filter[event_type]');
|
$event_type = get_parameter('filter[event_type]');
|
||||||
$severity = get_parameter('filter[severity]');
|
$severity = get_parameter('filter[severity]');
|
||||||
$status = get_parameter('filter[status]');
|
$status = get_parameter('filter[status]', EVENT_NO_VALIDATED);
|
||||||
$search = get_parameter('filter[search]');
|
$search = get_parameter('filter[search]');
|
||||||
$text_agent = get_parameter('filter[text_agent]');
|
$text_agent = get_parameter('filter[text_agent]');
|
||||||
$id_agent = get_parameter('filter[id_agent]');
|
$id_agent = get_parameter('filter[id_agent]');
|
||||||
$id_agent_module = get_parameter('filter[id_agent_module]');
|
$id_agent_module = get_parameter('filter[id_agent_module]');
|
||||||
$pagination = get_parameter('filter[pagination]');
|
$pagination = get_parameter('filter[pagination]');
|
||||||
$event_view_hr = get_parameter('filter[event_view_hr]', 8);
|
$event_view_hr = get_parameter('filter[event_view_hr]', 1);
|
||||||
$id_user_ack = get_parameter('filter[id_user_ack]');
|
$id_user_ack = get_parameter('filter[id_user_ack]');
|
||||||
$group_rep = get_parameter('filter[group_rep]');
|
$group_rep = get_parameter('filter[group_rep]');
|
||||||
$tag_with = get_parameter('filter[tag_with]', []);
|
$tag_with = get_parameter('filter[tag_with]', []);
|
||||||
@ -108,6 +111,7 @@ if (is_ajax()) {
|
|||||||
[
|
[
|
||||||
'te.*',
|
'te.*',
|
||||||
'ta.alias as agent_name',
|
'ta.alias as agent_name',
|
||||||
|
'tg.nombre as group_name',
|
||||||
],
|
],
|
||||||
$filter,
|
$filter,
|
||||||
// Offset.
|
// Offset.
|
||||||
@ -920,15 +924,7 @@ $filter .= ui_toggle(
|
|||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$column_names = [
|
$default_fields = [
|
||||||
__('Event'),
|
|
||||||
__('Event ID'),
|
|
||||||
__('Agent name'),
|
|
||||||
__('Timestamp'),
|
|
||||||
__('Severity'),
|
|
||||||
__('Options'),
|
|
||||||
];
|
|
||||||
$fields = [
|
|
||||||
'evento',
|
'evento',
|
||||||
'id_evento',
|
'id_evento',
|
||||||
// 'id_agente',
|
// 'id_agente',
|
||||||
@ -961,6 +957,86 @@ try {
|
|||||||
// 'module_name',
|
// 'module_name',
|
||||||
'options',
|
'options',
|
||||||
];
|
];
|
||||||
|
$fields = explode(',', $config['event_fields']);
|
||||||
|
|
||||||
|
// Always check something is shown.
|
||||||
|
if (empty($fields)) {
|
||||||
|
$fields = $default_fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Always add options column.
|
||||||
|
$fields = array_merge($fields, ['options']);
|
||||||
|
|
||||||
|
// Get column names.
|
||||||
|
$column_names = events_get_column_names($fields);
|
||||||
|
|
||||||
|
// Open current filter quick reference.
|
||||||
|
$active_filters_div = '<div class="filter_summary">';
|
||||||
|
// Event status.
|
||||||
|
$active_filters_div .= '<div>';
|
||||||
|
$active_filters_div .= '<div class="label box-shadow">'.__('Event status').'</div>';
|
||||||
|
$active_filters_div .= '<div id="summary_status" class="content">';
|
||||||
|
switch ($status) {
|
||||||
|
case EVENT_ALL:
|
||||||
|
default:
|
||||||
|
$active_filters_div .= __('Any status.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_NEW:
|
||||||
|
$active_filters_div .= __('New events.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_VALIDATE:
|
||||||
|
$active_filters_div .= __('Validated.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_PROCESS:
|
||||||
|
$active_filters_div .= __('In proccess.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EVENT_NO_VALIDATED:
|
||||||
|
$active_filters_div .= __('Not validated.');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
|
||||||
|
// Max. hours old.
|
||||||
|
$active_filters_div .= '<div>';
|
||||||
|
$active_filters_div .= '<div class="label box-shadow">'.__('Max. hours old').'</div>';
|
||||||
|
$active_filters_div .= '<div id="summary_hours" class="content">';
|
||||||
|
if ($event_view_hr == 0) {
|
||||||
|
$active_filters_div .= __('Any time.');
|
||||||
|
} else if ($event_view_hr == 1) {
|
||||||
|
$active_filters_div .= __('Last hour.');
|
||||||
|
} else if ($event_view_hr == 2) {
|
||||||
|
$active_filters_div .= __('Last %d hours.', $event_view_hr);
|
||||||
|
}
|
||||||
|
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
|
||||||
|
// Duplicates.
|
||||||
|
$active_filters_div .= '<div>';
|
||||||
|
$active_filters_div .= '<div class="label box-shadow">'.__('Duplicated').'</div>';
|
||||||
|
$active_filters_div .= '<div id="summary_duplicates" class="content">';
|
||||||
|
if ($group_rep == 0) {
|
||||||
|
$active_filters_div .= __('All events.');
|
||||||
|
} else if ($group_rep == 1) {
|
||||||
|
$active_filters_div .= __('Group events');
|
||||||
|
} else if ($group_rep == 2) {
|
||||||
|
$active_filters_div .= __('Group agents.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
|
||||||
|
// Close.
|
||||||
|
$active_filters_div .= '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
// Print datatable.
|
||||||
ui_print_datatable(
|
ui_print_datatable(
|
||||||
[
|
[
|
||||||
'id' => 'events',
|
'id' => 'events',
|
||||||
@ -968,6 +1044,12 @@ try {
|
|||||||
'style' => 'width: 100%;',
|
'style' => 'width: 100%;',
|
||||||
'ajax_url' => 'operation/events/events',
|
'ajax_url' => 'operation/events/events',
|
||||||
'ajax_data' => ['get_events' => 1],
|
'ajax_data' => ['get_events' => 1],
|
||||||
|
'form' => [
|
||||||
|
'class' => 'flex-row',
|
||||||
|
'html' => $filter,
|
||||||
|
'inputs' => [],
|
||||||
|
],
|
||||||
|
'extra_html' => $active_filters_div,
|
||||||
'pagination_options' => [
|
'pagination_options' => [
|
||||||
[
|
[
|
||||||
$config['block_size'],
|
$config['block_size'],
|
||||||
@ -990,11 +1072,6 @@ try {
|
|||||||
'All',
|
'All',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'form' => [
|
|
||||||
'class' => 'flex-row',
|
|
||||||
'html' => $filter,
|
|
||||||
'inputs' => [],
|
|
||||||
],
|
|
||||||
'order' => [
|
'order' => [
|
||||||
'field' => 'timestamp',
|
'field' => 'timestamp',
|
||||||
'direction' => 'desc',
|
'direction' => 'desc',
|
||||||
@ -1003,7 +1080,6 @@ try {
|
|||||||
'columns' => $fields,
|
'columns' => $fields,
|
||||||
'ajax_postprocess' => '
|
'ajax_postprocess' => '
|
||||||
function (item) {
|
function (item) {
|
||||||
item.id_evento = "#"+item.id_evento;
|
|
||||||
var color = "'.COL_UNKNOWN.'";
|
var color = "'.COL_UNKNOWN.'";
|
||||||
var text = "UNKNOWN";
|
var text = "UNKNOWN";
|
||||||
switch (item.criticity) {
|
switch (item.criticity) {
|
||||||
@ -1050,11 +1126,15 @@ try {
|
|||||||
output += \'</div>\';
|
output += \'</div>\';
|
||||||
|
|
||||||
evn = \'<div class="event flex-row h100p nowrap">\';
|
evn = \'<div class="event flex-row h100p nowrap">\';
|
||||||
evn += \'<div>\'+item.evento+\'</div>\';
|
evn += \'<div><a href="javascript:" onclick="show_event_dialog(\';
|
||||||
|
evn += item.id_evento+\');">\';
|
||||||
|
evn += item.evento+\'</a></div>\';
|
||||||
evn += output;
|
evn += output;
|
||||||
evn += \'</div>\'
|
evn += \'</div>\'
|
||||||
|
|
||||||
item.evento = evn;
|
item.evento = evn;
|
||||||
|
item.criticity = \'<div class="criticity" style="background: \';
|
||||||
|
item.criticity += color + \'">\' + text + "</div>";
|
||||||
|
|
||||||
|
|
||||||
// Event type.
|
// Event type.
|
||||||
@ -1109,8 +1189,18 @@ try {
|
|||||||
item.agent_name = \'<a href="'.ui_get_full_url('index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=').'\'+item.id_agente+\'">\' + item.agent_name + \'</a>\';
|
item.agent_name = \'<a href="'.ui_get_full_url('index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=').'\'+item.id_agente+\'">\' + item.agent_name + \'</a>\';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.id_agente > 0) {
|
||||||
|
item.id_agente = \'<a href="'.ui_get_full_url('index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=').'\'+item.id_agente+\'">\' + item.id_agente + \'</a>\';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.id_grupo == "0") {
|
||||||
|
item.id_grupo = "'.__('All').'";
|
||||||
|
} else {
|
||||||
|
item.id_grupo = item.group_name;
|
||||||
|
}
|
||||||
|
|
||||||
item.options = \'<a href="#">button</a>\';
|
item.options = \'<a href="#">button</a>\';
|
||||||
|
item.id_evento = "#"+item.id_evento;
|
||||||
}',
|
}',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
@ -1130,6 +1220,18 @@ ui_require_jquery_file(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// End. Load required JS.
|
// End. Load required JS.
|
||||||
|
html_print_input_hidden('meta', (int) is_metaconsole());
|
||||||
|
html_print_input_hidden('history', (int) $history);
|
||||||
|
html_print_input_hidden('filterid', $is_filter);
|
||||||
|
html_print_input_hidden(
|
||||||
|
'ajax_file',
|
||||||
|
ui_get_full_url('ajax.php', false, false, false)
|
||||||
|
);
|
||||||
|
|
||||||
|
// AJAX call options responses.
|
||||||
|
echo "<div id='event_details_window'></div>";
|
||||||
|
echo "<div id='event_response_window'></div>";
|
||||||
|
echo "<div id='event_response_command_window' title='".__('Parameters')."'></div>";
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
@ -1143,6 +1245,28 @@ var text_none = "<?php echo __('None'); ?>";
|
|||||||
var group_agents_id = false;
|
var group_agents_id = false;
|
||||||
|
|
||||||
$(document).ready( function() {
|
$(document).ready( function() {
|
||||||
|
/* Update summary */
|
||||||
|
$("#status").on("change",function(){
|
||||||
|
$('#summary_status').html($("#status option:selected").text());
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#text-event_view_hr").on("keyup",function(){
|
||||||
|
hours = $('#text-event_view_hr').val();
|
||||||
|
if (hours == '' || hours == 0 ) {
|
||||||
|
$('#summary_hours').html('<?php echo __('Any'); ?>');
|
||||||
|
} else if (hours == 1) {
|
||||||
|
$('#summary_hours').html('<?php echo __('Last hour.'); ?>');
|
||||||
|
} else {
|
||||||
|
$('#summary_hours').html(hours + '<?php echo ' '.__('hours.'); ?>');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#group_rep').on("change", function(){
|
||||||
|
$('#summary_duplicates').html($("#group_rep option:selected").text());
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Summary updates end. */
|
||||||
|
|
||||||
id_select_destiny = "#tag_with_temp";
|
id_select_destiny = "#tag_with_temp";
|
||||||
id_hidden = "#hidden-tag_with";
|
id_hidden = "#hidden-tag_with";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user