You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zabbix/ui/app/views/reports.actionlog.list.csv.php

93 lines
2.7 KiB

<?php
/*
** Zabbix
** Copyright (C) 2001-2023 Zabbix SIA
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
/**
* @var array $data
*/
/*
* Search limit performs +1 selection to know if limit was exceeded, this will assure that csv has
* "search_limit" records at most.
*/
array_splice($data['alerts'], CSettingsHelper::get(CSettingsHelper::SEARCH_LIMIT));
$csv = [];
$csv[] = array_filter([
_('Time'),
_('Action'),
_('Media type'),
_("Recipient's Zabbix username"),
_("Recipient's name"),
_("Recipient's surname"),
_('Recipient'),
_('Subject'),
_('Message'),
_('Command'),
_('Status'),
_('Info')
]);
foreach ($data['alerts'] as $alert) {
$row = [];
$mediatype = array_pop($alert['mediatypes']);
$recipients_username = '';
$recipients_name = '';
$recipients_surname = '';
if (isset($alert['userid']) && $alert['userid']) {
$recipients_username = $data['users'][$alert['userid']]['username'];
$recipients_name = $data['users'][$alert['userid']]['name'];
$recipients_surname = $data['users'][$alert['userid']]['surname'];
}
if ($alert['status'] == ALERT_STATUS_SENT) {
$status = ($alert['alerttype'] == ALERT_TYPE_MESSAGE) ? _('Sent') : _('Executed');
}
elseif ($alert['status'] == ALERT_STATUS_NOT_SENT || $alert['status'] == ALERT_STATUS_NEW) {
$status = _('In progress').': '
._n('%1$s retry left', '%1$s retries left', $mediatype['maxattempts'] - $alert['retries']);
}
else {
$status = _('Failed');
}
$row[] = zbx_date2str(DATE_TIME_FORMAT_SECONDS, $alert['clock']);
$row[] = $data['actions'][$alert['actionid']]['name'];
$row[] = $mediatype ? $mediatype['name'] : '';
$row[] = $recipients_username;
$row[] = $recipients_name;
$row[] = $recipients_surname;
$row[] = $alert['sendto'];
$row[] = ($alert['alerttype'] == ALERT_TYPE_MESSAGE) ? $alert['subject'] : '';
$row[] = ($alert['alerttype'] == ALERT_TYPE_MESSAGE) ? $alert['message'] : '';
$row[] = ($alert['alerttype'] == ALERT_TYPE_COMMAND) ? $alert['message'] : '';
$row[] = $status;
$row[] = $alert['error'];
$csv[] = $row;
}
echo zbx_toCSV($csv);