Added checkbox to free search on agents data view

This commit is contained in:
fermin831 2017-11-02 15:51:37 +01:00
parent 2adf951121
commit 443163515d
3 changed files with 46 additions and 13 deletions

View File

@ -124,6 +124,7 @@ if ($get_module_detail) {
$date_to = (string) get_parameter ('date_to', date ('Y-m-j'));
$time_to = (string) get_parameter ('time_to', date ('h:iA'));
$freesearch = (string) get_parameter ('freesearch', '');
$free_checkbox = (bool) get_parameter ('free_checkbox', false);
$formtable->width = '98%';
$formtable->class = "databox";
@ -152,18 +153,13 @@ if ($get_module_detail) {
"selection_mode", 'fromnow', '', $selection_mode, false, '',
'style="margin-right: 15px;"', true) . __("Choose a time from now");
$formtable->data[0][1] = html_print_select ($periods, 'period', $period, '', '', 0, true, false, false);
if (preg_match("/_string/", $moduletype_name)) {
$formtable->data[0][2] = __('Free search') . ' ';
$formtable->data[0][2] .= html_print_input_text ('freesearch', $freesearch, '', 25, null, true);
} else {
$freesearch = '';
$formtable->data[0][2] = '';
}
$formtable->cellstyle[0][3] = 'vertical-align: middle;';
$formtable->data[0][2] = '';
$formtable->data[0][3] = "<a href='javascript: show_module_detail_dialog(" . $module_id .", ". $agentId.", \"" . $server_name .
"\", 0, -1,\"" . modules_get_agentmodule_name( $module_id ) . "\")'>" .
html_print_image ("images/refresh.png", true, array ("style" => 'vertical-align: middle;', "border" => "0" )) .
"</a>";
$formtable->rowspan[0][3] = 2;
$formtable->cellstyle[0][3] = 'vertical-align: middle;';
$formtable->data[1][0] = html_print_radio_button_extended(
"selection_mode", 'range','', $selection_mode, false, '',
@ -184,6 +180,18 @@ if ($get_module_detail) {
$formtable->data[1][2] .= html_print_input_text('time_to', $time_to,
'', 9, 7, true);
$freesearch_object = '';
if (preg_match("/_string/", $moduletype_name)) {
$formtable->data[2][0] = __('Free search') . ' ';
$formtable->data[2][1] = html_print_input_text ('freesearch', $freesearch, '', 20, null, true);
$formtable->data[2][2] = html_print_checkbox('free_checkbox', 1, $free_checkbox, true) .
$formtable->data[2][2] .= ' ' . __('Exact phrase');
$freesearch_object = json_encode( array(
'value' => io_safe_output($freesearch),
'exact' => (bool)$free_checkbox
));
}
html_print_table($formtable);
$offset = (int) get_parameter("offset");
@ -228,10 +236,10 @@ if ($get_module_detail) {
}
$count = modules_get_agentmodule_data ($module_id, $period,
$date, true, $conexion, 'ASC', $freesearch);
$date, true, $conexion, 'ASC', $freesearch_object);
$module_data = modules_get_agentmodule_data ($module_id, $period,
$date, false, $conexion, 'DESC', $freesearch);
$date, false, $conexion, 'DESC', $freesearch_object);
if (empty($module_data)) {
$result = array();

View File

@ -1716,6 +1716,13 @@ function modules_get_next_data ($id_agent_module, $utimestamp = 0, $string = 0)
* @param int Agent module id
* @param int Period of time to check (in seconds)
* @param int Top date to check the values. Default current time.
* @param
* @param
* @param string 'ASC' od 'DESC'
* @param string with a json with parameters to filter data
* string object:
* value: Text to search
* exact: Boolean. True if search exact phrase or false to content
*
* @return array The module value and the timestamp
*/
@ -1743,6 +1750,17 @@ function modules_get_agentmodule_data ($id_agent_module, $period,
case 17:
//async_string
case 23:
// Free search is a json with value and exact modifier
$freesearch = json_decode($freesearch, true);
$freesearch_sql = '';
if (isset($freesearch['value']) && !empty($freesearch['value'])) {
$freesearch_sql = " AND datos ";
if ($freesearch['exact']){
$freesearch_sql .= "='" . $freesearch['value'] . "' ";
} else {
$freesearch_sql .= " LIKE '%" . $freesearch['value'] . "%' ";
}
}
$sql = sprintf (
"SELECT datos AS data, utimestamp FROM tagente_datos_string
WHERE id_agente_modulo = %d
@ -1750,7 +1768,7 @@ function modules_get_agentmodule_data ($id_agent_module, $period,
AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp %s",
$id_agent_module,
!empty($freesearch) ? " AND datos REGEXP '" . $freesearch . "' " : "",
$freesearch_sql,
$datelimit, $date,
$order
);

View File

@ -367,8 +367,15 @@ ui_require_jquery_file("ui.datepicker-" . get_user_language(), "include/javascri
// Get the free text in both options
var freesearch = $('#text-freesearch').val();
if (freesearch == null) freesearch = '';
extra_parameters += '&freesearch=' + freesearch;
if (freesearch != null && freesearch !== '') {
var free_checkbox = $('input[name=free_checkbox]:checked').val();
extra_parameters += '&freesearch=' + freesearch;
if (free_checkbox == 1) {
extra_parameters += '&free_checkbox=1';
} else {
extra_parameters += '&free_checkbox=0';
}
}
title = <?php echo "\"" . __("Module: ") . "\"" ?>;
$.ajax({