diff options
Diffstat (limited to 'ui/widgets/problemsbysv/views/widget.view.php')
-rw-r--r-- | ui/widgets/problemsbysv/views/widget.view.php | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/ui/widgets/problemsbysv/views/widget.view.php b/ui/widgets/problemsbysv/views/widget.view.php new file mode 100644 index 00000000000..5c1c01e1551 --- /dev/null +++ b/ui/widgets/problemsbysv/views/widget.view.php @@ -0,0 +1,75 @@ +<?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. +**/ + + +/** + * Problems by severity widget view. + * + * @var CView $this + * @var array $data + */ + +use Widgets\ProblemsBySv\Widget; + +if ($data['filter']['show_type'] == Widget::SHOW_TOTALS) { + $table = makeSeverityTotals($data) + ->addClass(ZBX_STYLE_BY_SEVERITY_WIDGET) + ->addClass(ZBX_STYLE_TOTALS_LIST) + ->addClass(($data['filter']['layout'] == STYLE_HORIZONTAL) + ? ZBX_STYLE_TOTALS_LIST_HORIZONTAL + : ZBX_STYLE_TOTALS_LIST_VERTICAL + ); +} +else { + $filter_severities = (array_key_exists('severities', $data['filter']) && $data['filter']['severities']) + ? $data['filter']['severities'] + : range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1); + + $header = [[_x('Host group', 'compact table header'), (new CSpan())->addClass(ZBX_STYLE_ARROW_UP)]]; + + for ($severity = TRIGGER_SEVERITY_COUNT - 1; $severity >= TRIGGER_SEVERITY_NOT_CLASSIFIED; $severity--) { + if (in_array($severity, $filter_severities)) { + $header[] = CSeverityHelper::getName($severity); + } + } + + $hide_empty_groups = array_key_exists('hide_empty_groups', $data['filter']) + ? $data['filter']['hide_empty_groups'] + : 0; + + $group_url = (new CUrl('zabbix.php')) + ->setArgument('action', 'problem.view') + ->setArgument('filter_name') + ->setArgument('show', TRIGGERS_OPTION_RECENT_PROBLEM) + ->setArgument('hostids', array_key_exists('hostids', $data['filter']) ? $data['filter']['hostids'] : null) + ->setArgument('name', array_key_exists('problem', $data['filter']) ? $data['filter']['problem'] : null) + ->setArgument('show_suppressed', + (array_key_exists('show_suppressed', $data['filter']) && $data['filter']['show_suppressed'] == 1) ? 1 : null + ); + + $table = makeSeverityTable($data, $hide_empty_groups, $group_url) + ->addClass(ZBX_STYLE_BY_SEVERITY_WIDGET) + ->setHeader($header) + ->setHeadingColumn(0); +} + +(new CWidgetView($data)) + ->addItem($table) + ->show(); |