add new filter search events pandora_enterprise#9135

This commit is contained in:
Daniel Barbero 2022-11-18 14:04:54 +01:00
parent a31733ffef
commit 4118a46b9f
7 changed files with 90 additions and 15 deletions

View File

@ -1,5 +1,6 @@
START TRANSACTION;
ALTER TABLE `tevent_filter` ADD COLUMN `owner_user` INT NOT NULL DEFAULT 0;
ALTER TABLE `tevent_filter` ADD COLUMN `owner_user` TEXT;
ALTER TABLE `tevent_filter` ADD COLUMN `not_search` INT NOT NULL DEFAULT 0;
COMMIT;

View File

@ -66,6 +66,7 @@ if ($id) {
$severity = explode(',', $filter['severity']);
$status = $filter['status'];
$search = $filter['search'];
$not_search = $filter['not_search'];
$text_agent = $filter['text_agent'];
$id_agent = $filter['id_agent'];
$text_module = $filter['text_module'];
@ -116,6 +117,7 @@ if ($id) {
$severity = '';
$status = '';
$search = '';
$not_search = 0;
$text_agent = '';
$pagination = '';
$event_view_hr = '';
@ -142,6 +144,7 @@ if ($update || $create) {
$severity = implode(',', get_parameter('severity', -1));
$status = get_parameter('status', '');
$search = get_parameter('search', '');
$not_search = get_parameter_switch('not_search', 0);
$text_agent = get_parameter('text_agent', '');
$id_agent = (int) get_parameter('id_agent');
$text_module = get_parameter('text_module', '');
@ -188,6 +191,7 @@ if ($update || $create) {
'severity' => $severity,
'status' => $status,
'search' => $search,
'not_search' => $not_search,
'text_agent' => $text_agent,
'id_agent_module' => $id_agent_module,
'id_agent' => $id_agent,
@ -380,6 +384,15 @@ $table->data[6][1] = html_print_input_text(
255,
true
);
$table->data[6][1] .= ' '.html_print_checkbox_switch(
'not_search',
$not_search,
$not_search,
true,
false,
'checked_slide_events(this);',
true
);
$table->data[7][0] = '<b>'.__('Agent search').'</b>';
$params = [];
@ -747,6 +760,14 @@ $(document).ready( function() {
});
function checked_slide_events(element) {
var value = $("#checkbox-"+element.name).val();
if (value == 0) {
$("#checkbox-"+element.name).val(1);
} else {
$("#checkbox-"+element.name).val(0);
}
}
function click_button_remove_tag(what_button) {
if (what_button == "with") {

View File

@ -351,6 +351,7 @@ if ($save_event_filter) {
$values['severity'] = implode(',', get_parameter('severity', -1));
$values['status'] = get_parameter('status');
$values['search'] = get_parameter('search');
$values['not_search'] = get_parameter('not_search');
$values['text_agent'] = get_parameter('text_agent');
$values['id_agent'] = get_parameter('id_agent');
$values['id_agent_module'] = get_parameter('id_agent_module');
@ -410,6 +411,7 @@ if ($update_event_filter) {
$values['severity'] = implode(',', get_parameter('severity', -1));
$values['status'] = get_parameter('status');
$values['search'] = get_parameter('search');
$values['not_search'] = get_parameter('not_search');
$values['text_agent'] = get_parameter('text_agent');
$values['id_agent'] = get_parameter('id_agent');
$values['id_agent_module'] = get_parameter('id_agent_module');
@ -645,6 +647,8 @@ function load_form_filter() {
$("#status").val(val);
if (i == 'search')
$('#text-search').val(val);
if (i == 'not_search')
$('#checkbox-not_search').val(val);
if (i == 'text_agent')
$('input[name=text_agent]').val(val);
if (i == 'id_agent')
@ -903,6 +907,7 @@ function save_new_filter() {
"severity" : $("#severity").val(),
"status" : $("#status").val(),
"search" : $("#text-search").val(),
"not_search" : $("#checkbox-not_search").val(),
"text_agent" : $("#text_id_agent").val(),
"id_agent" : $('input:hidden[name=id_agent]').val(),
"id_agent_module" : $('input:hidden[name=module_search_hidden]').val(),
@ -981,6 +986,7 @@ function save_update_filter() {
"severity" : $("#severity").val(),
"status" : $("#status").val(),
"search" : $("#text-search").val(),
"not_search" : $("#checkbox-not_search").val(),
"text_agent" : $("#text_id_agent").val(),
"id_agent" : $('input:hidden[name=id_agent]').val(),
"id_agent_module" : $('input:hidden[name=module_search_hidden]').val(),
@ -2424,6 +2430,7 @@ if ($get_events_fired) {
'severity' => -1,
'status' => -1,
'search' => '',
'not_search' => 0,
'text_agent' => '',
'id_agent' => 0,
'id_agent_module' => 0,

View File

@ -640,6 +640,7 @@ function events_update_status($id_evento, $status, $filter=null)
* 'status'
* 'agent_alias'
* 'search'
* 'not_search'
* 'id_extra'
* 'id_source_event'
* 'user_comment'
@ -1059,16 +1060,40 @@ function events_get_all(
$custom_data_search = 'te.custom_data';
}
$sql_filters[] = vsprintf(
' AND (lower(ta.alias) like lower("%%%s%%")
OR te.id_evento like "%%%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%%")
OR lower('.$custom_data_search.') like lower("%%%s%%") )',
array_fill(0, 7, $filter['search'])
);
$not_search = '';
$nexo = 'OR';
$array_search = [
'te.id_evento',
'lower(te.evento)',
'lower(te.user_comment)',
'lower(te.id_extra)',
'lower(te.source)',
'lower('.$custom_data_search.')',
];
if (isset($filter['not_search']) === true
&& empty($filter['not_search']) === false
) {
$not_search = 'NOT';
$nexo = 'AND';
} else {
$array_search[] = 'lower(ta.alias)';
}
$sql_search = ' AND (';
foreach ($array_search as $key => $field) {
$sql_search .= sprintf(
'%s %s %s like lower("%%%s%%")',
($key === 0) ? '' : $nexo,
$field,
$not_search,
$filter['search']
);
$sql_search .= ' ';
}
$sql_search .= ' )';
$sql_filters[] = $sql_search;
}
// Free search exclude.

View File

@ -140,6 +140,11 @@ form.flex-row div.filter_input.filter_input_switch .p-slider {
width: 30px;
}
form .filter_input_not_search .p-switch {
flex: 0 1 30px;
margin: 0;
}
fieldset {
margin: 0 auto;
}

View File

@ -122,6 +122,10 @@ $search = get_parameter(
'filter[search]',
($filter['search'] ?? '')
);
$not_search = get_parameter(
'filter[not_search]',
0
);
$text_agent = get_parameter(
'filter[text_agent]',
($filter['text_agent'] ?? '')
@ -1080,6 +1084,7 @@ if ($loaded_filter !== false && $from_event_graph != 1 && isset($fb64) === false
$severity = $filter['severity'];
$status = $filter['status'];
$search = $filter['search'];
$not_search = $filter['not_search'];
$text_agent = $filter['text_agent'];
$id_agent = $filter['id_agent'];
$id_agent_module = $filter['id_agent_module'];
@ -1692,7 +1697,17 @@ $inputs[] = $in;
// Free search.
$data = html_print_input_text('search', $search, '', '', 255, true);
$in = '<div class="filter_input"><label>'.__('Free search').'</label>';
// Search recursive groups.
$data .= html_print_checkbox_switch(
'not_search',
$not_search,
$not_search,
true,
false,
'checked_slide_events(this);',
true
);
$in = '<div class="filter_input filter_input_not_search"><label>'.__('Free search').'</label>';
$in .= $data.'</div>';
$inputs[] = $in;
@ -1732,7 +1747,7 @@ $data = html_print_checkbox_switch(
$search_recursive_groups,
true,
false,
'search_in_secondary_groups(this);',
'checked_slide_events(this);',
true
);
@ -1754,7 +1769,7 @@ $data = html_print_checkbox_switch(
$search_secondary_groups,
true,
false,
'search_in_secondary_groups(this);',
'checked_slide_events(this);',
true
);
@ -3066,7 +3081,7 @@ $(document).ready( function() {
});
function search_in_secondary_groups(element) {
function checked_slide_events(element) {
var value = $("#checkbox-"+element.name).val();
if (value == 0) {
$("#checkbox-"+element.name).val(1);

View File

@ -1238,6 +1238,7 @@ CREATE TABLE IF NOT EXISTS `tevent_filter` (
`severity` TEXT,
`status` INT NOT NULL DEFAULT -1,
`search` TEXT,
`not_search` INT NOT NULL DEFAULT 0,
`text_agent` TEXT,
`id_agent` INT DEFAULT 0,
`id_agent_module` INT DEFAULT 0,