<?php declare(strict_types = 0);
use Zabbix\Widgets\Fields\CWidgetFieldColumnsList;
$form = new CWidgetFormView($data);
(new CWidgetFieldMultiSelectItemView($data['fields']['itemid']))
->setPopupParameter('value_types', [ITEM_VALUE_TYPE_FLOAT, ITEM_VALUE_TYPE_UINT64])
new CWidgetFieldNumericBoxView($data['fields']['min'])
new CWidgetFieldNumericBoxView($data['fields']['max'])
getColorsFieldsGroupView($data['fields'])->addRowClass('fields-group-colors')
(new CWidgetFieldCheckBoxListView($data['fields']['show']))->setColumns(3)
->addField($data['templateid'] === null
? new CWidgetFieldMultiSelectOverrideHostView($data['fields']['override_hostid'])
(new CWidgetFormFieldsetCollapsibleView(_('Advanced configuration')))
new CWidgetFieldRadioButtonListView($data['fields']['angle'])
getDescriptionFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-description')
getValueFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-value')
getValueArcFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-value-arc')
getNeedleFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-needle')
getScaleFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-scale')
getThresholdFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-thresholds')
->includeJsFile('widget.edit.js.php')
->addJavaScript('widget_gauge_form.init('.json_encode([
'thresholds_colors' => CWidgetFieldColumnsList::THRESHOLDS_DEFAULT_COLOR_PALETTE
], JSON_THROW_ON_ERROR).');')
function getColorsFieldsGroupView(array $fields): CWidgetFieldsGroupView {
return (new CWidgetFieldsGroupView(_('Colors')))
new CWidgetFieldColorView($fields['value_arc_color'])
new CWidgetFieldColorView($fields['empty_color'])
new CWidgetFieldColorView($fields['bg_color'])