event filters tags, date, module name
This commit is contained in:
parent
dc81d168e0
commit
d8a331bf77
|
@ -482,14 +482,55 @@ function events_get_all(
|
|||
throw new Exception('[events_get_all] Fields must be an array or "count".');
|
||||
}
|
||||
|
||||
$sql_filters = [];
|
||||
if (isset($filter['event_view_hr']) && ($filter['event_view_hr'] > 0)) {
|
||||
if (isset($filter['date_from']) && $filter['date_from'] != '0000-00-00') {
|
||||
$date_from = $filter['date_from'];
|
||||
}
|
||||
|
||||
if (isset($filter['time_from'])) {
|
||||
$time_from = $filter['time_from'];
|
||||
}
|
||||
|
||||
if (isset($date_from)) {
|
||||
if (!isset($time_from)) {
|
||||
$time_from = '00:00:00';
|
||||
}
|
||||
|
||||
$from = $date_from.' '.$time_from;
|
||||
$sql_filters[] = sprintf(
|
||||
' AND utimestamp > UNIX_TIMESTAMP(now() - INTERVAL %d HOUR) ',
|
||||
$filter['event_view_hr']
|
||||
' AND te.utimestamp >= %d',
|
||||
strtotime($from)
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($filter['date_to']) && $filter['date_to'] != '0000-00-00') {
|
||||
$date_to = $filter['date_to'];
|
||||
}
|
||||
|
||||
if (isset($filter['time_to'])) {
|
||||
$time_to = $filter['time_to'];
|
||||
}
|
||||
|
||||
if (isset($date_to)) {
|
||||
if (!isset($time_to)) {
|
||||
$time_to = '23:59:59';
|
||||
}
|
||||
|
||||
$to = $date_to.' '.$time_to;
|
||||
$sql_filters[] = sprintf(
|
||||
' AND te.utimestamp <= %d',
|
||||
strtotime($to)
|
||||
);
|
||||
}
|
||||
|
||||
if (!isset($from)) {
|
||||
if (isset($filter['event_view_hr']) && ($filter['event_view_hr'] > 0)) {
|
||||
$sql_filters[] = sprintf(
|
||||
' AND utimestamp > UNIX_TIMESTAMP(now() - INTERVAL %d HOUR) ',
|
||||
$filter['event_view_hr']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($filter['id_agent']) && $filter['id_agent'] > 0) {
|
||||
$sql_filters[] = sprintf(
|
||||
' AND te.id_agente = %d ',
|
||||
|
@ -728,43 +769,36 @@ function events_get_all(
|
|||
}
|
||||
}
|
||||
|
||||
$_tmp = ' AND (';
|
||||
foreach ($tags as $id_tag) {
|
||||
if (!isset($tags_names[$id_tag])) {
|
||||
$tags_names[$id_tag] = tags_get_name($id_tag);
|
||||
}
|
||||
|
||||
if ($first) {
|
||||
$_tmp .= ' ( ';
|
||||
$first = false;
|
||||
} else {
|
||||
$_tmp .= ' AND ( ';
|
||||
}
|
||||
|
||||
$_tmp .= ' AND ( ';
|
||||
$_tmp .= sprintf(
|
||||
'tags LIKE "%s"',
|
||||
$tag_names[$id_tag]
|
||||
' tags LIKE "%s" OR',
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
|
||||
$_tmp .= sprintf(
|
||||
'tags LIKE "%s,%%"',
|
||||
$tag_names[$id_tag]
|
||||
' tags LIKE "%s,%%" OR',
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
|
||||
$_tmp .= sprintf(
|
||||
'tags LIKE "%%,%s"',
|
||||
$tag_names[$id_tag]
|
||||
' tags LIKE "%%,%s" OR',
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
|
||||
$_tmp .= sprintf(
|
||||
'tags LIKE "%%,%s,%%"',
|
||||
$tag_names[$id_tag]
|
||||
' tags LIKE "%%,%s,%%" ',
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
|
||||
$_tmp .= ') ';
|
||||
}
|
||||
|
||||
$sql_filters[] = $_tmp.') ';
|
||||
$sql_filters[] = $_tmp;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -773,7 +807,6 @@ function events_get_all(
|
|||
$tag_without = base64_decode($filter['tag_without']);
|
||||
$tags = json_decode($tag_without, true);
|
||||
if (is_array($tags) && !in_array('0', $tags)) {
|
||||
$_tmp = ' AND (';
|
||||
foreach ($tags as $id_tag) {
|
||||
if (!isset($tags_names[$id_tag])) {
|
||||
$tags_names[$id_tag] = tags_get_name($id_tag);
|
||||
|
@ -781,23 +814,23 @@ function events_get_all(
|
|||
|
||||
$_tmp .= sprintf(
|
||||
' AND tags NOT LIKE "%s" ',
|
||||
$tag_names[$id_tag]
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
$_tmp .= sprintf(
|
||||
' AND tags NOT LIKE "%s,%%" ',
|
||||
$tag_names[$id_tag]
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
$_tmp .= sprintf(
|
||||
' AND tags NOT LIKE "%%,%s" ',
|
||||
$tag_names[$id_tag]
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
$_tmp .= sprintf(
|
||||
' AND tags NOT LIKE "%%,%s,%%" ',
|
||||
$tag_names[$id_tag]
|
||||
$tags_names[$id_tag]
|
||||
);
|
||||
}
|
||||
|
||||
$sql_filters[] = $_tmp.') ';
|
||||
$sql_filters[] = $_tmp;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -891,6 +924,17 @@ function events_get_all(
|
|||
$sql_filters[] = $tags_acls_condition;
|
||||
}
|
||||
|
||||
// Module search.
|
||||
$agentmodule_join = '';
|
||||
if (!empty($filter['module_search'])) {
|
||||
$agentmodule_join = 'INNER JOIN tagente_modulo am
|
||||
ON te.id_agentmodule = am.id_agente_modulo';
|
||||
$sql_filters[] = sprintf(
|
||||
' AND am.nombre = "%s" ',
|
||||
$filter['module_search']
|
||||
);
|
||||
}
|
||||
|
||||
// Order.
|
||||
$order_by = '';
|
||||
if (isset($order, $sort_field)) {
|
||||
|
@ -899,7 +943,7 @@ function events_get_all(
|
|||
|
||||
// Pagination.
|
||||
$pagination = '';
|
||||
if (isset($limit, $offset)) {
|
||||
if (isset($limit, $offset) && $limit > 0) {
|
||||
$pagination = sprintf(' LIMIT %d OFFSET %d', $limit, $offset);
|
||||
}
|
||||
|
||||
|
@ -977,6 +1021,7 @@ function events_get_all(
|
|||
%s
|
||||
FROM %s
|
||||
%s
|
||||
%s
|
||||
%s JOIN %s ta
|
||||
ON ta.%s = te.id_agente
|
||||
%s
|
||||
|
@ -994,6 +1039,7 @@ function events_get_all(
|
|||
$group_selects,
|
||||
$tevento,
|
||||
$event_lj,
|
||||
$agentmodule_join,
|
||||
$tagente_join,
|
||||
$tagente_table,
|
||||
$tagente_field,
|
||||
|
|
|
@ -3127,10 +3127,16 @@ function ui_print_datatable(array $parameters)
|
|||
$table .= '</tr></thead>';
|
||||
$table .= '</table>';
|
||||
|
||||
$pagination_class = 'pandora_pagination';
|
||||
if (!empty($parameters['pagination_class'])) {
|
||||
$pagination_class = $parameters['pagination_class'];
|
||||
}
|
||||
|
||||
// Javascript controller.
|
||||
$js = '<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$.fn.dataTable.ext.errMode = "none";
|
||||
$.fn.dataTable.ext.classes.sPageButton = "'.$pagination_class.'";
|
||||
dt_'.$table_id.' = $("#'.$table_id.'").DataTable({
|
||||
';
|
||||
if (isset($parameters['drawCallback'])) {
|
||||
|
@ -3146,7 +3152,7 @@ function ui_print_datatable(array $parameters)
|
|||
pageLength: '.$parameters['default_pagination'].',
|
||||
searching: false,
|
||||
responsive: true,
|
||||
dom: "lBfrtip",
|
||||
dom: "plfrtipB",
|
||||
buttons: [
|
||||
{
|
||||
extend: "csv",
|
||||
|
|
|
@ -310,42 +310,6 @@ tr.group * {
|
|||
background: #e2e2e2;
|
||||
}
|
||||
|
||||
.dt-button.buttons-csv.buttons-html5 {
|
||||
float: right;
|
||||
font-weight: normal;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
font-size: 1.2em;
|
||||
background-color: #fff;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 92% 10px;
|
||||
color: #000;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
padding-left: 15px;
|
||||
border: 1px solid #888;
|
||||
font-family: "lato", "Open Sans", sans-serif;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dt-button.buttons-csv.buttons-html5:hover {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
.dt-button.buttons-csv.buttons-html5:active {
|
||||
border: 1px solid #000;
|
||||
color: #333;
|
||||
background-color: #e1e1e1;
|
||||
}
|
||||
|
||||
.dt-button.buttons-csv.buttons-html5[disabled] {
|
||||
color: #b4b4b4;
|
||||
background-color: #f3f3f3;
|
||||
border-color: #b6b6b6;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
div.multi-response-buttons {
|
||||
margin-top: 2em;
|
||||
width: 100%;
|
||||
|
|
|
@ -253,11 +253,65 @@ table.dataTable.info_table.no-footer {
|
|||
|
||||
/* Datatables pagination */
|
||||
.dataTables_paginate.paging_simple_numbers {
|
||||
margin: 2em 0;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
||||
a.pandora_pagination {
|
||||
padding: 5px;
|
||||
color: #000;
|
||||
border: 1px solid #cacaca;
|
||||
min-width: 12px;
|
||||
margin-right: -1px;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
a.pandora_pagination.disabled {
|
||||
color: #cacaca;
|
||||
}
|
||||
a.pandora_pagination:hover {
|
||||
text-decoration: none;
|
||||
background-color: #e2e2e2;
|
||||
}
|
||||
|
||||
a.pandora_pagination.current,
|
||||
a.pandora_pagination.current:hover {
|
||||
color: #fff;
|
||||
background-color: #82b92e;
|
||||
border-color: #82b92e;
|
||||
}
|
||||
|
||||
/* CSV button datatables */
|
||||
.dt-button.buttons-csv.buttons-html5 {
|
||||
background-image: url(../../images/input_delete.png);
|
||||
background-position: center center;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
background-color: #fff;
|
||||
background-repeat: no-repeat;
|
||||
color: #000;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
padding-left: 15px;
|
||||
border: 1px solid #888;
|
||||
font-family: "lato", "Open Sans", sans-serif;
|
||||
cursor: pointer;
|
||||
}
|
||||
.dt-button.buttons-csv.buttons-html5 span {
|
||||
font-size: 0;
|
||||
}
|
||||
.dt-button.buttons-csv.buttons-html5:hover {
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
.dt-button.buttons-csv.buttons-html5:active {
|
||||
border: 1px solid #000;
|
||||
color: #333;
|
||||
background-color: #e1e1e1;
|
||||
}
|
||||
|
||||
.dt-button.buttons-csv.buttons-html5[disabled] {
|
||||
color: #b4b4b4;
|
||||
background-color: #f3f3f3;
|
||||
border-color: #b6b6b6;
|
||||
cursor: default;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue