Fix event list widget actions on dashboard

This commit is contained in:
Calvo 2022-03-24 18:52:06 +01:00
parent 174f6dce51
commit 6ed8851188
5 changed files with 88 additions and 14 deletions

View File

@ -26,6 +26,8 @@
* ============================================================================
*/
use PandoraFMS\Enterprise\Metaconsole\Node;
// Begin.
global $config;
@ -86,6 +88,7 @@ $get_event_filters = get_parameter('get_event_filters', 0);
$get_comments = (bool) get_parameter('get_comments', false);
$get_events_fired = (bool) get_parameter('get_events_fired');
$get_id_source_event = get_parameter('get_id_source_event');
$node_id = (int) get_parameter('node_id', 0);
if ($get_comments === true) {
$event = get_parameter('event', false);
$filter = get_parameter('filter', false);
@ -195,7 +198,23 @@ if ($delete_event) {
return;
}
$r = events_delete($id_evento, $filter);
if ($node_id > 0) {
try {
$node = new Node($node_id);
$node->connect();
$r = events_delete($id_evento, $filter, false, true);
} catch (\Exception $e) {
// Unexistent agent.
$node->disconnect();
$success = false;
echo 'owner_error';
} finally {
$node->disconnect();
}
} else {
$r = events_delete($id_evento, $filter);
}
if ($r === false) {
echo 'Failed';
} else {
@ -1261,12 +1280,32 @@ if ($change_status) {
$event_ids = get_parameter('event_ids');
$new_status = get_parameter('new_status');
$return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
if ($node_id > 0) {
try {
$node = new Node($node_id);
$node->connect();
$return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
} catch (\Exception $e) {
// Unexistent agent.
$node->disconnect();
$success = false;
echo 'owner_error';
} finally {
$node->disconnect();
}
} else {
$return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
}
if ($return !== false) {
$event_st = events_display_status($new_status);
@ -1310,7 +1349,22 @@ if ($change_owner) {
$new_owner = '';
}
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
if ($node_id > 0) {
try {
$node = new Node($node_id);
$node->connect();
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
} catch (\Exception $e) {
// Unexistent agent.
$node->disconnect();
$success = false;
echo 'owner_error';
} finally {
$node->disconnect();
}
} else {
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
}
if ($return) {
echo 'owner_ok';
@ -1415,6 +1469,9 @@ if ($get_extended_event) {
// Print group_rep in a hidden field to recover it from javascript.
html_print_input_hidden('group_rep', (int) $group_rep);
if ($node_id > 0) {
html_print_input_hidden('node_id', (int) $node_id);
}
if ($event === false) {
return;

View File

@ -352,13 +352,14 @@ function events_get_column_names($fields, $table_alias=false)
/**
* 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.
* @param integer $id_evento Master event.
* @param array $filter Optional. Filter options.
* @param boolean $history Apply on historical table.
* @param boolean $force_node Force node table.
*
* @return integer Events validated or false if error.
*/
function events_delete($id_evento, $filter=null, $history=false)
function events_delete($id_evento, $filter=null, $history=false, $force_node=false)
{
if (!isset($id_evento) || $id_evento <= 0) {
return false;
@ -368,7 +369,10 @@ function events_delete($id_evento, $filter=null, $history=false)
$filter = ['group_rep' => 0];
}
$table = events_get_events_table(is_metaconsole(), $history);
$table = events_get_events_table(
($force_node === false) ? is_metaconsole() : false,
$history
);
switch ($filter['group_rep']) {
case '0':

View File

@ -1313,7 +1313,8 @@ function dashboardShowEventDialog(settings) {
dialog_page: "",
meta: 0,
history: 0,
filter: []
filter: [],
node_id: settings.node_id
},
dataType: "html",
success: function(data) {
@ -1339,6 +1340,7 @@ function dashboardShowEventDialog(settings) {
data: {
page: "include/ajax/events",
delete_event: 1,
node_id: settings.node_id,
id_evento: settings.event.id_evento,
filter: []
},

View File

@ -476,6 +476,7 @@ function event_change_status(event_ids) {
var new_status = $("#estado").val();
var meta = $("#hidden-meta").val();
var history = $("#hidden-history").val();
var node_id = $("#hidden-node_id").val();
$("#button-status_button").attr("disabled", "disabled");
$("#response_loading").show();
@ -487,6 +488,7 @@ function event_change_status(event_ids) {
event_ids: event_ids,
new_status: new_status,
meta: meta,
node_id: node_id,
history: history
},
type: "POST",
@ -540,6 +542,7 @@ function event_change_owner() {
var new_owner = $("#id_owner").val();
var meta = $("#hidden-meta").val();
var history = $("#hidden-history").val();
var node_id = $("#hidden-node_id").val();
$("#button-owner_button").attr("disabled", "disabled");
$("#response_loading").show();
@ -551,6 +554,7 @@ function event_change_owner() {
event_id: event_id,
new_owner: new_owner,
meta: meta,
node_id: node_id,
history: history
},
type: "POST",

View File

@ -669,6 +669,12 @@ class EventsListWidget extends Widget
true
);
$output .= \html_print_input_hidden(
'meta',
is_metaconsole(),
true
);
$output .= \html_print_input_hidden(
'delete_confirm_message',
__('Are you sure?'),
@ -737,6 +743,7 @@ class EventsListWidget extends Widget
'dashboardId' => $this->dashboardId,
'widgetId' => $this->widgetId,
'cellId' => $this->cellId,
'node_id' => $this->nodeId,
]
);