<?php declare(strict_types = 0);
use Widgets\Item\Widget;
$form = new CWidgetFormView($data);
$form
->addField(
(new CWidgetFieldMultiSelectItemView($data['fields']['itemid']))
->setPopupParameter('value_types', [
ITEM_VALUE_TYPE_FLOAT,
ITEM_VALUE_TYPE_STR,
ITEM_VALUE_TYPE_LOG,
ITEM_VALUE_TYPE_UINT64,
ITEM_VALUE_TYPE_TEXT
])
)
->addField(
(new CWidgetFieldCheckBoxListView($data['fields']['show']))->setColumns(2)
)
->addField($data['templateid'] === null
? new CWidgetFieldMultiSelectOverrideHostView($data['fields']['override_hostid'])
: null
)
->addFieldset(
(new CWidgetFormFieldsetCollapsibleView(_('Advanced configuration')))
->addFieldsGroup(
getDescriptionFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-description')
)
->addFieldsGroup(
getValueFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-value')
)
->addFieldsGroup(
getTimeFieldsGroupView($form, $data['fields'])->addRowClass('fields-group-time')
)
->addFieldsGroup(
getChangeIndicatorFieldsGroupView($data['fields'])->addRowClass('fields-group-change-indicator')
)
->addItem(
(new CWidgetFieldSparklineView($data['fields']['sparkline']))->addRowClass('js-sparkline-row')
)
->addField(
new CWidgetFieldColorView($data['fields']['bg_color'])
)
->addFieldsGroup(
getThresholdFieldsGroupView($data['fields'])->addRowClass('js-row-thresholds')
)
->addField(
(new CWidgetFieldSelectView($data['fields']['aggregate_function']))
->setFieldHint(
makeWarningIcon(_('With this setting only numeric items will be displayed.'))
->addStyle('display: none')
->setId('item-aggregate-function-warning')
)
)
->addField(
(new CWidgetFieldTimePeriodView($data['fields']['time_period']))
->setDateFormat(ZBX_FULL_DATE_TIME)
->setFromPlaceholder(_('YYYY-MM-DD hh:mm:ss'))
->setToPlaceholder(_('YYYY-MM-DD hh:mm:ss'))
)
->addField(
(new CWidgetFieldRadioButtonListView($data['fields']['history']))->setFieldHint(
makeWarningIcon(
_('This setting applies only to numeric data. Non-numeric data will always be taken from history.')
)->setId('item-history-data-warning')
)
)
)
->includeJsFile('widget.edit.js.php')