Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ui/widgets/svggraph/views/widget.edit.php')
-rw-r--r--ui/widgets/svggraph/views/widget.edit.php289
1 files changed, 289 insertions, 0 deletions
diff --git a/ui/widgets/svggraph/views/widget.edit.php b/ui/widgets/svggraph/views/widget.edit.php
new file mode 100644
index 00000000000..6d253a7bf30
--- /dev/null
+++ b/ui/widgets/svggraph/views/widget.edit.php
@@ -0,0 +1,289 @@
+<?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.
+**/
+
+
+/**
+ * Graph widget form view.
+ *
+ * @var CView $this
+ * @var array $data
+ */
+
+use Zabbix\Widgets\Fields\CWidgetFieldGraphDataSet;
+
+$form = (new CWidgetFormView($data));
+
+$preview = (new CDiv())
+ ->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
+ )
+ ->addTab('axes', _('Axes'), getAxesTab($form, $data['fields']),
+ TAB_INDICATOR_GRAPH_AXES
+ )
+ ->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')
+ ->setSelected(0);
+
+$form
+ ->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' => CWidgetFieldGraphDataSet::DEFAULT_COLOR_PALETTE
+ ], JSON_THROW_ON_ERROR).');')
+ ->show();
+
+function getDatasetTab(CWidgetFormView $form, array $fields): CFormGrid {
+ $dataset = new CWidgetFieldGraphDataSetView($fields['ds']);
+
+ return new CFormGrid(
+ $form->makeCustomField($dataset, [
+ $dataset->getLabel(),
+ (new CFormField($dataset->getView()))->addClass(ZBX_STYLE_LIST_VERTICAL_ACCORDION),
+ (new CFormField($dataset->getFooterView()))->addClass(ZBX_STYLE_LIST_ACCORDION_FOOT)
+ ])
+ );
+}
+
+function getDisplayOptionsTab(CWidgetFormView $form, array $fields): CDiv {
+ $percentile_left = new CWidgetFieldCheckBoxView($fields['percentile_left']);
+ $percentile_left_value = (new CWidgetFieldTextBoxView($fields['percentile_left_value']))
+ ->setPlaceholder(_('value'))
+ ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);
+
+ $percentile_right = new CWidgetFieldCheckBoxView($fields['percentile_right']);
+ $percentile_right_value = (new CWidgetFieldTextBoxView($fields['percentile_right_value']))
+ ->setPlaceholder(_('value'))
+ ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);
+
+ return (new CDiv())
+ ->addClass(ZBX_STYLE_GRID_COLUMNS)
+ ->addClass(ZBX_STYLE_GRID_COLUMNS_2)
+ ->addItem(
+ new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldRadioButtonListView($fields['source'])
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['simple_triggers'])
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['working_time'])
+ )
+ ])
+ )
+ ->addItem(
+ new CFormGrid([
+ $form->makeCustomField($percentile_left, [
+ $percentile_left->getLabel(),
+ new CFormField([
+ $percentile_left->getView(),
+ $percentile_left_value->getView()
+ ])
+ ]),
+
+ $form->makeCustomField($percentile_right, [
+ $percentile_right->getLabel(),
+ new CFormField([
+ $percentile_right->getView(),
+ $percentile_right_value->getView()
+ ])
+ ])
+ ])
+ );
+}
+
+function getTimePeriodTab(CWidgetFormView $form, array $fields): CFormGrid {
+ return new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['graph_time'])
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldDatePickerView($fields['time_from']))
+ ->setDateFormat(ZBX_FULL_DATE_TIME)
+ ->setPlaceholder(_('YYYY-MM-DD hh:mm:ss'))
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldDatePickerView($fields['time_to']))
+ ->setDateFormat(ZBX_FULL_DATE_TIME)
+ ->setPlaceholder(_('YYYY-MM-DD hh:mm:ss'))
+ )
+ ]);
+}
+
+function getAxesTab(CWidgetFormView $form, array $fields): CDiv {
+ $lefty_units = new CWidgetFieldSelectView($fields['lefty_units']);
+ $lefty_static_units = (new CWidgetFieldTextBoxView($fields['lefty_static_units']))
+ ->setPlaceholder(_('value'))
+ ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);
+
+ $righty_units = new CWidgetFieldSelectView($fields['righty_units']);
+ $righty_static_units = (new CWidgetFieldTextBoxView($fields['righty_static_units']))
+ ->setPlaceholder(_('value'))
+ ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);
+
+ return (new CDiv())
+ ->addClass(ZBX_STYLE_GRID_COLUMNS)
+ ->addClass(ZBX_STYLE_GRID_COLUMNS_3)
+ ->addItem(
+ new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['lefty'])
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldNumericBoxView($fields['lefty_min']))->setPlaceholder(_('calculated'))
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldNumericBoxView($fields['lefty_max']))->setPlaceholder(_('calculated'))
+ ),
+
+ $form->makeCustomField($lefty_units, [
+ $lefty_units->getLabel(),
+ new CFormField([
+ $lefty_units->getView()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
+ $lefty_static_units->getView()
+ ])
+ ])
+ ])
+ )
+ ->addItem(
+ new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['righty'])
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldNumericBoxView($fields['righty_min']))->setPlaceholder(_('calculated'))
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldNumericBoxView($fields['righty_max']))->setPlaceholder(_('calculated'))
+ ),
+
+ $form->makeCustomField($righty_units, [
+ $righty_units->getLabel(),
+ new CFormField([
+ $righty_units->getView()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
+ $righty_static_units->getView()
+ ])
+ ])
+ ])
+ )
+ ->addItem(
+ new CFormGrid(
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['axisx'])
+ )
+ )
+ );
+}
+
+function getLegendTab(CWidgetFormView $form, array $fields): CDiv {
+ return (new CDiv())
+ ->addClass(ZBX_STYLE_GRID_COLUMNS)
+ ->addClass(ZBX_STYLE_GRID_COLUMNS_2)
+ ->addItem(
+ new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['legend'])
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['legend_statistic'])
+ )
+ ])
+ )
+ ->addItem(
+ new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldRangeControlView($fields['legend_lines'])
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldRangeControlView($fields['legend_columns'])
+ )
+ ])
+ );
+}
+
+function getProblemsTab(CWidgetFormView $form, array $fields): CFormGrid {
+ return new CFormGrid([
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['show_problems'])
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldCheckBoxView($fields['graph_item_problems'])
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldHostPatternSelectView($fields['problemhosts']))->setPlaceholder(_('host pattern'))
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldSeveritiesView($fields['severities'])
+ ),
+
+ $form->makeCustomField(
+ (new CWidgetFieldTextBoxView($fields['problem_name']))->setPlaceholder(_('problem pattern'))
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldRadioButtonListView($fields['evaltype'])
+ ),
+
+ $form->makeCustomField(
+ new CWidgetFieldTagsView($fields['tags'])
+ )
+ ]);
+}
+
+function getOverridesTab(CWidgetFormView $form, array $fields): CFormGrid {
+ return new CFormGrid(
+ $form->makeCustomField(
+ new CWidgetFieldGraphOverrideView($fields['or'])
+ )
+ );
+}