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.
130 lines
3.9 KiB
130 lines
3.9 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 CPartial $this
|
|
*/
|
|
|
|
$table = (new CTableInfo())
|
|
->setHeader([
|
|
($data['source'] === 'scheduledreport-form')
|
|
? (new CColHeader((new CCheckBox('all_scheduledreports'))
|
|
->setAttribute('data-source', $data['source'])
|
|
->onClick('checkAll(this.dataset.source, "all_scheduledreports", "reportids");')
|
|
))->addClass(ZBX_STYLE_CELL_WIDTH)
|
|
: null,
|
|
($data['source'] === 'scheduledreport-form')
|
|
? make_sorting_header(_('Name'), 'name', $data['sort'], $data['sortorder'],
|
|
(new CUrl('zabbix.php'))
|
|
->setArgument('action', 'scheduledreport.list')
|
|
->getUrl()
|
|
)
|
|
: [[_('Name'), (new CSpan())->addClass(ZBX_STYLE_ARROW_UP)]],
|
|
_('Owner'),
|
|
_('Repeats'),
|
|
_('Period'),
|
|
_('Last sent'),
|
|
_('Status'),
|
|
_('Info')
|
|
]);
|
|
|
|
$cycles = [
|
|
ZBX_REPORT_CYCLE_DAILY => _('Daily'),
|
|
ZBX_REPORT_CYCLE_WEEKLY => _('Weekly'),
|
|
ZBX_REPORT_CYCLE_MONTHLY => _('Monthly'),
|
|
ZBX_REPORT_CYCLE_YEARLY => _('Yearly')
|
|
];
|
|
|
|
$periods = [
|
|
ZBX_REPORT_PERIOD_DAY => _('Previous day'),
|
|
ZBX_REPORT_PERIOD_WEEK => _('Previous week'),
|
|
ZBX_REPORT_PERIOD_MONTH => _('Previous month'),
|
|
ZBX_REPORT_PERIOD_YEAR => _('Previous year')
|
|
];
|
|
|
|
$now = time();
|
|
|
|
foreach ($data['reports'] as $report) {
|
|
$name = new CLink($report['name'], (new CUrl('zabbix.php'))
|
|
->setArgument('action', 'scheduledreport.edit')
|
|
->setArgument('reportid', $report['reportid'])
|
|
);
|
|
|
|
$info_icons = [];
|
|
|
|
if (($report['state'] == ZBX_REPORT_STATE_ERROR || $report['state'] == ZBX_REPORT_STATE_SUCCESS_INFO)
|
|
&& $report['info'] !== '') {
|
|
$info_icons[] = ($report['state'] == ZBX_REPORT_STATE_ERROR)
|
|
? makeErrorIcon($report['info'])
|
|
: makeWarningIcon($report['info']);
|
|
}
|
|
|
|
if ($report['status'] == ZBX_REPORT_STATUS_DISABLED) {
|
|
$status_name = _('Disabled');
|
|
$status_class = ZBX_STYLE_RED;
|
|
}
|
|
else {
|
|
$status_name = _('Enabled');
|
|
$status_class = ZBX_STYLE_GREEN;
|
|
|
|
if ($report['active_till'] !== '') {
|
|
$active_till = (DateTime::createFromFormat(ZBX_DATE, $report['active_till'], new DateTimeZone('UTC')))
|
|
->setTime(23, 59, 59);
|
|
|
|
if ($active_till->getTimestamp() < $now) {
|
|
$status_name = _('Expired');
|
|
$status_class = ZBX_STYLE_GREY;
|
|
|
|
$info_icons[] = makeWarningIcon(_s('Expired on %1$s.', $active_till->format(DATE_FORMAT)));
|
|
}
|
|
}
|
|
}
|
|
|
|
$status = ($data['source'] === 'scheduledreport-form' && $data['allowed_edit'])
|
|
? (new CLink($status_name, (new CUrl('zabbix.php'))
|
|
->setArgument('action', ($report['status'] == ZBX_REPORT_STATUS_DISABLED)
|
|
? 'scheduledreport.enable'
|
|
: 'scheduledreport.disable'
|
|
)
|
|
->setArgument('reportids', [$report['reportid']])
|
|
->getUrl()
|
|
))
|
|
->addCsrfToken(CCsrfTokenHelper::get('scheduledreport'))
|
|
->addClass(ZBX_STYLE_LINK_ACTION)
|
|
: new CSpan($status_name);
|
|
$status->addClass($status_class);
|
|
|
|
$table->addRow([
|
|
($data['source'] === 'scheduledreport-form')
|
|
? new CCheckBox('reportids['.$report['reportid'].']', $report['reportid'])
|
|
: null,
|
|
(new CCol($name))->addClass(ZBX_STYLE_WORDBREAK),
|
|
$report['owner'],
|
|
$cycles[$report['cycle']],
|
|
$periods[$report['period']],
|
|
zbx_date2str(DATE_TIME_FORMAT, $report['lastsent']),
|
|
$status,
|
|
makeInformationList($info_icons)
|
|
]);
|
|
}
|
|
|
|
$table->show();
|