Source
private function getItemRowTemplate($ds_num = '#{dsNum}', $row_num = '#{rowNum}', $itemid = '#{itemid}',
<?php declare(strict_types = 0);
/*
** 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.
**/
namespace Widgets\PieChart\Includes;
use CButton,
CButtonIcon,
CButtonLink,
CCol,
CColor,
CDiv,
CFormField,
CFormGrid,
CLabel,
CLink,
CList,
CListItem,
CPatternSelect,
CRow,
CSelect,
CSimpleButton,
CSpan,
CTable,
CTableColumn,
CTag,
CTemplateTag,
CTextBox,
CVar,
CWidgetFieldView;
class CWidgetFieldDataSetView extends CWidgetFieldView {
public function __construct(CWidgetFieldDataSet $field) {
$this->field = $field;
}
public function getView(): CList {
$view = (new CList())
->setId('data_sets')
->addClass(ZBX_STYLE_SORTABLE_LIST);
$values = $this->field->getValue();
if (!$values) {
$values[] = CWidgetFieldDataSet::getDefaults();
}
$itemids = array_merge(...array_column($values, 'itemids'));
$item_names = [];
if ($itemids) {
$item_names = CWidgetFieldDataSet::getItemNames($itemids);
}
foreach ($values as $i => $value) {
if ($value['dataset_type'] == CWidgetFieldDataSet::DATASET_TYPE_SINGLE_ITEM) {
$value['item_names'] = $item_names;
}
$view->addItem(
$this->getDataSetLayout($value, $value['dataset_type'], $i == 0, $i)
);
}
return $view;
}
public function getFooterView(): CList {
return (new CList())
->addClass(ZBX_STYLE_BTN_SPLIT)
->addItem(
(new CSimpleButton(_('Add new data set')))
->setId('dataset-add')
->addClass(ZBX_STYLE_BTN_ALT)