From 0df48675f33e33682df2a942670fa0d31ed825aa Mon Sep 17 00:00:00 2001 From: fbsanchez Date: Thu, 13 Jun 2019 16:28:26 +0200 Subject: [PATCH] event deletion --- pandora_console/include/functions_events.php | 72 +++++++++++++++++++ .../include/javascript/pandora_events.js | 13 ++-- 2 files changed, 79 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 824de4d809..2af5dbc06b 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -184,6 +184,78 @@ function events_get_column_names($fields) } +/** + * Validates all events matching target filter. + * + * @param integer $id_evento Master event. + * @param array $filter Optional. Filter options. + * @param boolean $history Apply on historical table. + * + * @return integer Events validated or false if error. + */ +function events_delete($id_evento, $filter=null, $history=false) +{ + if (!isset($id_evento) || $id_evento <= 0) { + return false; + } + + if (!isset($filter) || !is_array($filter)) { + $filter = ['group_rep' => 0]; + } + + $table = events_get_events_table(is_metaconsole(), $history); + + switch ($filter['group_rep']) { + case '0': + case '2': + default: + // No groups option direct update. + $delete_sql = sprintf( + 'DELETE FROM %s + WHERE id_evento = %d', + $table, + $id_evento + ); + break; + + case '1': + // Group by events. + $sql = events_get_all( + ['te.*'], + $filter, + // Offset. + null, + // Limit. + null, + // Order. + null, + // Sort_field. + null, + // Historical table. + $history, + // Return_sql. + true + ); + + $delete_sql = sprintf( + 'DELETE tu FROM %s tu INNER JOIN ( %s ) tf + ON tu.estado = tf.estado + AND tu.evento = tf.evento + AND tu.id_agente = tf.id_agente + AND tu.id_agentmodule = tf.id_agentmodule + AND tf.max_id_evento = %d', + $table, + $sql, + $id_evento + ); + break; + } + + error_log($delete_sql); + return db_process_sql($delete_sql); +} + + /** * Validates all events matching target filter. * diff --git a/pandora_console/include/javascript/pandora_events.js b/pandora_console/include/javascript/pandora_events.js index 80d4485ba1..321f097c84 100644 --- a/pandora_console/include/javascript/pandora_events.js +++ b/pandora_console/include/javascript/pandora_events.js @@ -686,10 +686,12 @@ function update_event(table, id_evento, type, row) { page: "include/ajax/events", validate_event: type.validate_event, in_process_event: type.in_process_event, + delete_event: type.delete_event, id_evento: id_evento, filter: values }, - success: function() { + success: function(data) { + console.log("[" + data + "]"); var t2 = new Date(); var diff_g = t2.getTime() - t1.getTime(); var diff_s = diff_g / 1000; @@ -711,16 +713,15 @@ function update_event(table, id_evento, type, row) { function validate_event(table, id_evento, row) { row.firstChild.src = "http://localhost/pandora_console/images/spinner.gif"; - return update_event(table, id_evento, { validate_event: 1 }, row, false); + return update_event(table, id_evento, { validate_event: 1 }, row); } function in_process_event(table, id_evento, row) { row.firstChild.src = "http://localhost/pandora_console/images/spinner.gif"; - return update_event(table, id_evento, { in_process_event: 1 }, row, false); + return update_event(table, id_evento, { in_process_event: 1 }, row); } function delete_event(table, id_evento, row) { - $(row) - .closest("tr") - .remove(); + row.firstChild.src = "http://localhost/pandora_console/images/spinner.gif"; + return update_event(table, id_evento, { delete_event: 1 }, row); }