mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 08:14:38 +02:00
Event filters
This commit is contained in:
parent
ef3d299d58
commit
48e6fef0b7
@ -26,6 +26,9 @@
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
global $config;
|
||||
|
||||
require_once 'include/functions_events.php';
|
||||
require_once 'include/functions_agents.php';
|
||||
require_once 'include/functions_ui.php';
|
||||
@ -35,6 +38,21 @@ require_once 'include/functions.php';
|
||||
enterprise_include_once('meta/include/functions_events_meta.php');
|
||||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
|
||||
// Check access.
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'ER')
|
||||
&& ! check_acl($config['id_user'], 0, 'EW')
|
||||
&& ! check_acl($config['id_user'], 0, 'EM')
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access event viewer'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
$get_events_details = (bool) get_parameter('get_events_details');
|
||||
$get_list_events_agents = (bool) get_parameter('get_list_events_agents');
|
||||
$get_extended_event = (bool) get_parameter('get_extended_event');
|
||||
@ -55,6 +73,567 @@ $total_events = (bool) get_parameter('total_events');
|
||||
$total_event_graph = (bool) get_parameter('total_event_graph');
|
||||
$graphic_event_group = (bool) get_parameter('graphic_event_group');
|
||||
$get_table_response_command = (bool) get_parameter('get_table_response_command');
|
||||
$save_filter_modal = get_parameter('save_filter_modal', 0);
|
||||
$load_filter_modal = get_parameter('load_filter_modal', 0);
|
||||
$save_filter = get_parameter('save_filter', 0);
|
||||
$get_filter_values = get_parameter('get_filter_values', 0);
|
||||
$update_event_filter = get_parameter('update_event_filter', 0);
|
||||
$save_event_filter = get_parameter('save_event_filter', 0);
|
||||
|
||||
// Saves an event filter.
|
||||
if ($save_event_filter) {
|
||||
$values = [];
|
||||
$values['id_name'] = get_parameter('id_name');
|
||||
$values['id_group'] = get_parameter('id_group');
|
||||
$values['event_type'] = get_parameter('event_type');
|
||||
$values['severity'] = get_parameter('severity');
|
||||
$values['status'] = get_parameter('status');
|
||||
$values['search'] = get_parameter('search');
|
||||
$values['text_agent'] = get_parameter('text_agent');
|
||||
$values['id_agent'] = get_parameter('id_agent');
|
||||
$values['id_agent_module'] = get_parameter('id_agent_module');
|
||||
$values['pagination'] = get_parameter('pagination');
|
||||
$values['event_view_hr'] = get_parameter('event_view_hr');
|
||||
$values['id_user_ack'] = get_parameter('id_user_ack');
|
||||
$values['group_rep'] = get_parameter('group_rep');
|
||||
$values['tag_with'] = get_parameter('tag_with', io_json_mb_encode([]));
|
||||
$values['tag_without'] = get_parameter(
|
||||
'tag_without',
|
||||
io_json_mb_encode([])
|
||||
);
|
||||
$values['filter_only_alert'] = get_parameter('filter_only_alert');
|
||||
$values['id_group_filter'] = get_parameter('id_group_filter');
|
||||
$values['date_from'] = get_parameter('date_from');
|
||||
$values['date_to'] = get_parameter('date_to');
|
||||
$values['source'] = get_parameter('source');
|
||||
$values['id_extra'] = get_parameter('id_extra');
|
||||
$values['user_comment'] = get_parameter('user_comment');
|
||||
|
||||
$exists = (bool) db_get_value_filter(
|
||||
'id_filter',
|
||||
'tevent_filter',
|
||||
$values
|
||||
);
|
||||
|
||||
if ($exists) {
|
||||
echo 'duplicate';
|
||||
} else {
|
||||
$result = db_process_sql_insert('tevent_filter', $values);
|
||||
|
||||
if ($result === false) {
|
||||
echo 'error';
|
||||
} else {
|
||||
echo $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($update_event_filter) {
|
||||
$values = [];
|
||||
$id = get_parameter('id');
|
||||
$values['id_group'] = get_parameter('id_group');
|
||||
$values['event_type'] = get_parameter('event_type');
|
||||
$values['severity'] = get_parameter('severity');
|
||||
$values['status'] = get_parameter('status');
|
||||
$values['search'] = get_parameter('search');
|
||||
$values['text_agent'] = get_parameter('text_agent');
|
||||
$values['id_agent'] = get_parameter('id_agent');
|
||||
$values['id_agent_module'] = get_parameter('id_agent_module');
|
||||
$values['pagination'] = get_parameter('pagination');
|
||||
$values['event_view_hr'] = get_parameter('event_view_hr');
|
||||
$values['id_user_ack'] = get_parameter('id_user_ack');
|
||||
$values['group_rep'] = get_parameter('group_rep');
|
||||
$values['tag_with'] = get_parameter('tag_with', io_json_mb_encode([]));
|
||||
$values['tag_without'] = get_parameter(
|
||||
'tag_without',
|
||||
io_json_mb_encode([])
|
||||
);
|
||||
$values['filter_only_alert'] = get_parameter('filter_only_alert');
|
||||
$values['id_group_filter'] = get_parameter('id_group_filter');
|
||||
$values['date_from'] = get_parameter('date_from');
|
||||
$values['date_to'] = get_parameter('date_to');
|
||||
$values['source'] = get_parameter('source');
|
||||
$values['id_extra'] = get_parameter('id_extra');
|
||||
$values['user_comment'] = get_parameter('user_comment');
|
||||
|
||||
if (io_safe_output($values['tag_with']) == '["0"]') {
|
||||
$values['tag_with'] = '[]';
|
||||
}
|
||||
|
||||
if (io_safe_output($values['tag_without']) == '["0"]') {
|
||||
$values['tag_without'] = '[]';
|
||||
}
|
||||
|
||||
$result = db_process_sql_update(
|
||||
'tevent_filter',
|
||||
$values,
|
||||
['id_filter' => $id]
|
||||
);
|
||||
|
||||
if ($result === false) {
|
||||
echo 'error';
|
||||
} else {
|
||||
echo 'ok';
|
||||
}
|
||||
}
|
||||
|
||||
// Get db values of a single filter.
|
||||
if ($get_filter_values) {
|
||||
$id_filter = get_parameter('id');
|
||||
|
||||
$event_filter = events_get_event_filter($id_filter);
|
||||
|
||||
$event_filter['search'] = io_safe_output($event_filter['search']);
|
||||
$event_filter['id_name'] = io_safe_output($event_filter['id_name']);
|
||||
$event_filter['tag_with'] = base64_encode(
|
||||
io_safe_output($event_filter['tag_with'])
|
||||
);
|
||||
$event_filter['tag_without'] = base64_encode(
|
||||
io_safe_output($event_filter['tag_without'])
|
||||
);
|
||||
|
||||
echo io_json_mb_encode($event_filter);
|
||||
}
|
||||
|
||||
if ($load_filter_modal) {
|
||||
$current = get_parameter('current_filter', '');
|
||||
$filters = events_get_event_filter_select();
|
||||
$user_groups_array = users_get_groups_for_select(
|
||||
$config['id_user'],
|
||||
$access,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
|
||||
echo '<div id="load-filter-select" class="load-filter-modal">';
|
||||
$table = new StdClass;
|
||||
$table->id = 'load_filter_form';
|
||||
$table->width = '100%';
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 4;
|
||||
$table->class = 'databox';
|
||||
if (is_metaconsole()) {
|
||||
$table->cellspacing = 0;
|
||||
$table->cellpadding = 0;
|
||||
$table->class = 'databox filters';
|
||||
}
|
||||
|
||||
$table->styleTable = 'font-weight: bold; color: #555; text-align:left;';
|
||||
if (!is_metaconsole()) {
|
||||
$table->style[0] = 'width: 50%; width:50%;';
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$table->rowid[3] = 'update_filter_row1';
|
||||
$data[0] = __('Load filter').$jump;
|
||||
$data[0] .= html_print_select(
|
||||
$filters,
|
||||
'filter_id',
|
||||
$current,
|
||||
'',
|
||||
__('None'),
|
||||
0,
|
||||
true
|
||||
);
|
||||
$data[1] = html_print_submit_button(
|
||||
__('Load filter'),
|
||||
'load_filter',
|
||||
false,
|
||||
'class="sub upd" onclick="load_form_filter();"',
|
||||
true
|
||||
);
|
||||
$table->data[] = $data;
|
||||
$table->rowclass[] = '';
|
||||
|
||||
html_print_table($table);
|
||||
echo '</div>';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function show_filter() {
|
||||
$("#load-filter-select").dialog({
|
||||
resizable: true,
|
||||
draggable: true,
|
||||
modal: true,
|
||||
closeOnEscape: true,
|
||||
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
|
||||
});
|
||||
}
|
||||
|
||||
function load_form_filter() {
|
||||
jQuery.post (
|
||||
"<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
{
|
||||
"page" : "include/ajax/events",
|
||||
"get_filter_values" : 1,
|
||||
"id" : $('#filter_id').val()
|
||||
},
|
||||
function (data) {
|
||||
jQuery.each (data, function (i, val) {
|
||||
if (i == 'id_name')
|
||||
$("#hidden-id_name").val(val);
|
||||
if (i == 'id_group')
|
||||
$("#id_group").val(val);
|
||||
if (i == 'event_type')
|
||||
$("#event_type").val(val);
|
||||
if (i == 'severity')
|
||||
$("#severity").val(val);
|
||||
if (i == 'status')
|
||||
$("#status").val(val);
|
||||
if (i == 'search')
|
||||
$("#text-search").val(val);
|
||||
if (i == 'text_agent')
|
||||
$("#text_id_agent").val(val);
|
||||
if (i == 'id_agent')
|
||||
$('input:hidden[name=id_agent]').val(val);
|
||||
if (i == 'id_agent_module')
|
||||
$('input:hidden[name=module_search_hidden]').val(val);
|
||||
if (i == 'pagination')
|
||||
$("#pagination").val(val);
|
||||
if (i == 'event_view_hr')
|
||||
$("#text-event_view_hr").val(val);
|
||||
if (i == 'id_user_ack')
|
||||
$("#id_user_ack").val(val);
|
||||
if (i == 'group_rep')
|
||||
$("#group_rep").val(val);
|
||||
if (i == 'tag_with')
|
||||
$("#hidden-tag_with").val(val);
|
||||
if (i == 'tag_without')
|
||||
$("#hidden-tag_without").val(val);
|
||||
if (i == 'filter_only_alert')
|
||||
$("#filter_only_alert").val(val);
|
||||
if (i == 'id_group_filter')
|
||||
$("#id_group_filter").val(val);
|
||||
if (i == 'source')
|
||||
$("#text-source").val(val);
|
||||
if (i == 'id_extra')
|
||||
$("#text-id_extra").val(val);
|
||||
if (i == 'user_comment')
|
||||
$("#text-user_comment").val(val);
|
||||
});
|
||||
reorder_tags_inputs();
|
||||
// Update the info with the loaded filter
|
||||
$('#filterid').val($('#filter_id').val());
|
||||
$('#filter_loaded_span').html($('#filter_loaded_text').html() + ': ' + $("#hidden-id_name").val());
|
||||
|
||||
},
|
||||
"json"
|
||||
);
|
||||
|
||||
// Close dialog.
|
||||
$("#load-filter-select").dialog('close');
|
||||
}
|
||||
|
||||
$(document).ready (function() {
|
||||
show_filter();
|
||||
})
|
||||
|
||||
</script>
|
||||
<?php
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if ($save_filter_modal) {
|
||||
echo '<div id="save-filter-select">';
|
||||
if (check_acl($config['id_user'], 0, 'EW')
|
||||
|| check_acl($config['id_user'], 0, 'EM')
|
||||
) {
|
||||
echo '<div id="#info_box"></div>';
|
||||
$table = new StdClass;
|
||||
$table->id = 'save_filter_form';
|
||||
$table->width = '100%';
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 4;
|
||||
$table->class = 'databox';
|
||||
if (is_metaconsole()) {
|
||||
$table->class = 'databox filters';
|
||||
$table->cellspacing = 0;
|
||||
$table->cellpadding = 0;
|
||||
}
|
||||
|
||||
$table->styleTable = 'font-weight: bold; text-align:left;';
|
||||
if (!is_metaconsole()) {
|
||||
$table->style[0] = 'width: 50%; width:50%;';
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$table->rowid[0] = 'update_save_selector';
|
||||
$data[0] = html_print_radio_button(
|
||||
'filter_mode',
|
||||
'new',
|
||||
'',
|
||||
true,
|
||||
true
|
||||
).__('New filter').'';
|
||||
|
||||
$data[1] = html_print_radio_button(
|
||||
'filter_mode',
|
||||
'update',
|
||||
'',
|
||||
false,
|
||||
true
|
||||
).__('Update filter').'';
|
||||
|
||||
$table->data[] = $data;
|
||||
$table->rowclass[] = '';
|
||||
|
||||
$data = [];
|
||||
$table->rowid[1] = 'save_filter_row1';
|
||||
$data[0] = __('Filter name').$jump;
|
||||
$data[0] .= html_print_input_text('id_name', '', '', 15, 255, true);
|
||||
if (is_metaconsole()) {
|
||||
$data[1] = __('Save in Group').$jump;
|
||||
} else {
|
||||
$data[1] = __('Filter group').$jump;
|
||||
}
|
||||
|
||||
$data[1] .= html_print_select(
|
||||
$user_groups_array,
|
||||
'id_group_filter',
|
||||
$id_group_filter,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'w130'
|
||||
);
|
||||
|
||||
$table->data[] = $data;
|
||||
$table->rowclass[] = '';
|
||||
|
||||
$data = [];
|
||||
$table->rowid[2] = 'save_filter_row2';
|
||||
|
||||
$table->data[] = $data;
|
||||
$table->rowclass[] = '';
|
||||
|
||||
$data = [];
|
||||
$table->rowid[3] = 'update_filter_row1';
|
||||
$data[0] = __('Overwrite filter').$jump;
|
||||
// Fix : Only admin user can see filters of group ALL for update.
|
||||
$_filters_update = events_get_event_filter_select(false);
|
||||
|
||||
$data[0] .= html_print_select(
|
||||
$_filters_update,
|
||||
'overwrite_filter',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
$data[1] = html_print_submit_button(
|
||||
__('Update filter'),
|
||||
'update_filter',
|
||||
false,
|
||||
'class="sub upd" onclick="save_update_filter();"',
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[] = $data;
|
||||
$table->rowclass[] = '';
|
||||
|
||||
html_print_table($table);
|
||||
echo '<div>';
|
||||
echo html_print_submit_button(
|
||||
__('Save filter'),
|
||||
'save_filter',
|
||||
false,
|
||||
'class="sub upd" style="float:right;" onclick="save_new_filter();"',
|
||||
true
|
||||
);
|
||||
echo '</div>';
|
||||
} else {
|
||||
include 'general/noaccess.php';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function show_save_filter() {
|
||||
$("#save-filter-select").dialog({
|
||||
resizable: true,
|
||||
draggable: true,
|
||||
modal: true,
|
||||
closeOnEscape: true,
|
||||
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
|
||||
});
|
||||
}
|
||||
|
||||
function save_new_filter() {
|
||||
// If the filter name is blank show error
|
||||
if ($('#text-id_name').val() == '') {
|
||||
$('#show_filter_error').html("<h3 class='error'><?php echo __('Filter name cannot be left blank'); ?></h3>");
|
||||
|
||||
// Close dialog
|
||||
$('.ui-dialog-titlebar-close').trigger('click');
|
||||
return false;
|
||||
}
|
||||
|
||||
var id_filter_save;
|
||||
|
||||
jQuery.post ("<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
{
|
||||
"page" : "operation/events/events_list",
|
||||
"save_event_filter" : 1,
|
||||
"id_name" : $("#text-id_name").val(),
|
||||
"id_group" : $("select#id_group").val(),
|
||||
"event_type" : $("#event_type").val(),
|
||||
"severity" : $("#severity").val(),
|
||||
"status" : $("#status").val(),
|
||||
"search" : $("#text-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(),
|
||||
"pagination" : $("#pagination").val(),
|
||||
"event_view_hr" : $("#text-event_view_hr").val(),
|
||||
"id_user_ack" : $("#id_user_ack").val(),
|
||||
"group_rep" : $("#group_rep").val(),
|
||||
"tag_with": Base64.decode($("#hidden-tag_with").val()),
|
||||
"tag_without": Base64.decode($("#hidden-tag_without").val()),
|
||||
"filter_only_alert" : $("#filter_only_alert").val(),
|
||||
"id_group_filter": $("#id_group_filter").val(),
|
||||
"date_from": $("#text-date_from").val(),
|
||||
"date_to": $("#text-date_to").val(),
|
||||
"source": $("#text-source").val(),
|
||||
"id_extra": $("#text-id_extra").val(),
|
||||
"user_comment": $("#text-user_comment").val()
|
||||
},
|
||||
function (data) {
|
||||
$("#info_box").hide();
|
||||
if (data == 'error') {
|
||||
$("#info_box").filter(function(i, item) {
|
||||
if ($(item).data('type_info_box') == "error_create_filter") {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}).show();
|
||||
}
|
||||
else if (data == 'duplicate') {
|
||||
$("#info_box").filter(function(i, item) {
|
||||
if ($(item).data('type_info_box') == "duplicate_create_filter") {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}).show();
|
||||
}
|
||||
else {
|
||||
id_filter_save = data;
|
||||
|
||||
$("#info_box").filter(function(i, item) {
|
||||
if ($(item).data('type_info_box') == "success_create_filter") {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}).show();
|
||||
}
|
||||
|
||||
// Close dialog.
|
||||
$("#save-filter-select").dialog('close');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// This updates an event filter
|
||||
function save_update_filter() {
|
||||
var id_filter_update = $("#overwrite_filter").val();
|
||||
var name_filter_update = $("#overwrite_filter option[value='"+id_filter_update+"']").text();
|
||||
|
||||
jQuery.post ("<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
{"page" : "operation/events/events_list",
|
||||
"update_event_filter" : 1,
|
||||
"id" : $("#overwrite_filter").val(),
|
||||
"id_group" : $("select#id_group").val(),
|
||||
"event_type" : $("#event_type").val(),
|
||||
"severity" : $("#severity").val(),
|
||||
"status" : $("#status").val(),
|
||||
"search" : $("#text-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(),
|
||||
"pagination" : $("#pagination").val(),
|
||||
"event_view_hr" : $("#text-event_view_hr").val(),
|
||||
"id_user_ack" : $("#id_user_ack").val(),
|
||||
"group_rep" : $("#group_rep").val(),
|
||||
"tag_with" : Base64.decode($("#hidden-tag_with").val()),
|
||||
"tag_without" : Base64.decode($("#hidden-tag_without").val()),
|
||||
"filter_only_alert" : $("#filter_only_alert").val(),
|
||||
"id_group_filter": $("#id_group_filter").val(),
|
||||
"date_from": $("#text-date_from").val(),
|
||||
"date_to": $("#text-date_to").val(),
|
||||
"source": $("#text-source").val(),
|
||||
"id_extra": $("#text-id_extra").val(),
|
||||
"user_comment": $("#text-user_comment").val()
|
||||
},
|
||||
function (data) {
|
||||
$(".info_box").hide();
|
||||
if (data == 'ok') {
|
||||
$(".info_box").filter(function(i, item) {
|
||||
if ($(item).data('type_info_box') == "success_update_filter") {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}).show();
|
||||
}
|
||||
else {
|
||||
$(".info_box").filter(function(i, item) {
|
||||
if ($(item).data('type_info_box') == "error_create_filter") {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}).show();
|
||||
}
|
||||
});
|
||||
|
||||
// First remove all options of filters select
|
||||
$('#filter_id').find('option').remove().end();
|
||||
// Add 'none' option the first
|
||||
$('#filter_id').append ($('<option></option>').html ( <?php echo "'".__('none')."'"; ?> ).attr ("value", 0));
|
||||
// Reload filters select
|
||||
jQuery.post ("<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
{"page" : "operation/events/events_list",
|
||||
"get_event_filters" : 1
|
||||
},
|
||||
function (data) {
|
||||
jQuery.each (data, function (i, val) {
|
||||
s = js_html_entity_decode(val);
|
||||
if (i == id_filter_update) {
|
||||
$('#filter_id').append ($('<option selected="selected"></option>').html (s).attr ("value", i));
|
||||
}
|
||||
else {
|
||||
$('#filter_id').append ($('<option></option>').html (s).attr ("value", i));
|
||||
}
|
||||
});
|
||||
},
|
||||
"json"
|
||||
);
|
||||
|
||||
// Close dialog
|
||||
$('.ui-dialog-titlebar-close').trigger('click');
|
||||
|
||||
// Update the info with the loaded filter
|
||||
$("#hidden-id_name").val($('#text-id_name').val());
|
||||
$('#filter_loaded_span').html($('#filter_loaded_text').html() + ': ' + name_filter_update);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function (){
|
||||
show_save_filter();
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if ($get_event_name) {
|
||||
$event_id = get_parameter('event_id');
|
||||
@ -418,7 +997,7 @@ if ($get_extended_event) {
|
||||
}
|
||||
|
||||
// Tabs.
|
||||
$tabs = "<ul class='events_tabs'>";
|
||||
$tabs = "<ul class=''>";
|
||||
$tabs .= "<li><a href='#extended_event_general_page' id='link_general'>".html_print_image('images/lightning_go.png', true).'<span>'.__('General').'</span></a></li>';
|
||||
if (events_has_extended_info($event['id_evento']) === true) {
|
||||
$tabs .= "<li><a href='#extended_event_related_page' id='link_related'>".html_print_image('images/zoom.png', true).'<span>'.__('Related').'</span></a></li>';
|
||||
@ -443,11 +1022,11 @@ if ($get_extended_event) {
|
||||
$childrens_ids
|
||||
)))
|
||||
) {
|
||||
$tabs .= "<li><a href='#extended_event_responses_page' id='link_responses'>".html_print_image('images/event_responses_col.png', true)."<span style='position:relative;top:-6px;left:3px;margin-right:10px;'>".__('Responses').'</span></a></li>';
|
||||
$tabs .= "<li><a href='#extended_event_responses_page' id='link_responses'>".html_print_image('images/event_responses_col.png', true).'<span>'.__('Responses').'</span></a></li>';
|
||||
}
|
||||
|
||||
if ($event['custom_data'] != '') {
|
||||
$tabs .= "<li><a href='#extended_event_custom_data_page' id='link_custom_data'>".html_print_image('images/custom_field_col.png', true)."<span style='position:relative;top:-6px;left:3px;margin-right:10px;'>".__('Custom data').'</span></a></li>';
|
||||
$tabs .= "<li><a href='#extended_event_custom_data_page' id='link_custom_data'>".html_print_image('images/custom_field_col.png', true).'<span>'.__('Custom data').'</span></a></li>';
|
||||
}
|
||||
|
||||
$tabs .= '</ul>';
|
||||
|
@ -2847,7 +2847,7 @@ class NetworkMap
|
||||
__('Node Details'),
|
||||
'',
|
||||
false,
|
||||
false
|
||||
true
|
||||
);
|
||||
|
||||
$output .= '</div>';
|
||||
|
@ -393,6 +393,7 @@ function events_get_all(
|
||||
}
|
||||
|
||||
$tgrupo_join = 'LEFT';
|
||||
$tgrupo_join_filters = [];
|
||||
if (isset($filter['id_group_filter']) && $filter['id_group_filter'] > 0) {
|
||||
$tgrupo_join = 'INNER';
|
||||
$tgrupo_join_filters[] = sprintf(
|
||||
@ -405,8 +406,21 @@ function events_get_all(
|
||||
db_process_sql('SET group_concat_max_len = 9999999');
|
||||
$event_lj = events_get_secondary_groups_left_join($table);
|
||||
|
||||
$group_selects = '';
|
||||
if ($group_by != '') {
|
||||
if ($fields['0'] != 'count') {
|
||||
$group_selects = ',GROUP_CONCAT(DISTINCT user_comment SEPARATOR "<br>") AS user_comment,
|
||||
GROUP_CONCAT(DISTINCT id_evento SEPARATOR ",") AS similar_ids,
|
||||
COUNT(id_evento) AS event_rep, MAX(utimestamp) AS timestamp_rep,
|
||||
MIN(utimestamp) AS timestamp_rep_min';
|
||||
|
||||
unset($fields[array_search('te.user_comment', $fields)]);
|
||||
}
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT %s
|
||||
%s
|
||||
FROM %s
|
||||
%s
|
||||
%s JOIN tagente ta
|
||||
@ -422,6 +436,7 @@ function events_get_all(
|
||||
%s
|
||||
',
|
||||
join(',', $fields),
|
||||
$group_selects,
|
||||
$tevento,
|
||||
$event_lj,
|
||||
$tagente_join,
|
||||
|
@ -2801,8 +2801,18 @@ function ui_progress(
|
||||
* 'column2',
|
||||
* ...
|
||||
* ],
|
||||
* 'no_sortable_columns' => [ indexes ] 1,2... -1 etc. Avoid sorting.
|
||||
* 'form' => [
|
||||
* 'html' => 'html code' a directly defined inputs in HTML.
|
||||
* 'extra_buttons' => [
|
||||
* [
|
||||
* 'id' => button id,
|
||||
* 'class' => button class,
|
||||
* 'style' => button style,
|
||||
* 'text' => button text,
|
||||
* 'onclick' => button onclick,
|
||||
* ]
|
||||
* ],
|
||||
* 'search_button_class' => search button class.
|
||||
* 'class' => form class.
|
||||
* 'id' => form id.
|
||||
@ -2850,6 +2860,11 @@ function ui_print_datatable(array $parameters)
|
||||
$parameters['default_pagination'] = $config['block_size'];
|
||||
}
|
||||
|
||||
$no_sortable_columns = [];
|
||||
if (isset($parameters['no_sortable_columns'])) {
|
||||
$no_sortable_columns = json_encode($parameters['no_sortable_columns']);
|
||||
}
|
||||
|
||||
if (!is_array($parameters['order'])) {
|
||||
$order = '0, "asc"';
|
||||
} else {
|
||||
@ -2877,7 +2892,7 @@ function ui_print_datatable(array $parameters)
|
||||
$parameters['ajax_data'] = '';
|
||||
}
|
||||
|
||||
$search_button_class = 'sub search';
|
||||
$search_button_class = 'sub filter';
|
||||
if (isset($parameters['search_button_class'])) {
|
||||
$search_button_class = $parameters['search_button_class'];
|
||||
}
|
||||
@ -2977,8 +2992,19 @@ function ui_print_datatable(array $parameters)
|
||||
$filter .= '</li>';
|
||||
}
|
||||
|
||||
// Search button.
|
||||
$filter .= '<li>';
|
||||
if (is_array($parameters['form']['extra_buttons'])) {
|
||||
foreach ($parameters['form']['extra_buttons'] as $button) {
|
||||
$filter .= '<button id="'.$button['id'].'" ';
|
||||
$filter .= ' class="'.$button['class'].'" ';
|
||||
$filter .= ' style="'.$button['style'].'" ';
|
||||
$filter .= ' onclick="'.$button['onclick'].'" >';
|
||||
$filter .= $button['text'];
|
||||
$filter .= '</button>';
|
||||
}
|
||||
}
|
||||
|
||||
// Search button.
|
||||
$filter .= '<input type="submit" class="'.$search_button_class.'" ';
|
||||
$filter .= ' id="'.$form_id.'_search_bt" value="'.__('Filter').'"/>';
|
||||
$filter .= '</li>';
|
||||
@ -3078,7 +3104,9 @@ function ui_print_datatable(array $parameters)
|
||||
if (isset($parameters['ajax_postprocess'])) {
|
||||
$js .= '
|
||||
if (json.data) {
|
||||
json.data.forEach('.$parameters['ajax_postprocess'].');
|
||||
json.data.forEach(function(item) {
|
||||
'.$parameters['ajax_postprocess'].'
|
||||
});
|
||||
} else {
|
||||
json.data = {};
|
||||
}';
|
||||
@ -3110,7 +3138,8 @@ function ui_print_datatable(array $parameters)
|
||||
}
|
||||
},
|
||||
"columnDefs": [
|
||||
{ className: "no-class", targets: "_all" }
|
||||
{ className: "no-class", targets: "_all" },
|
||||
{ bSortable: false, targets: '.$no_sortable_columns.' }
|
||||
],
|
||||
columns: [';
|
||||
|
||||
|
@ -56,8 +56,8 @@ function show_event_dialog(event_id, group_rep, dialog_page, result) {
|
||||
opacity: 0.5,
|
||||
background: "black"
|
||||
},
|
||||
width: 725,
|
||||
height: 530
|
||||
width: 850,
|
||||
height: 750
|
||||
})
|
||||
.show();
|
||||
|
||||
|
@ -12,7 +12,7 @@ div.criticity {
|
||||
}
|
||||
|
||||
div.mini-criticity {
|
||||
width: 5px;
|
||||
width: 10px;
|
||||
height: 3em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
@ -184,3 +184,117 @@ fieldset {
|
||||
border: none;
|
||||
margin-top: -2em;
|
||||
}
|
||||
|
||||
/* Image open dialog in group events by agents*/
|
||||
#open_agent_groups {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.table_modal_alternate {
|
||||
border-spacing: 0px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Modal window - Show More */
|
||||
table.table_modal_alternate tr:nth-child(odd) td {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
table.table_modal_alternate tr:nth-child(even) td {
|
||||
background-color: #f9f9f9;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
table.table_modal_alternate tr td {
|
||||
height: 33px;
|
||||
max-height: 33px;
|
||||
min-height: 33px;
|
||||
}
|
||||
|
||||
table.table_modal_alternate tr td:first-child {
|
||||
width: 35%;
|
||||
font-weight: bold;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
ul.events_tabs {
|
||||
background: #ffffff;
|
||||
border: 0px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
ul.events_tabs:before,
|
||||
ul.events_tabs:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
ul.events_tabs > li {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
float: none;
|
||||
outline-width: 0;
|
||||
}
|
||||
|
||||
ul.events_tabs > li.ui-state-default {
|
||||
background: #fff;
|
||||
border: none;
|
||||
border-bottom: 2px solid #cacaca;
|
||||
}
|
||||
|
||||
ul.events_tabs > li a {
|
||||
text-align: center;
|
||||
float: none;
|
||||
padding: 8px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
ul.events_tabs > li span {
|
||||
position: relative;
|
||||
top: -6px;
|
||||
left: 5px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
ul.events_tabs > li.ui-tabs-active {
|
||||
border: none;
|
||||
}
|
||||
|
||||
ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header {
|
||||
background: none;
|
||||
margin: 0;
|
||||
margin-bottom: -1px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header
|
||||
li {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header
|
||||
li
|
||||
> a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
}
|
||||
ul.ui-tabs-nav.ui-corner-all.ui-helper-reset.ui-helper-clearfix.ui-widget-header
|
||||
li
|
||||
> a
|
||||
> img {
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
li.ui-tabs-tab.ui-corner-top.ui-state-default.ui-tab {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
li.ui-tabs-tab.ui-corner-top.ui-state-default.ui-tab.ui-tabs-active.ui-state-active {
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
div.extended_event_pages.ui-tabs-panel.ui-corner-bottom.ui-widget-content {
|
||||
border-top: 1px solid #a9a9a9;
|
||||
}
|
||||
|
@ -88,8 +88,7 @@
|
||||
background-image: url(../images/ui-icons_444444_256x240.png);
|
||||
}
|
||||
.ui-widget-content {
|
||||
background: #ffffff url(../images/ui-bg_flat_75_ffffff_40x100.png) 50% 50%
|
||||
repeat-x;
|
||||
background: #fff;
|
||||
}
|
||||
.ui-state-default,
|
||||
.ui-widget-content .ui-state-default,
|
||||
@ -97,8 +96,7 @@
|
||||
margin-top: 3px;
|
||||
border: 1px solid #d3d3d3;
|
||||
border-bottom: 0;
|
||||
background: #e6e6e6 url(../images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50%
|
||||
repeat-x;
|
||||
background: #e6e6e6;
|
||||
font-weight: normal;
|
||||
color: #555555;
|
||||
}
|
||||
@ -139,7 +137,7 @@
|
||||
}
|
||||
.ui-dialog .ui-widget-header {
|
||||
background-color: #82b92e;
|
||||
margin: -1px;
|
||||
margin: -1px -1px 0px -1px;
|
||||
}
|
||||
.ui_tpicker_hour,
|
||||
.ui_tpicker_minute,
|
||||
@ -213,8 +211,7 @@ a.ui-button:active,
|
||||
.ui-widget-header .ui-state-hover {
|
||||
border: 1px solid #999999;
|
||||
border-bottom: 0;
|
||||
background: #dadada url(../images/ui-bg_glass_75_dadada_1x400.png) 50% 50%
|
||||
repeat-x;
|
||||
background: #dadada;
|
||||
}
|
||||
|
||||
.ui-state-active,
|
||||
@ -222,8 +219,7 @@ a.ui-button:active,
|
||||
.ui-widget-header .ui-state-active {
|
||||
border: 1px solid #aaaaaa;
|
||||
border-bottom: 0;
|
||||
background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50%
|
||||
repeat-x;
|
||||
background: #ffffff;
|
||||
font-weight: normal;
|
||||
color: #212121;
|
||||
}
|
||||
|
@ -517,6 +517,9 @@ select:-internal-list-box {
|
||||
.padding-6 {
|
||||
padding: 6em;
|
||||
}
|
||||
.margin-right-2 {
|
||||
margin-right: 2em;
|
||||
}
|
||||
.no-border {
|
||||
border: none;
|
||||
}
|
||||
@ -544,6 +547,12 @@ select:-internal-list-box {
|
||||
.td-bg-white td {
|
||||
background: #fff;
|
||||
}
|
||||
.float-left {
|
||||
float: left;
|
||||
}
|
||||
.float-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div#page {
|
||||
background: #fbfbfb;
|
||||
@ -632,6 +641,7 @@ p.center {
|
||||
}
|
||||
|
||||
/* --- Botones --- */
|
||||
button.sub,
|
||||
input.sub {
|
||||
font-weight: normal;
|
||||
-moz-border-radius: 2px;
|
||||
@ -645,10 +655,24 @@ input.sub {
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
padding-left: 15px;
|
||||
border-color: #888;
|
||||
border: 1px solid #888;
|
||||
font-family: "lato", "Open Sans", sans-serif;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button.sub:hover,
|
||||
input.sub:hover {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
button.sub:active,
|
||||
input.sub:active {
|
||||
border: 1px solid #000;
|
||||
color: #333;
|
||||
background-color: #e1e1e1;
|
||||
}
|
||||
|
||||
button.sub[disabled],
|
||||
input.sub[disabled] {
|
||||
color: #b4b4b4;
|
||||
background-color: #f3f3f3;
|
||||
@ -1519,6 +1543,24 @@ div#logo_text3 {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
button.next,
|
||||
button.upd,
|
||||
button.ok,
|
||||
button.wand,
|
||||
button.delete,
|
||||
button.cog,
|
||||
button.target,
|
||||
button.search,
|
||||
button.copy,
|
||||
button.add,
|
||||
button.graph,
|
||||
button.percentile,
|
||||
button.binary,
|
||||
button.camera,
|
||||
button.config,
|
||||
button.filter,
|
||||
button.cancel,
|
||||
button.default,
|
||||
input.next,
|
||||
input.upd,
|
||||
input.ok,
|
||||
@ -1534,6 +1576,7 @@ input.percentile,
|
||||
input.binary,
|
||||
input.camera,
|
||||
input.config,
|
||||
input.filter,
|
||||
input.cancel,
|
||||
input.default,
|
||||
input.filter,
|
||||
@ -1542,75 +1585,99 @@ input.spinn {
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
button.next,
|
||||
input.next {
|
||||
background-image: url(../../images/input_go.png);
|
||||
}
|
||||
button.upd,
|
||||
input.upd {
|
||||
background-image: url(../../images/input_update.png);
|
||||
}
|
||||
button.wand,
|
||||
input.wand {
|
||||
background-image: url(../../images/input_wand.png);
|
||||
}
|
||||
button.wand:disabled,
|
||||
input.wand:disabled {
|
||||
background-image: url(../../images/input_wand.disabled.png);
|
||||
}
|
||||
button.search,
|
||||
input.search {
|
||||
background-image: url(../../images/input_zoom.png);
|
||||
}
|
||||
button.search:disabled,
|
||||
input.search:disabled {
|
||||
background-image: url(../../images/input_zoom.disabled.png);
|
||||
}
|
||||
button.ok,
|
||||
input.ok {
|
||||
background-image: url(../../images/input_tick.png);
|
||||
}
|
||||
button.ok:disabled,
|
||||
input.ok:disabled {
|
||||
background-image: url(../../images/input_tick.disabled.png);
|
||||
}
|
||||
button.add,
|
||||
input.add {
|
||||
background-image: url(../../images/input_add.png);
|
||||
}
|
||||
button.add:disabled,
|
||||
input.add:disabled {
|
||||
background-image: url(../../images/input_add.disabled.png);
|
||||
}
|
||||
button.cancel,
|
||||
input.cancel {
|
||||
background-image: url(../../images/input_cross.png);
|
||||
}
|
||||
button.cancel:disabled,
|
||||
input.cancel:disabled {
|
||||
background-image: url(../../images/input_cross.disabled.png);
|
||||
}
|
||||
button.delete,
|
||||
input.delete {
|
||||
background-image: url(../../images/input_delete.png);
|
||||
}
|
||||
button.delete:disabled,
|
||||
input.delete:disabled {
|
||||
background-image: url(../../images/input_delete.disabled.png);
|
||||
}
|
||||
button.cog,
|
||||
input.cog {
|
||||
background-image: url(../../images/input_cog.png);
|
||||
}
|
||||
button.cog:disabled,
|
||||
input.cog:disabled {
|
||||
background-image: url(../../images/input_cog.disabled.png);
|
||||
}
|
||||
button.config,
|
||||
input.config {
|
||||
background-image: url(../../images/input_config.png);
|
||||
}
|
||||
button.config:disabled,
|
||||
input.config:disabled {
|
||||
background-image: url(../../images/input_config.disabled.png);
|
||||
}
|
||||
button.filter,
|
||||
input.filter {
|
||||
background-image: url(../../images/input_filter.png);
|
||||
}
|
||||
button.filter:disabled,
|
||||
input.filter:disabled {
|
||||
background-image: url(../../images/input_filter.disabled.png);
|
||||
}
|
||||
button.pdf,
|
||||
input.pdf {
|
||||
background-image: url(../../images/input_pdf.png);
|
||||
}
|
||||
button.pdf:disabled,
|
||||
input.pdf:disabled {
|
||||
background-image: url(../../images/input_pdf.disabled.png);
|
||||
}
|
||||
button.camera,
|
||||
input.camera {
|
||||
background-image: url(../../images/input_camera.png);
|
||||
}
|
||||
button.spinn,
|
||||
input.spinn {
|
||||
background-image: url(../../images/spinner_green.gif);
|
||||
}
|
||||
@ -3491,90 +3558,6 @@ div.simple_value > a > span.text p {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------
|
||||
* - EVENTS -
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
/* Image open dialog in group events by agents*/
|
||||
#open_agent_groups {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.table_modal_alternate {
|
||||
border-spacing: 0px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Modal window - Show More */
|
||||
table.table_modal_alternate tr:nth-child(odd) td {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
table.table_modal_alternate tr:nth-child(even) td {
|
||||
background-color: #f9f9f9;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
table.table_modal_alternate tr td {
|
||||
height: 33px;
|
||||
max-height: 33px;
|
||||
min-height: 33px;
|
||||
}
|
||||
|
||||
table.table_modal_alternate tr td:first-child {
|
||||
width: 35%;
|
||||
font-weight: bold;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
ul.events_tabs {
|
||||
background: #ffffff;
|
||||
border: 0px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
ul.events_tabs:before,
|
||||
ul.events_tabs:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
ul.events_tabs > li {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
float: none;
|
||||
outline-width: 0;
|
||||
}
|
||||
|
||||
ul.events_tabs > li.ui-state-default {
|
||||
background: #fff;
|
||||
border: none;
|
||||
border-bottom: 2px solid #cacaca;
|
||||
}
|
||||
|
||||
ul.events_tabs > li a {
|
||||
text-align: center;
|
||||
float: none;
|
||||
padding: 8px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
ul.events_tabs > li span {
|
||||
position: relative;
|
||||
top: -6px;
|
||||
left: 5px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
ul.events_tabs > li.ui-tabs-active {
|
||||
border-bottom: 2px solid #82b92e;
|
||||
border-top: 2px solid #82b92e;
|
||||
}
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------
|
||||
* - modal window and edit user -
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user