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/include/classes/widgets/forms/CWidgetFormItem.php')
-rw-r--r--ui/include/classes/widgets/forms/CWidgetFormItem.php461
1 files changed, 0 insertions, 461 deletions
diff --git a/ui/include/classes/widgets/forms/CWidgetFormItem.php b/ui/include/classes/widgets/forms/CWidgetFormItem.php
deleted file mode 100644
index 96272bd7d51..00000000000
--- a/ui/include/classes/widgets/forms/CWidgetFormItem.php
+++ /dev/null
@@ -1,461 +0,0 @@
-<?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.
-**/
-
-
-/**
- * Single item widget form.
- */
-class CWidgetFormItem extends CWidgetForm {
-
- /**
- * Minimum value of percentage.
- *
- * @var int
- */
- private const WIDGET_ITEM_PERCENT_MIN = 1;
-
- /**
- * Maximum value of percentage.
- *
- * @var int
- */
- private const WIDGET_ITEM_PERCENT_MAX = 100;
-
- public function __construct($data, $templateid) {
- parent::__construct($data, $templateid, WIDGET_ITEM);
-
- $this->data = self::convertDottedKeys($this->data);
-
- // Item field.
- $field_item = (new CWidgetFieldMsItem('itemid', _('Item'), $templateid))
- ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK)
- ->setMultiple(false);
-
- if (array_key_exists('itemid', $this->data)) {
- $field_item->setValue($this->data['itemid']);
- }
-
- $this->fields[$field_item->getName()] = $field_item;
-
- // Show checkboxes.
- $field_show = (new CWidgetFieldCheckBoxList('show', _('Show')))
- ->setDefault([WIDGET_ITEM_SHOW_DESCRIPTION, WIDGET_ITEM_SHOW_VALUE, WIDGET_ITEM_SHOW_TIME,
- WIDGET_ITEM_SHOW_CHANGE_INDICATOR
- ])
- ->setFlags(CWidgetField::FLAG_LABEL_ASTERISK);
-
- if (array_key_exists('show', $this->data)) {
- $field_show->setValue($this->data['show']);
- }
-
- $this->fields[$field_show->getName()] = $field_show;
-
- // Advanced configuration.
- $field_adv_conf = (new CWidgetFieldCheckBox('adv_conf', _('Advanced configuration')))->setDefault(0);
-
- if (array_key_exists('adv_conf', $this->data)) {
- $field_adv_conf->setValue($this->data['adv_conf']);
- }
-
- $this->fields[$field_adv_conf->getName()] = $field_adv_conf;
-
- // Description textarea field.
- $field_desc = (new CWidgetFieldTextArea('description', _('Description')))
- ->setDefault('{ITEM.NAME}')
- ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK)
- ->setWidth(ZBX_TEXTAREA_BIG_WIDTH - 38);
-
- if (array_key_exists('description', $this->data)) {
- $field_desc->setValue($this->data['description']);
- }
-
- $this->fields[$field_desc->getName()] = $field_desc;
-
- // Description horizontal position.
- $field_desc_h_pos = (new CWidgetFieldRadioButtonList('desc_h_pos', _('Horizontal position'), [
- WIDGET_ITEM_POS_LEFT => _('Left'),
- WIDGET_ITEM_POS_CENTER => _('Center'),
- WIDGET_ITEM_POS_RIGHT => _('Right')
- ]))
- ->setDefault(WIDGET_ITEM_POS_CENTER)
- ->setModern(true);
-
- if (array_key_exists('desc_h_pos', $this->data)) {
- $field_desc_h_pos->setValue($this->data['desc_h_pos']);
- }
-
- $this->fields[$field_desc_h_pos->getName()] = $field_desc_h_pos;
-
- // Description vertical position.
- $field_desc_v_pos = (new CWidgetFieldRadioButtonList('desc_v_pos', _('Vertical position'), [
- WIDGET_ITEM_POS_TOP => _('Top'),
- WIDGET_ITEM_POS_MIDDLE => _('Middle'),
- WIDGET_ITEM_POS_BOTTOM => _('Bottom')
- ]))
- ->setDefault(WIDGET_ITEM_POS_BOTTOM)
- ->setModern(true);
-
- if (array_key_exists('desc_v_pos', $this->data)) {
- $field_desc_v_pos->setValue($this->data['desc_v_pos']);
- }
-
- $this->fields[$field_desc_v_pos->getName()] = $field_desc_v_pos;
-
- // Description size.
- $field_desc_size = (new CWidgetFieldIntegerBox('desc_size', _('Size'), self::WIDGET_ITEM_PERCENT_MIN,
- self::WIDGET_ITEM_PERCENT_MAX
- ))->setDefault(15);
-
- if (array_key_exists('desc_size', $this->data)) {
- $field_desc_size->setValue($this->data['desc_size']);
- }
-
- $this->fields[$field_desc_size->getName()] = $field_desc_size;
-
- // Description bold.
- $field_desc_bold = (new CWidgetFieldCheckBox('desc_bold', _('Bold')))->setDefault(0);
-
- if (array_key_exists('desc_bold', $this->data)) {
- $field_desc_bold->setValue($this->data['desc_bold']);
- }
-
- $this->fields[$field_desc_bold->getName()] = $field_desc_bold;
-
- // Description color.
- $field_desc_color = (new CWidgetFieldColor('desc_color', _('Color')))
- ->setDefault('');
-
- if (array_key_exists('desc_color', $this->data)) {
- $field_desc_color->setValue($this->data['desc_color']);
- }
-
- $this->fields[$field_desc_color->getName()] = $field_desc_color;
-
- // Value decimal places.
- $field_decimal_places = (new CWidgetFieldIntegerBox('decimal_places', _('Decimal places'), 0, 10))
- ->setDefault(2);
-
- if (array_key_exists('decimal_places', $this->data)) {
- $field_decimal_places->setValue($this->data['decimal_places']);
- }
-
- $this->fields[$field_decimal_places->getName()] = $field_decimal_places;
-
- // Value decimal size.
- $field_decimal_size = (new CWidgetFieldIntegerBox('decimal_size', _('Size'), self::WIDGET_ITEM_PERCENT_MIN,
- self::WIDGET_ITEM_PERCENT_MAX
- ))->setDefault(35);
-
- if (array_key_exists('decimal_size', $this->data)) {
- $field_decimal_size->setValue($this->data['decimal_size']);
- }
-
- $this->fields[$field_decimal_size->getName()] = $field_decimal_size;
-
- // Value horizontal position.
- $field_value_h_pos = (new CWidgetFieldRadioButtonList('value_h_pos', _('Horizontal position'), [
- WIDGET_ITEM_POS_LEFT => _('Left'),
- WIDGET_ITEM_POS_CENTER => _('Center'),
- WIDGET_ITEM_POS_RIGHT => _('Right')
- ]))
- ->setDefault(WIDGET_ITEM_POS_CENTER)
- ->setModern(true);
-
- if (array_key_exists('value_h_pos', $this->data)) {
- $field_value_h_pos->setValue($this->data['value_h_pos']);
- }
-
- $this->fields[$field_value_h_pos->getName()] = $field_value_h_pos;
-
- // Value vertical position.
- $field_value_v_pos = (new CWidgetFieldRadioButtonList('value_v_pos', _('Vertical position'), [
- WIDGET_ITEM_POS_TOP => _('Top'),
- WIDGET_ITEM_POS_MIDDLE => _('Middle'),
- WIDGET_ITEM_POS_BOTTOM => _('Bottom')
- ]))
- ->setDefault(WIDGET_ITEM_POS_MIDDLE)
- ->setModern(true);
-
- if (array_key_exists('value_v_pos', $this->data)) {
- $field_value_v_pos->setValue($this->data['value_v_pos']);
- }
-
- $this->fields[$field_value_v_pos->getName()] = $field_value_v_pos;
-
- // Value size.
- $field_value_size = (new CWidgetFieldIntegerBox('value_size', _('Size'), self::WIDGET_ITEM_PERCENT_MIN,
- self::WIDGET_ITEM_PERCENT_MAX
- ))->setDefault(45);
-
- if (array_key_exists('value_size', $this->data)) {
- $field_value_size->setValue($this->data['value_size']);
- }
-
- $this->fields[$field_value_size->getName()] = $field_value_size;
-
- // Value bold.
- $field_value_bold = (new CWidgetFieldCheckBox('value_bold', _('Bold')))->setDefault(1);
-
- if (array_key_exists('value_bold', $this->data)) {
- $field_value_bold->setValue($this->data['value_bold']);
- }
-
- $this->fields[$field_value_bold->getName()] = $field_value_bold;
-
- // Value color.
- $field_value_color = (new CWidgetFieldColor('value_color', _('Color')))
- ->setDefault('');
-
- if (array_key_exists('value_color', $this->data)) {
- $field_value_color->setValue($this->data['value_color']);
- }
-
- $this->fields[$field_value_color->getName()] = $field_value_color;
-
- // Units show.
- $field_units_show = (new CWidgetFieldCheckBox('units_show', _('Units')))->setDefault(1);
-
- if (array_key_exists('units_show', $this->data)) {
- $field_units_show->setValue($this->data['units_show']);
- }
-
- $this->fields[$field_units_show->getName()] = $field_units_show;
-
- // Units input field.
- $field_units = new CWidgetFieldTextBox('units', _('Units'));
-
- if (array_key_exists('units', $this->data)) {
- $field_units->setValue($this->data['units']);
- }
-
- $this->fields[$field_units->getName()] = $field_units;
-
- // Units position.
- $field_units_pos = (new CWidgetFieldSelect('units_pos', _('Position'), [
- WIDGET_ITEM_POS_BEFORE => _('Before value'),
- WIDGET_ITEM_POS_ABOVE => _('Above value'),
- WIDGET_ITEM_POS_AFTER => _('After value'),
- WIDGET_ITEM_POS_BELOW => _('Below value')
- ]))
- ->setDefault(WIDGET_ITEM_POS_AFTER);
-
- if (array_key_exists('units_pos', $this->data)) {
- $field_units_pos->setValue($this->data['units_pos']);
- }
-
- $this->fields[$field_units_pos->getName()] = $field_units_pos;
-
- // Units size.
- $field_units_size = (new CWidgetFieldIntegerBox('units_size', _('Size'), self::WIDGET_ITEM_PERCENT_MIN,
- self::WIDGET_ITEM_PERCENT_MAX
- ))->setDefault(35);
-
- if (array_key_exists('units_size', $this->data)) {
- $field_units_size->setValue($this->data['units_size']);
- }
-
- $this->fields[$field_units_size->getName()] = $field_units_size;
-
- // Units bold.
- $field_units_bold = (new CWidgetFieldCheckBox('units_bold', _('Bold')))->setDefault(1);
-
- if (array_key_exists('units_bold', $this->data)) {
- $field_units_bold->setValue($this->data['units_bold']);
- }
-
- $this->fields[$field_units_bold->getName()] = $field_units_bold;
-
- // Units color.
- $field_units_color = (new CWidgetFieldColor('units_color', _('Color')))
- ->setDefault('');
-
- if (array_key_exists('units_color', $this->data)) {
- $field_units_color->setValue($this->data['units_color']);
- }
-
- $this->fields[$field_units_color->getName()] = $field_units_color;
-
- // Time horizontal position.
- $field_time_h_pos = (new CWidgetFieldRadioButtonList('time_h_pos', _('Horizontal position'), [
- WIDGET_ITEM_POS_LEFT => _('Left'),
- WIDGET_ITEM_POS_CENTER => _('Center'),
- WIDGET_ITEM_POS_RIGHT => _('Right')
- ]))
- ->setDefault(WIDGET_ITEM_POS_CENTER)
- ->setModern(true);
-
- if (array_key_exists('time_h_pos', $this->data)) {
- $field_time_h_pos->setValue($this->data['time_h_pos']);
- }
-
- $this->fields[$field_time_h_pos->getName()] = $field_time_h_pos;
-
- // Time vertical position.
- $field_time_v_pos = (new CWidgetFieldRadioButtonList('time_v_pos', _('Vertical position'), [
- WIDGET_ITEM_POS_TOP => _('Top'),
- WIDGET_ITEM_POS_MIDDLE => _('Middle'),
- WIDGET_ITEM_POS_BOTTOM => _('Bottom')
- ]))
- ->setDefault(WIDGET_ITEM_POS_TOP)
- ->setModern(true);
-
- if (array_key_exists('time_v_pos', $this->data)) {
- $field_time_v_pos->setValue($this->data['time_v_pos']);
- }
-
- $this->fields[$field_time_v_pos->getName()] = $field_time_v_pos;
-
- // Time size.
- $field_time_size = (new CWidgetFieldIntegerBox('time_size', _('Size'), self::WIDGET_ITEM_PERCENT_MIN,
- self::WIDGET_ITEM_PERCENT_MAX
- ))->setDefault(15);
-
- if (array_key_exists('time_size', $this->data)) {
- $field_time_size->setValue($this->data['time_size']);
- }
-
- $this->fields[$field_time_size->getName()] = $field_time_size;
-
- // Time bold.
- $field_time_bold = (new CWidgetFieldCheckBox('time_bold', _('Bold')))->setDefault(0);
-
- if (array_key_exists('time_bold', $this->data)) {
- $field_time_bold->setValue($this->data['time_bold']);
- }
-
- $this->fields[$field_time_bold->getName()] = $field_time_bold;
-
- // Time color.
- $field_time_color = (new CWidgetFieldColor('time_color', _('Color')))
- ->setDefault('');
-
- if (array_key_exists('time_color', $this->data)) {
- $field_time_color->setValue($this->data['time_color']);
- }
-
- $this->fields[$field_time_color->getName()] = $field_time_color;
-
- // Change indicator up arrow color.
- $field_up_color = (new CWidgetFieldColor('up_color', _('Change indicator')))
- ->setDefault('');
-
- if (array_key_exists('up_color', $this->data)) {
- $field_up_color->setValue($this->data['up_color']);
- }
-
- $this->fields[$field_up_color->getName()] = $field_up_color;
-
- // Change indicator down arrow color.
- $field_down_color = (new CWidgetFieldColor('down_color', _('Change indicator')))
- ->setDefault('');
-
- if (array_key_exists('down_color', $this->data)) {
- $field_down_color->setValue($this->data['down_color']);
- }
-
- $this->fields[$field_down_color->getName()] = $field_down_color;
-
- // Change indicator up/down arrow color.
- $field_updown_color = (new CWidgetFieldColor('updown_color', _('Change indicator')))
- ->setDefault('');
-
- if (array_key_exists('updown_color', $this->data)) {
- $field_updown_color->setValue($this->data['updown_color']);
- }
-
- $this->fields[$field_updown_color->getName()] = $field_updown_color;
-
- // Background color.
- $field_bg_color = (new CWidgetFieldColor('bg_color', _('Background color')))
- ->setDefault('');
-
- if (array_key_exists('bg_color', $this->data)) {
- $field_bg_color->setValue($this->data['bg_color']);
- }
-
- $this->fields[$field_bg_color->getName()] = $field_bg_color;
-
- // Thresholds.
- $field_thresholds = (new CWidgetFieldThresholds('thresholds', _('Thresholds')));
-
- if (array_key_exists('thresholds', $this->data)) {
- $field_thresholds->setValue($this->data['thresholds']);
- }
-
- $this->fields[$field_thresholds->getName()] = $field_thresholds;
-
- // Dynamic item.
- if ($templateid === null) {
- $dynamic_item = (new CWidgetFieldCheckBox('dynamic', _('Enable host selection')))->setDefault(WIDGET_SIMPLE_ITEM);
-
- if (array_key_exists('dynamic', $this->data)) {
- $dynamic_item->setValue($this->data['dynamic']);
- }
-
- $this->fields[$dynamic_item->getName()] = $dynamic_item;
- }
- }
-
- /**
- * Validate form fields.
- *
- * @param bool $strict Enables more strict validation of the form fields.
- * Must be enabled for validation of input parameters in the widget configuration form.
- *
- * @return array
- */
- public function validate($strict = false) {
- $errors = parent::validate($strict);
-
- // Check if one of the objects (description, value or time) occupies same space.
- $fields = [
- ['show' => WIDGET_ITEM_SHOW_DESCRIPTION, 'h_pos' => 'desc_h_pos', 'v_pos' => 'desc_v_pos'],
- ['show' => WIDGET_ITEM_SHOW_VALUE, 'h_pos' => 'value_h_pos', 'v_pos' => 'value_v_pos'],
- ['show' => WIDGET_ITEM_SHOW_TIME, 'h_pos' => 'time_h_pos', 'v_pos' => 'time_v_pos']
- ];
- $fields_count = count($fields);
- $show = $this->fields['show']->getValue();
-
- for ($i = 0; $i < $fields_count - 1; $i++) {
- if (!in_array($fields[$i]['show'], $show)) {
- continue;
- }
-
- $i_h_pos = $this->fields[$fields[$i]['h_pos']]->getValue();
- $i_v_pos = $this->fields[$fields[$i]['v_pos']]->getValue();
-
- for ($j = $i + 1; $j < $fields_count; $j++) {
- if (!in_array($fields[$j]['show'], $show)) {
- continue;
- }
-
- $j_h_pos = $this->fields[$fields[$j]['h_pos']]->getValue();
- $j_v_pos = $this->fields[$fields[$j]['v_pos']]->getValue();
-
- if ($i_h_pos == $j_h_pos && $i_v_pos == $j_v_pos) {
- $errors[] = _('Two or more fields cannot occupy same space.');
- break 2;
- }
- }
- }
-
- return $errors;
- }
-}