Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ui/widgets/actionlog/views/widget.view.php')
-rw-r--r--ui/widgets/actionlog/views/widget.view.php90
1 files changed, 90 insertions, 0 deletions
diff --git a/ui/widgets/actionlog/views/widget.view.php b/ui/widgets/actionlog/views/widget.view.php
new file mode 100644
index 00000000000..68b683319f9
--- /dev/null
+++ b/ui/widgets/actionlog/views/widget.view.php
@@ -0,0 +1,90 @@
+<?php declare(strict_types = 0);
+/*
+** Zabbix
+** Copyright (C) 2001-2022 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.
+**/
+
+
+/**
+ * Action log widget view.
+ *
+ * @var CView $this
+ * @var array $data
+ */
+
+// indicator of sort field
+$sort_div = (new CSpan())->addClass($data['sortorder'] === ZBX_SORT_DOWN ? ZBX_STYLE_ARROW_DOWN : ZBX_STYLE_ARROW_UP);
+
+// create alert table
+$table = (new CTableInfo())
+ ->setHeader([
+ ($data['sortfield'] === 'clock')
+ ? [_x('Time', 'compact table header'), $sort_div]
+ : _x('Time', 'compact table header'),
+ _x('Action', 'compact table header'),
+ ($data['sortfield'] === 'mediatypeid')
+ ? [_x('Type', 'compact table header'), $sort_div]
+ : _x('Type', 'compact table header'),
+ ($data['sortfield'] === 'sendto')
+ ? [_x('Recipient', 'compact table header'), $sort_div]
+ : _x('Recipient', 'compact table header'),
+ _x('Message', 'compact table header'),
+ ($data['sortfield'] === 'status')
+ ? [_x('Status', 'compact table header'), $sort_div]
+ : _x('Status', 'compact table header'),
+ _x('Info', 'compact table header')
+ ]);
+
+foreach ($data['alerts'] as $alert) {
+ if ($alert['alerttype'] == ALERT_TYPE_MESSAGE && array_key_exists('maxattempts', $alert)
+ && ($alert['status'] == ALERT_STATUS_NOT_SENT || $alert['status'] == ALERT_STATUS_NEW)) {
+ $info_icons = makeWarningIcon(_n('%1$s retry left', '%1$s retries left',
+ $alert['maxattempts'] - $alert['retries'])
+ );
+ }
+ elseif ($alert['error'] !== '') {
+ $info_icons = makeErrorIcon($alert['error']);
+ }
+ else {
+ $info_icons = [];
+ }
+
+ $message = ($alert['alerttype'] == ALERT_TYPE_MESSAGE)
+ ? [
+ bold($alert['subject']),
+ BR(),
+ BR(),
+ zbx_nl2br($alert['message'])
+ ]
+ : [
+ zbx_nl2br($alert['message'])
+ ];
+
+ $table->addRow([
+ zbx_date2str(DATE_TIME_FORMAT_SECONDS, $alert['clock']),
+ array_key_exists($alert['actionid'], $data['actions']) ? $data['actions'][$alert['actionid']]['name'] : '',
+ $alert['description'],
+ makeEventDetailsTableUser($alert, $data['db_users']),
+ $message,
+ makeActionTableStatus($alert),
+ makeInformationList($info_icons)
+ ]);
+}
+
+(new CWidgetView($data))
+ ->addItem($table)
+ ->show();