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/fields/CWidgetFieldTimeZone.php')
-rw-r--r--ui/include/classes/widgets/fields/CWidgetFieldTimeZone.php71
1 files changed, 21 insertions, 50 deletions
diff --git a/ui/include/classes/widgets/fields/CWidgetFieldTimeZone.php b/ui/include/classes/widgets/fields/CWidgetFieldTimeZone.php
index 202283188f3..32806e9885a 100644
--- a/ui/include/classes/widgets/fields/CWidgetFieldTimeZone.php
+++ b/ui/include/classes/widgets/fields/CWidgetFieldTimeZone.php
@@ -1,4 +1,4 @@
-<?php
+<?php declare(strict_types = 0);
/*
** Zabbix
** Copyright (C) 2001-2022 Zabbix SIA
@@ -19,62 +19,33 @@
**/
-class CWidgetFieldTimeZone extends CWidgetField {
+namespace Zabbix\Widgets\Fields;
- private $values;
+use CTimezoneHelper;
- /**
- * CSelect widget field.
- *
- * @param string $name Field name in form
- * @param string $label Label for the field in form
- * @param array $values Key/value pairs of select option values. Key - saved in DB. Value - visible to user.
- */
- public function __construct($name, $label, $values = null) {
- parent::__construct($name, $label);
+class CWidgetFieldTimeZone extends CWidgetFieldSelect {
- $this->setSaveType(ZBX_WIDGET_FIELD_TYPE_STR);
+ public const DEFAULT_VALUE = '';
- if ($values === null) {
- $this->values = $this->generateValues();
- }
+ public function __construct(string $name, string $label = null, array $values = null) {
+ parent::__construct($name, $label, $values === null
+ ? [
+ ZBX_DEFAULT_TIMEZONE => CTimezoneHelper::getTitle(CTimezoneHelper::getSystemTimezone(),
+ _('System default')
+ ),
+ TIMEZONE_DEFAULT_LOCAL => _('Local default')
+ ] + CTimezoneHelper::getList()
+ : null
+ );
- $this->setExValidationRules(['in' => implode(',', array_keys($this->values))]);
+ $this
+ ->setDefault(self::DEFAULT_VALUE)
+ ->setSaveType(ZBX_WIDGET_FIELD_TYPE_STR);
}
- public function setValue($value) {
- return parent::setValue($value);
- }
-
- public function getValues() {
- return $this->values;
- }
-
- private function generateValues() {
- return [
- ZBX_DEFAULT_TIMEZONE => CTimezoneHelper::getTitle(CTimezoneHelper::getSystemTimezone(),
- _('System default')
- ),
- TIMEZONE_DEFAULT_LOCAL => _('Local default')
- ] + CTimezoneHelper::getList();
- }
-
- public function getJavascript() {
- return '
- var timezone_select = document.getElementById("'.$this->getName().'");
- var local_time_zone = Intl.DateTimeFormat().resolvedOptions().timeZone;
- var timezone_from_list = timezone_select.getOptionByValue(local_time_zone);
- var local_list_item = timezone_select.getOptionByValue("'.TIMEZONE_DEFAULT_LOCAL.'");
-
- if (timezone_from_list && local_list_item) {
- const title = local_list_item.label + ": " + timezone_from_list.label;
- local_list_item.label = title;
- local_list_item._node.innerText = title;
+ public function setValue($value): self {
+ $this->value = $value;
- if (timezone_select.selectedIndex === local_list_item._index) {
- timezone_select._preselect(timezone_select.selectedIndex);
- }
- }
- ';
+ return $this;
}
}