<?php declare(strict_types = 0);
use Widgets\SvgGraph\Includes\{
$form = new CWidgetFormView($data);
->addClass(ZBX_STYLE_SVG_GRAPH_PREVIEW)
->addItem((new CDiv())->setId('svg-graph-preview'));
$form_tabs = (new CTabView())
->addTab('data_set', _('Data set'), getDatasetTab($form, $data['fields']),
TAB_INDICATOR_GRAPH_DATASET
->addTab('displaying_options', _('Displaying options'), getDisplayOptionsTab($form, $data['fields']),
TAB_INDICATOR_GRAPH_DISPLAY_OPTIONS
->addTab('time_period', _('Time period'), getTimePeriodTab($form, $data['fields']),
TAB_INDICATOR_GRAPH_TIME_PERIOD
->addTab('axes', _('Axes'), getAxesTab($form, $data['fields']),
->addTab('legend_tab', _('Legend'), getLegendTab($form, $data['fields']),
TAB_INDICATOR_GRAPH_LEGEND
->addTab('problems', _('Problems'), getProblemsTab($form, $data['fields']),
TAB_INDICATOR_GRAPH_PROBLEMS
->addTab('overrides', _('Overrides'), getOverridesTab($form, $data['fields']),
TAB_INDICATOR_GRAPH_OVERRIDES
->addClass('graph-widget-config-tabs')
->addItem([$preview, $form_tabs])
->addJavaScript($form_tabs->makeJavascript())
->includeJsFile('widget.edit.js.php')
->addJavaScript('widget_svggraph_form.init('.json_encode([
'form_tabs_id' => $form_tabs->getId(),
'color_palette' => CWidgetFieldDataSet::DEFAULT_COLOR_PALETTE,
'templateid' => $data['templateid']
], JSON_THROW_ON_ERROR).');')
function getDatasetTab(CWidgetFormView $form, array $fields): array {
$dataset = $form->registerField(new CWidgetFieldDataSetView($fields['ds']));
(new CDiv($dataset->getView()))->addClass(ZBX_STYLE_LIST_VERTICAL_ACCORDION),
(new CDiv($dataset->getFooterView()))->addClass(ZBX_STYLE_LIST_ACCORDION_FOOT)
function getDisplayOptionsTab(CWidgetFormView $form, array $fields): CDiv {
$source = $form->registerField(new CWidgetFieldRadioButtonListView($fields['source']));
$simple_triggers = $form->registerField(new CWidgetFieldCheckBoxView($fields['simple_triggers']));
$working_time = $form->registerField(new CWidgetFieldCheckBoxView($fields['working_time']));
$percentile_left = $form->registerField(new CWidgetFieldCheckBoxView($fields['percentile_left']));
$percentile_left_value = $form->registerField(
(new CWidgetFieldTextBoxView($fields['percentile_left_value']))
->setPlaceholder(_('value'))
->setWidth(ZBX_TEXTAREA_TINY_WIDTH)
$percentile_right = $form->registerField(new CWidgetFieldCheckBoxView($fields['percentile_right']));