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
path: root/ui
diff options
context:
space:
mode:
authorDmitrijs Goloscapovs <dmitrijs.goloscapovs@zabbix.com>2022-06-20 16:35:33 +0300
committerDmitrijs Goloscapovs <dmitrijs.goloscapovs@zabbix.com>2022-06-20 16:35:33 +0300
commitc6040e7b8b93256633ec4aa7dc98263499b96e7c (patch)
tree3b0e635b878e01b0bc17091b2e7abd93b47ec10c /ui
parent4c9885e6bb4fce783367fa7fc90ed33d6ff94fae (diff)
parentc488a211647f6b53b9c7423678f6c39601cb1db2 (diff)
.......... [ZBX-20638] updated to latest master
Diffstat (limited to 'ui')
-rw-r--r--ui/app/controllers/CControllerPopupGeneric.php2
-rw-r--r--ui/app/partials/configuration.filter.items.php6
-rw-r--r--ui/app/partials/configuration.host.edit.html.php14
-rw-r--r--ui/app/partials/js/configuration.host.edit.html.js.php2
-rw-r--r--ui/app/partials/layout.htmlpage.header.php2
-rw-r--r--ui/app/partials/monitoring.latest.filter.php9
-rw-r--r--ui/app/partials/scheduledreport.formgrid.html.php2
-rw-r--r--ui/app/views/administration.token.edit.php2
-rw-r--r--ui/app/views/administration.user.edit.php2
-rw-r--r--ui/app/views/administration.user.list.php2
-rw-r--r--ui/app/views/administration.user.token.edit.php5
-rw-r--r--ui/app/views/monitoring.widget.item.view.php14
-rw-r--r--ui/app/views/popup.condition.common.php34
-rw-r--r--ui/app/views/popup.generic.php8
-rw-r--r--ui/app/views/popup.import.compare.php4
-rw-r--r--ui/app/views/slareport.list.php4
-rw-r--r--ui/assets/styles/blue-theme.css16
-rw-r--r--ui/assets/styles/dark-theme.css16
-rw-r--r--ui/assets/styles/hc-dark.css16
-rw-r--r--ui/assets/styles/hc-light.css16
-rw-r--r--ui/chart4.php4
-rw-r--r--ui/hostinventoriesoverview.php4
-rw-r--r--ui/include/classes/core/CConfigFile.php4
-rw-r--r--ui/include/classes/core/ZBase.php6
-rw-r--r--ui/include/classes/data/CItemData.php2
-rw-r--r--ui/include/classes/db/OracleDbBackend.php2
-rw-r--r--ui/include/classes/graphdraw/CGraphDraw.php23
-rw-r--r--ui/include/classes/graphdraw/CLineGraphDraw.php180
-rw-r--r--ui/include/classes/graphdraw/CPieGraphDraw.php28
-rw-r--r--ui/include/classes/helpers/CArrayHelper.php10
-rw-r--r--ui/include/classes/ldap/CLdap.php2
-rw-r--r--ui/include/classes/macros/CMacrosResolverGeneral.php4
-rw-r--r--ui/include/classes/server/CZabbixServer.php2
-rw-r--r--ui/include/classes/validators/CApiInputValidator.php6
-rw-r--r--ui/include/classes/widgets/CWidgetHelper.php12
-rw-r--r--ui/include/classes/widgets/views/widget.item.form.view.php4
-rw-r--r--ui/include/config.inc.php2
-rw-r--r--ui/include/defines.inc.php4
-rw-r--r--ui/include/draw.inc.php4
-rw-r--r--ui/include/func.inc.php11
-rw-r--r--ui/include/graphs.inc.php7
-rw-r--r--ui/include/images.inc.php14
-rw-r--r--ui/include/items.inc.php56
-rw-r--r--ui/include/views/configuration.graph.edit.php18
-rw-r--r--ui/include/views/configuration.graph.list.php4
-rw-r--r--ui/include/views/configuration.host.prototype.edit.php4
-rw-r--r--ui/include/views/configuration.httpconf.list.php4
-rw-r--r--ui/include/views/configuration.item.edit.php2
-rw-r--r--ui/include/views/configuration.template.edit.php2
-rw-r--r--ui/include/views/configuration.triggers.list.php4
-rw-r--r--ui/include/views/js/configuration.host.prototype.edit.js.php6
-rw-r--r--ui/include/views/js/monitoring.sysmaps.js.php2
-rw-r--r--ui/js/class.notifications.js2
-rw-r--r--ui/locale/bg/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/ca/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/cs/LC_MESSAGES/frontend.po173
-rw-r--r--ui/locale/de/LC_MESSAGES/frontend.po14
-rw-r--r--ui/locale/el/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/en/LC_MESSAGES/frontend.pot4
-rw-r--r--ui/locale/en_GB/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/es/LC_MESSAGES/frontend.po70
-rw-r--r--ui/locale/fa/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/fi/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/fr/LC_MESSAGES/frontend.po10
-rw-r--r--ui/locale/he/LC_MESSAGES/frontend.po52
-rw-r--r--ui/locale/hu/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/id/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/it/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/ja/LC_MESSAGES/frontend.po22
-rw-r--r--ui/locale/ka/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/ko/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/lt/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/lv/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/nb_NO/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/nl/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/pl/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/pt_BR/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/pt_PT/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/ro/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/ru/LC_MESSAGES/frontend.po14
-rw-r--r--ui/locale/sk/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/sv_SE/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/tr/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/uk/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/vi/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/zh_CN/LC_MESSAGES/frontend.po4
-rw-r--r--ui/locale/zh_TW/LC_MESSAGES/frontend.po4
-rw-r--r--ui/report2.php2
-rw-r--r--ui/tests/api_json/testAPIInfo.php2
-rw-r--r--ui/tests/include/CIntegrationTest.php57
-rw-r--r--ui/tests/include/helpers/CDBHelper.php110
-rw-r--r--ui/tests/include/web/CElement.php18
-rw-r--r--ui/tests/integration/testAgentItems.php23
-rw-r--r--ui/tests/integration/testGoAgentDataCollection.php23
-rw-r--r--ui/tests/integration/testItemState.php5
-rw-r--r--ui/tests/selenium/testFormSetup.php2
-rw-r--r--ui/tests/selenium/testPageAdministrationGeneralModules.php2
-rw-r--r--ui/tests/selenium/testUrlParameters.php4
-rw-r--r--ui/tests/templates/zabbix.conf.php2
99 files changed, 822 insertions, 506 deletions
diff --git a/ui/app/controllers/CControllerPopupGeneric.php b/ui/app/controllers/CControllerPopupGeneric.php
index 04cc5ed6ee1..09afd19ec0b 100644
--- a/ui/app/controllers/CControllerPopupGeneric.php
+++ b/ui/app/controllers/CControllerPopupGeneric.php
@@ -902,7 +902,7 @@ class CControllerPopupGeneric extends CController {
case 'items':
foreach ($records as $itemid => $row) {
- $records[$row['name']] = ['itemid' => $row['name']] + $row;
+ $records[$row['name']] = ['pattern' => $row['name']] + $row;
unset($records[$itemid]);
}
break;
diff --git a/ui/app/partials/configuration.filter.items.php b/ui/app/partials/configuration.filter.items.php
index f3ce4cbd54c..848abcece3e 100644
--- a/ui/app/partials/configuration.filter.items.php
+++ b/ui/app/partials/configuration.filter.items.php
@@ -52,7 +52,7 @@ zbx_add_post_js("var filterTypeSwitcher".
// First column.
$filter_column_1
- ->addRow((new CLabel(_('Host groups'), 'filter_groupid_ms')),
+ ->addRow((new CLabel(_('Host groups'), 'filter_groupids__ms')),
(new CMultiSelect([
'name' => 'filter_groupids[]',
'object_name' => 'hostGroup',
@@ -69,7 +69,7 @@ $filter_column_1
]
]))->setWidth(ZBX_TEXTAREA_FILTER_SMALL_WIDTH)
)
- ->addRow((new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hostid_ms')),
+ ->addRow((new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hostids__ms')),
(new CMultiSelect([
'name' => 'filter_hostids[]',
'object_name' => ($data['context'] === 'host') ? 'hosts' : 'templates',
@@ -96,7 +96,7 @@ $filter_column_1
);
if ($data['filter_data']['hosts']) {
- $filter_column_1->addRow(_('Value mapping'),
+ $filter_column_1->addRow(new CLabel(_('Value mapping'), 'filter_valuemapids__ms'),
(new CMultiSelect([
'name' => 'filter_valuemapids[]',
'object_name' => 'valuemap_names',
diff --git a/ui/app/partials/configuration.host.edit.html.php b/ui/app/partials/configuration.host.edit.html.php
index e5b4c511ce6..a1a2f97df3d 100644
--- a/ui/app/partials/configuration.host.edit.html.php
+++ b/ui/app/partials/configuration.host.edit.html.php
@@ -207,7 +207,17 @@ else {
$host_tab
->addItem([
- new CLabel(_('Templates')),
+ new CLabel([
+ _('Templates'),
+ $host_is_discovered
+ ? makeHelpIcon([
+ (new CList([
+ _('Templates linked by host discovery cannot be unlinked.'),
+ _('Use host prototype configuration form to remove automatically linked templates on upcoming discovery.')
+ ]))
+ ])
+ : null
+ ], 'add_templates__ms'),
(new CFormField(
(count($templates_field_items) > 1)
? (new CDiv($templates_field_items))->addClass('linked-templates')
@@ -414,7 +424,7 @@ foreach ($data['inventory_fields'] as $inventory_no => $inventory_field) {
}
$inventory_tab->addItem([
- new CLabel($inventory_field['title']),
+ new CLabel($inventory_field['title'], 'host_inventory['.$field_name.']'),
new CFormField([$input_field, $inventory_item])
]);
}
diff --git a/ui/app/partials/js/configuration.host.edit.html.js.php b/ui/app/partials/js/configuration.host.edit.html.js.php
index c102e0334bb..942ac098292 100644
--- a/ui/app/partials/js/configuration.host.edit.html.js.php
+++ b/ui/app/partials/js/configuration.host.edit.html.js.php
@@ -148,7 +148,7 @@
$groups_ms.on('change', (e) => {
$groups_ms.multiSelect('setDisabledEntries',
- [... document.querySelectorAll('[name^="groups["]')].map((input) => input.value)
+ [... this.form.querySelectorAll('[name^="groups["]')].map((input) => input.value)
);
});
},
diff --git a/ui/app/partials/layout.htmlpage.header.php b/ui/app/partials/layout.htmlpage.header.php
index 621bd06563e..5a343ccc248 100644
--- a/ui/app/partials/layout.htmlpage.header.php
+++ b/ui/app/partials/layout.htmlpage.header.php
@@ -24,7 +24,7 @@
* @var array $data
*/
-global $DB, $ZBX_SERVER, $ZBX_SERVER_NAME, $ZBX_SERVER_PORT;
+global $DB, $ZBX_SERVER_NAME;
$theme = ZBX_DEFAULT_THEME;
$scripts = $data['javascript']['files'];
diff --git a/ui/app/partials/monitoring.latest.filter.php b/ui/app/partials/monitoring.latest.filter.php
index 2afa2fda165..3ecfb6399fd 100644
--- a/ui/app/partials/monitoring.latest.filter.php
+++ b/ui/app/partials/monitoring.latest.filter.php
@@ -29,7 +29,7 @@ $filter_view_data = array_key_exists('filter_view_data', $data) ? $data['filter_
$left_column = (new CFormGrid())
->addClass(CFormGrid::ZBX_STYLE_FORM_GRID_LABEL_WIDTH_TRUE)
->addItem([
- new CLabel(_('Host groups'), 'groupids__ms'),
+ new CLabel(_('Host groups'), 'groupids_#{uniqid}_ms'),
new CFormField(
(new CMultiSelect([
'name' => 'groupids[]',
@@ -53,7 +53,7 @@ $left_column = (new CFormGrid())
)
])
->addItem([
- new CLabel(_('Hosts'), 'hostids__ms'),
+ new CLabel(_('Hosts'), 'hostids_#{uniqid}_ms'),
new CFormField(
(new CMultiSelect([
'name' => 'hostids[]',
@@ -169,7 +169,7 @@ $right_column = (new CFormGrid())
new CFormField($tag_format_line)
])
->addItem([
- new CLabel(_('Tag display priority')),
+ new CLabel(_('Tag display priority'), 'tag_priority_#{uniqid}'),
new CFormField(
(new CTextBox('tag_priority', $data['tag_priority']))
->setWidth(ZBX_TEXTAREA_FILTER_STANDARD_WIDTH)
@@ -179,12 +179,11 @@ $right_column = (new CFormGrid())
)
])
->addItem([
- new CLabel(_('Show details')),
+ new CLabel(_('Show details'), 'show_details'),
new CFormField([
(new CCheckBox('show_details'))
->setChecked($data['show_details'] == 1)
->setUncheckedValue(0)
- ->removeId()
])
]);
diff --git a/ui/app/partials/scheduledreport.formgrid.html.php b/ui/app/partials/scheduledreport.formgrid.html.php
index b4f1576085f..04bb1e18606 100644
--- a/ui/app/partials/scheduledreport.formgrid.html.php
+++ b/ui/app/partials/scheduledreport.formgrid.html.php
@@ -104,7 +104,7 @@ $form_grid
)
])
->addItem([
- new CLabel(_('Start time')),
+ new CLabel(_('Start time'), 'hours'),
new CFormField(
(new CDiv([
(new CNumericBox('hours', $data['hours'], 2))
diff --git a/ui/app/views/administration.token.edit.php b/ui/app/views/administration.token.edit.php
index 5a7605268a9..b7762bd64b9 100644
--- a/ui/app/views/administration.token.edit.php
+++ b/ui/app/views/administration.token.edit.php
@@ -78,7 +78,7 @@ $token_from_list = (new CFormList())
->setChecked($data['expires_state'])
->setUncheckedValue('0')
)
- ->addRow((new CLabel(_('Expires at')))->setAsteriskMark(),
+ ->addRow((new CLabel(_('Expires at'), 'expires_at'))->setAsteriskMark(),
(new CDateSelector('expires_at', $data['expires_at']))
->setDateFormat(ZBX_FULL_DATE_TIME)
->setPlaceholder(_('YYYY-MM-DD hh:mm:ss'))
diff --git a/ui/app/views/administration.user.edit.php b/ui/app/views/administration.user.edit.php
index 8ffffe7203d..1e466b8b4e2 100644
--- a/ui/app/views/administration.user.edit.php
+++ b/ui/app/views/administration.user.edit.php
@@ -409,7 +409,7 @@ if ($data['action'] === 'user.edit') {
);
}
else {
- $permissions_form_list->addRow((new CLabel(_('Role')))->setAsteriskMark(), $role_multiselect);
+ $permissions_form_list->addRow((new CLabel(_('Role'), 'roleid_ms'))->setAsteriskMark(), $role_multiselect);
}
if ($data['roleid']) {
diff --git a/ui/app/views/administration.user.list.php b/ui/app/views/administration.user.list.php
index 4920b58891d..76255e3d866 100644
--- a/ui/app/views/administration.user.list.php
+++ b/ui/app/views/administration.user.list.php
@@ -70,7 +70,7 @@ $widget = (new CWidget())
(new CFormList())->addRow(_('Last name'),
(new CTextBox('filter_surname', $data['filter']['surname']))->setWidth(ZBX_TEXTAREA_FILTER_SMALL_WIDTH)
),
- (new CFormList())->addRow((new CLabel(_('User roles'), 'filter_roles')),
+ (new CFormList())->addRow((new CLabel(_('User roles'), 'filter_roles__ms')),
(new CMultiSelect([
'name' => 'filter_roles[]',
'object_name' => 'roles',
diff --git a/ui/app/views/administration.user.token.edit.php b/ui/app/views/administration.user.token.edit.php
index 85ef8584a9a..51682ff5314 100644
--- a/ui/app/views/administration.user.token.edit.php
+++ b/ui/app/views/administration.user.token.edit.php
@@ -60,12 +60,11 @@ $token_from_list = (new CFormList())
->setChecked($data['expires_state'])
->setUncheckedValue('0')
)
- ->addRow((new CLabel(_('Expires at')))->setAsteriskMark(),
+ ->addRow((new CLabel(_('Expires at'), 'expires_at'))->setAsteriskMark(),
(new CDateSelector('expires_at', $data['expires_at']))
->setDateFormat(ZBX_FULL_DATE_TIME)
->setPlaceholder(_('YYYY-MM-DD hh:mm:ss'))
- ->setAriaRequired(),
- 'expires-at-row'
+ ->setAriaRequired()
)
->addRow(_('Enabled'),
(new CCheckBox('status', ZBX_AUTH_TOKEN_ENABLED))
diff --git a/ui/app/views/monitoring.widget.item.view.php b/ui/app/views/monitoring.widget.item.view.php
index a172ee2fff4..bab325bb799 100644
--- a/ui/app/views/monitoring.widget.item.view.php
+++ b/ui/app/views/monitoring.widget.item.view.php
@@ -168,6 +168,13 @@ function drawValueCell(array $cell_data): array {
$item_content_div->addItem($item_decimals_div);
}
+ // Units AFTER value.
+ if (array_key_exists('units', $cell_data['parts']) && $cell_data['units_pos'] == WIDGET_ITEM_POS_AFTER) {
+ $item_content_div->addItem($units_div);
+ }
+
+ $item_cell[] = $item_content_div;
+
if (array_key_exists('change_indicator', $cell_data['parts'])) {
$change_data = $cell_data['parts']['change_indicator'];
$item_change_div = (new CDiv())->addClass('change-indicator');
@@ -191,13 +198,6 @@ function drawValueCell(array $cell_data): array {
$item_content_div->addItem($item_change_div);
}
- // Units AFTER value.
- if (array_key_exists('units', $cell_data['parts']) && $cell_data['units_pos'] == WIDGET_ITEM_POS_AFTER) {
- $item_content_div->addItem($units_div);
- }
-
- $item_cell[] = $item_content_div;
-
// Units BELOW value.
if (array_key_exists('units', $cell_data['parts']) && $cell_data['units_pos'] == WIDGET_ITEM_POS_BELOW) {
$item_cell[] = $units_div;
diff --git a/ui/app/views/popup.condition.common.php b/ui/app/views/popup.condition.common.php
index 1415ca943af..1366017d2cf 100644
--- a/ui/app/views/popup.condition.common.php
+++ b/ui/app/views/popup.condition.common.php
@@ -69,7 +69,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), [$operator, new CVar('operator', CONDITION_OPERATOR_EQUAL)])
- ->addRow(_('Tag'), $new_condition_tag);
+ ->addRow(new CLabel(_('Tag'), 'tag'), $new_condition_tag);
break;
// New event host group form elements.
@@ -98,7 +98,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Host groups'), $hostgroup_multiselect);
+ ->addRow(new CLabel(_('Host groups'), 'groupids__ms'), $hostgroup_multiselect);
break;
// Event tag pair form elements.
@@ -115,9 +115,9 @@ switch ($data['type']) {
$inline_js .= $new_condition_newtag->getPostJS();
$form_list
- ->addRow(_('Old tag name'), $new_condition_oldtag)
+ ->addRow(new CLabel(_('Old tag name'), 'oldtag'), $new_condition_oldtag)
->addRow(_('Operator'), [$operator, new CVar('operator', CONDITION_OPERATOR_EQUAL)])
- ->addRow(_('New tag name'), $new_condition_newtag);
+ ->addRow(new CLabel(_('New tag name'), 'newtag'), $new_condition_newtag);
break;
// Old|New event tag value form elements.
@@ -135,9 +135,9 @@ switch ($data['type']) {
$inline_js .= $new_condition_value->getPostJS();
$form_list
- ->addRow(_('Tag'), $new_condition_tag)
+ ->addRow(new CLabel(_('Tag'), 'tag'), $new_condition_tag)
->addRow(_('Operator'), $operator)
- ->addRow(_('Value'), $new_condition_value);
+ ->addRow(new CLabel(_('Value'), 'value'), $new_condition_value);
break;
}
break;
@@ -205,7 +205,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Triggers'), $trigger_multiselect);
+ ->addRow(new CLabel(_('Triggers'), 'trigger_new_condition_ms'), $trigger_multiselect);
break;
// Trigger severity form elements.
@@ -248,7 +248,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Hosts'), $host_multiselect);
+ ->addRow(new CLabel(_('Hosts'), 'host_new_condition_ms'), $host_multiselect);
break;
// Host group form elements.
@@ -279,7 +279,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Host groups'), $hostgroup_multiselect);
+ ->addRow(new CLabel(_('Host groups'), 'hostgroup_new_condition_ms'), $hostgroup_multiselect);
break;
// Problem is suppressed form elements.
@@ -304,7 +304,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow((new CLabel(_('Tag')))->setAsteriskMark(), $new_condition_value);
+ ->addRow((new CLabel(_('Tag'), 'value'))->setAsteriskMark(), $new_condition_value);
break;
// Tag value form elements.
@@ -320,9 +320,9 @@ switch ($data['type']) {
$inline_js .= $new_condition_value->getPostJS();
$form_list
- ->addRow((new CLabel(_('Tag')))->setAsteriskMark(), $new_condition_value2)
+ ->addRow((new CLabel(_('Tag'), 'value2'))->setAsteriskMark(), $new_condition_value2)
->addRow(_('Operator'), $operator)
- ->addRow(_('Value'), $new_condition_value);
+ ->addRow(new CLabel(_('Value'), 'value'), $new_condition_value);
break;
// Template form elements.
@@ -354,7 +354,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Templates'), $template_multiselect);
+ ->addRow(new CLabel(_('Templates'), 'template_new_condition_ms'), $template_multiselect);
break;
// Time period form elements.
@@ -465,7 +465,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Discovery rules'), $drule_multiselect);
+ ->addRow(new CLabel(_('Discovery rules'), 'drule_new_condition_ms'), $drule_multiselect);
break;
// Discovery status form elements.
@@ -517,7 +517,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow(_('Proxy'), $proxy_multiselect);
+ ->addRow(new CLabel(_('Proxy'), 'proxy_new_condition_ms'), $proxy_multiselect);
break;
// Received value form elements.
@@ -532,7 +532,7 @@ switch ($data['type']) {
->setFocusableElementId('label-operator')
->addOptions(CSelect::createOptionsFromArray($operators_by_condition[CONDITION_TYPE_DVALUE]))
)
- ->addRow(_('Value'), $new_condition_value);
+ ->addRow(new CLabel(_('Value'), 'value'), $new_condition_value);
break;
// Service port form elements.
@@ -598,7 +598,7 @@ switch ($data['type']) {
$form_list
->addRow(_('Operator'), $operator)
- ->addRow((new CLabel(_('Value')))->setAsteriskMark(), $new_condition_value);
+ ->addRow((new CLabel(_('Value'), 'value'))->setAsteriskMark(), $new_condition_value);
break;
// Event type form elements.
diff --git a/ui/app/views/popup.generic.php b/ui/app/views/popup.generic.php
index 017049ba943..76d2a9533af 100644
--- a/ui/app/views/popup.generic.php
+++ b/ui/app/views/popup.generic.php
@@ -455,14 +455,14 @@ switch ($data['popup_type']) {
$table->addRow([
$data['multiselect']
- ? new CCheckBox('item['.$item[$options['srcfld1']].']', $item['itemid'])
+ ? new CCheckBox('item['.$item['itemid'].']', $item['pattern'])
: null,
(new CLink($item['name'], 'javascript:void(0);'))
->onClick('javascript: addValue('.
json_encode($options['reference']).', '.
- json_encode($item['itemid']).', '.
+ json_encode($item['pattern']).', '.
$options['parentid'].
- ');'.$js_action_onclick),
+ ');'.$js_action_onclick),
(new CDiv($item['key_']))->addClass(ZBX_STYLE_WORDWRAP),
item_type2str($item['type']),
itemValueTypeString($item['value_type']),
@@ -473,7 +473,7 @@ switch ($data['popup_type']) {
]);
$item = [
- 'id' => $item['itemid'],
+ 'id' => $item['pattern'],
'itemid' => $item['itemid'],
'name' => $options['patternselect']
? $item['name']
diff --git a/ui/app/views/popup.import.compare.php b/ui/app/views/popup.import.compare.php
index fc6af676071..afa8d937708 100644
--- a/ui/app/views/popup.import.compare.php
+++ b/ui/app/views/popup.import.compare.php
@@ -170,8 +170,8 @@ else {
'script_inline' => trim($this->readJsFile('popup.import.compare.js.php')),
'body' => !$data['diff']
? (new CTableInfo())
- ->setNoDataMessage(_('No changes.'))
- ->toString()
+ ->setNoDataMessage(_('No changes.'))
+ ->toString()
: (new CForm())
->addClass('import-compare')
->addVar('import_overlayid', $data['import_overlayid'])
diff --git a/ui/app/views/slareport.list.php b/ui/app/views/slareport.list.php
index 48562cba159..0dc67498e31 100644
--- a/ui/app/views/slareport.list.php
+++ b/ui/app/views/slareport.list.php
@@ -37,7 +37,7 @@ $filter = (new CFilter())
(new CFormGrid())
->addClass(CFormGrid::ZBX_STYLE_FORM_GRID_LABEL_WIDTH_TRUE)
->addItem([
- new CLabel(_('SLA'), 'filter_slaid'),
+ new CLabel(_('SLA'), 'filter_slaid_ms'),
new CFormField(
(new CMultiSelect([
'name' => 'filter_slaid',
@@ -57,7 +57,7 @@ $filter = (new CFilter())
]
]))->setWidth(ZBX_TEXTAREA_FILTER_STANDARD_WIDTH)
),
- new CLabel(_('Service'), 'filter_serviceid'),
+ new CLabel(_('Service'), 'filter_serviceid_ms'),
new CFormField(
(new CMultiSelect([
'name' => 'filter_serviceid',
diff --git a/ui/assets/styles/blue-theme.css b/ui/assets/styles/blue-theme.css
index c586efe5a21..219753bdf71 100644
--- a/ui/assets/styles/blue-theme.css
+++ b/ui/assets/styles/blue-theme.css
@@ -2514,7 +2514,7 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
text-overflow: ellipsis;
white-space: nowrap;
line-height: 14px;
- color: #ffffff;
+ color: #0275b8;
border-bottom: 1px solid #ebeef0;
background: #768d99; }
.toc .toc-arrow {
@@ -5614,19 +5614,23 @@ span.is-loading {
.dashboard-grid-widget-content, div.dashboard-grid-widget-item, .msg-details ul, z-select button.focusable,
.z-select button.focusable, z-select .list,
-.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table {
+.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table, .import-compare .toc,
+.import-compare .diff {
scrollbar-width: thin; }
.dashboard-grid-widget-content::-webkit-scrollbar, div.dashboard-grid-widget-item::-webkit-scrollbar, .msg-details ul::-webkit-scrollbar, z-select button.focusable::-webkit-scrollbar,
.z-select button.focusable::-webkit-scrollbar, z-select .list::-webkit-scrollbar,
- .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar {
+ .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar, .import-compare .toc::-webkit-scrollbar,
+ .import-compare .diff::-webkit-scrollbar {
width: 9px; }
.dashboard-grid-widget-content::-webkit-scrollbar-track, div.dashboard-grid-widget-item::-webkit-scrollbar-track, .msg-details ul::-webkit-scrollbar-track, z-select button.focusable::-webkit-scrollbar-track,
.z-select button.focusable::-webkit-scrollbar-track, z-select .list::-webkit-scrollbar-track,
- .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track {
+ .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track, .import-compare .toc::-webkit-scrollbar-track,
+ .import-compare .diff::-webkit-scrollbar-track {
background-color: rgba(172, 187, 194, 0.55); }
.dashboard-grid-widget-content::-webkit-scrollbar-thumb, div.dashboard-grid-widget-item::-webkit-scrollbar-thumb, .msg-details ul::-webkit-scrollbar-thumb, z-select button.focusable::-webkit-scrollbar-thumb,
.z-select button.focusable::-webkit-scrollbar-thumb, z-select .list::-webkit-scrollbar-thumb,
- .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb {
+ .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb, .import-compare .toc::-webkit-scrollbar-thumb,
+ .import-compare .diff::-webkit-scrollbar-thumb {
background-color: rgba(135, 135, 135, 0.85);
border: 1px solid rgba(122, 122, 122, 0.85); }
@@ -6907,7 +6911,7 @@ z-select.z-select-host-interface li[disabled] .description:not(:empty),
.import-compare {
display: flex;
- max-height: calc(100vh - 190px); }
+ max-height: calc(100vh - 220px); }
.import-compare .toc {
flex: 20%;
overflow-y: auto;
diff --git a/ui/assets/styles/dark-theme.css b/ui/assets/styles/dark-theme.css
index 7b0534eff7c..8ea81b93bdd 100644
--- a/ui/assets/styles/dark-theme.css
+++ b/ui/assets/styles/dark-theme.css
@@ -2527,7 +2527,7 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
text-overflow: ellipsis;
white-space: nowrap;
line-height: 14px;
- color: #f2f2f2;
+ color: #4796c4;
border-bottom: 1px solid #383838;
background: #4f4f4f; }
.toc .toc-arrow {
@@ -5625,19 +5625,23 @@ span.is-loading {
.dashboard-grid-widget-content, div.dashboard-grid-widget-item, .msg-details ul, z-select button.focusable,
.z-select button.focusable, z-select .list,
-.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table {
+.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table, .import-compare .toc,
+.import-compare .diff {
scrollbar-width: thin; }
.dashboard-grid-widget-content::-webkit-scrollbar, div.dashboard-grid-widget-item::-webkit-scrollbar, .msg-details ul::-webkit-scrollbar, z-select button.focusable::-webkit-scrollbar,
.z-select button.focusable::-webkit-scrollbar, z-select .list::-webkit-scrollbar,
- .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar {
+ .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar, .import-compare .toc::-webkit-scrollbar,
+ .import-compare .diff::-webkit-scrollbar {
width: 9px; }
.dashboard-grid-widget-content::-webkit-scrollbar-track, div.dashboard-grid-widget-item::-webkit-scrollbar-track, .msg-details ul::-webkit-scrollbar-track, z-select button.focusable::-webkit-scrollbar-track,
.z-select button.focusable::-webkit-scrollbar-track, z-select .list::-webkit-scrollbar-track,
- .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track {
+ .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track, .import-compare .toc::-webkit-scrollbar-track,
+ .import-compare .diff::-webkit-scrollbar-track {
background-color: #1f1f1f; }
.dashboard-grid-widget-content::-webkit-scrollbar-thumb, div.dashboard-grid-widget-item::-webkit-scrollbar-thumb, .msg-details ul::-webkit-scrollbar-thumb, z-select button.focusable::-webkit-scrollbar-thumb,
.z-select button.focusable::-webkit-scrollbar-thumb, z-select .list::-webkit-scrollbar-thumb,
- .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb {
+ .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb, .import-compare .toc::-webkit-scrollbar-thumb,
+ .import-compare .diff::-webkit-scrollbar-thumb {
background-color: #383838;
border: 1px solid #2b2b2b; }
@@ -6918,7 +6922,7 @@ z-select.z-select-host-interface li[disabled] .description:not(:empty),
.import-compare {
display: flex;
- max-height: calc(100vh - 190px); }
+ max-height: calc(100vh - 220px); }
.import-compare .toc {
flex: 20%;
overflow-y: auto;
diff --git a/ui/assets/styles/hc-dark.css b/ui/assets/styles/hc-dark.css
index af32c1d2bf9..152425834a5 100644
--- a/ui/assets/styles/hc-dark.css
+++ b/ui/assets/styles/hc-dark.css
@@ -2503,7 +2503,7 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
text-overflow: ellipsis;
white-space: nowrap;
line-height: 14px;
- color: #000000;
+ color: #f8f8f8;
border-bottom: 1px solid #333333;
background: #dddddd; }
.toc .toc-arrow {
@@ -5571,19 +5571,23 @@ span.is-loading {
.dashboard-grid-widget-content, div.dashboard-grid-widget-item, .msg-details ul, z-select button.focusable,
.z-select button.focusable, z-select .list,
-.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table {
+.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table, .import-compare .toc,
+.import-compare .diff {
scrollbar-width: thin; }
.dashboard-grid-widget-content::-webkit-scrollbar, div.dashboard-grid-widget-item::-webkit-scrollbar, .msg-details ul::-webkit-scrollbar, z-select button.focusable::-webkit-scrollbar,
.z-select button.focusable::-webkit-scrollbar, z-select .list::-webkit-scrollbar,
- .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar {
+ .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar, .import-compare .toc::-webkit-scrollbar,
+ .import-compare .diff::-webkit-scrollbar {
width: 9px; }
.dashboard-grid-widget-content::-webkit-scrollbar-track, div.dashboard-grid-widget-item::-webkit-scrollbar-track, .msg-details ul::-webkit-scrollbar-track, z-select button.focusable::-webkit-scrollbar-track,
.z-select button.focusable::-webkit-scrollbar-track, z-select .list::-webkit-scrollbar-track,
- .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track {
+ .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track, .import-compare .toc::-webkit-scrollbar-track,
+ .import-compare .diff::-webkit-scrollbar-track {
background-color: #1f1f1f; }
.dashboard-grid-widget-content::-webkit-scrollbar-thumb, div.dashboard-grid-widget-item::-webkit-scrollbar-thumb, .msg-details ul::-webkit-scrollbar-thumb, z-select button.focusable::-webkit-scrollbar-thumb,
.z-select button.focusable::-webkit-scrollbar-thumb, z-select .list::-webkit-scrollbar-thumb,
- .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb {
+ .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb, .import-compare .toc::-webkit-scrollbar-thumb,
+ .import-compare .diff::-webkit-scrollbar-thumb {
background-color: #999999;
border: 1px solid #4d4d4d; }
@@ -6864,7 +6868,7 @@ z-select.z-select-host-interface li[disabled] .description:not(:empty),
.import-compare {
display: flex;
- max-height: calc(100vh - 190px); }
+ max-height: calc(100vh - 220px); }
.import-compare .toc {
flex: 20%;
overflow-y: auto;
diff --git a/ui/assets/styles/hc-light.css b/ui/assets/styles/hc-light.css
index bbadfa23e01..7222a2654c9 100644
--- a/ui/assets/styles/hc-light.css
+++ b/ui/assets/styles/hc-light.css
@@ -2503,7 +2503,7 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
text-overflow: ellipsis;
white-space: nowrap;
line-height: 14px;
- color: #ffffff;
+ color: #555555;
border-bottom: 1px solid #888888;
background: #333333; }
.toc .toc-arrow {
@@ -5571,19 +5571,23 @@ span.is-loading {
.dashboard-grid-widget-content, div.dashboard-grid-widget-item, .msg-details ul, z-select button.focusable,
.z-select button.focusable, z-select .list,
-.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table {
+.z-select .list, .multiselect-available, textarea, select, .setup-right-body, .overlay-dialogue.modal .overlay-dialogue-body, .overlay-dialogue .hintbox-wrap, .overlay-dialogue .maps-container, .notif-body, .debug-output, .overlay-descr, .overflow-table, .import-compare .toc,
+.import-compare .diff {
scrollbar-width: thin; }
.dashboard-grid-widget-content::-webkit-scrollbar, div.dashboard-grid-widget-item::-webkit-scrollbar, .msg-details ul::-webkit-scrollbar, z-select button.focusable::-webkit-scrollbar,
.z-select button.focusable::-webkit-scrollbar, z-select .list::-webkit-scrollbar,
- .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar {
+ .z-select .list::-webkit-scrollbar, .multiselect-available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .overflow-table::-webkit-scrollbar, .import-compare .toc::-webkit-scrollbar,
+ .import-compare .diff::-webkit-scrollbar {
width: 9px; }
.dashboard-grid-widget-content::-webkit-scrollbar-track, div.dashboard-grid-widget-item::-webkit-scrollbar-track, .msg-details ul::-webkit-scrollbar-track, z-select button.focusable::-webkit-scrollbar-track,
.z-select button.focusable::-webkit-scrollbar-track, z-select .list::-webkit-scrollbar-track,
- .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track {
+ .z-select .list::-webkit-scrollbar-track, .multiselect-available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-track, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .overflow-table::-webkit-scrollbar-track, .import-compare .toc::-webkit-scrollbar-track,
+ .import-compare .diff::-webkit-scrollbar-track {
background-color: #999999; }
.dashboard-grid-widget-content::-webkit-scrollbar-thumb, div.dashboard-grid-widget-item::-webkit-scrollbar-thumb, .msg-details ul::-webkit-scrollbar-thumb, z-select button.focusable::-webkit-scrollbar-thumb,
.z-select button.focusable::-webkit-scrollbar-thumb, z-select .list::-webkit-scrollbar-thumb,
- .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb {
+ .z-select .list::-webkit-scrollbar-thumb, .multiselect-available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue.modal .overlay-dialogue-body::-webkit-scrollbar-thumb, .overlay-dialogue .hintbox-wrap::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .overflow-table::-webkit-scrollbar-thumb, .import-compare .toc::-webkit-scrollbar-thumb,
+ .import-compare .diff::-webkit-scrollbar-thumb {
background-color: #f9f9f9;
border: 1px solid #adadad; }
@@ -6864,7 +6868,7 @@ z-select.z-select-host-interface li[disabled] .description:not(:empty),
.import-compare {
display: flex;
- max-height: calc(100vh - 190px); }
+ max-height: calc(100vh - 220px); }
.import-compare .toc {
flex: 20%;
overflow-y: auto;
diff --git a/ui/chart4.php b/ui/chart4.php
index f20c2367167..3c4126d029f 100644
--- a/ui/chart4.php
+++ b/ui/chart4.php
@@ -138,9 +138,9 @@ $maxX = 900;
$minX = 0;
for ($i = 1; $i <= $weeks; $i++) {
- $x1 = (900 / 52) * $sizeX * ($i - 1 - $minX) / ($maxX - $minX);
+ $x1 = (int) ((900 / 52) * $sizeX * ($i - 1 - $minX) / ($maxX - $minX));
- $yt = $sizeY * $true[$i - 1] / 100;
+ $yt = (int) ($sizeY * $true[$i - 1] / 100);
if ($yt > 0) {
imagefilledrectangle($im, $x1 + $shiftX, $shiftYup, $x1 + $shiftX + 8, $yt + $shiftYup, imagecolorallocate($im, 235, 120, 120)); // red
}
diff --git a/ui/hostinventoriesoverview.php b/ui/hostinventoriesoverview.php
index 661d35c27c5..7ebfa6aef3a 100644
--- a/ui/hostinventoriesoverview.php
+++ b/ui/hostinventoriesoverview.php
@@ -69,10 +69,6 @@ $filter = [
$ms_groups = [];
$filter_groupids = $filter['groups'] ? getSubGroups($filter['groups'], $ms_groups) : null;
-if (count($ms_groups) != count($filter['groups'])) {
- show_error_message(_('No permissions to referred object or it does not exist!'));
-}
-
$inventories = [];
foreach (getHostInventories() as $inventory) {
$inventories[$inventory['db_field']] = $inventory['title'];
diff --git a/ui/include/classes/core/CConfigFile.php b/ui/include/classes/core/CConfigFile.php
index b29a3813d7a..2997ac348b2 100644
--- a/ui/include/classes/core/CConfigFile.php
+++ b/ui/include/classes/core/CConfigFile.php
@@ -154,11 +154,11 @@ class CConfigFile {
$this->config['DB']['VAULT_TOKEN'] = $DB['VAULT_TOKEN'];
}
- if (isset($ZBX_SERVER)) {
+ if (isset($ZBX_SERVER) && $ZBX_SERVER !== '') {
$this->config['ZBX_SERVER'] = $ZBX_SERVER;
}
- if (isset($ZBX_SERVER_PORT)) {
+ if (isset($ZBX_SERVER_PORT) && $ZBX_SERVER_PORT !== '') {
$this->config['ZBX_SERVER_PORT'] = $ZBX_SERVER_PORT;
}
diff --git a/ui/include/classes/core/ZBase.php b/ui/include/classes/core/ZBase.php
index 57aecf30828..6c3afe84c07 100644
--- a/ui/include/classes/core/ZBase.php
+++ b/ui/include/classes/core/ZBase.php
@@ -490,7 +490,11 @@ class ZBase {
$action_class = $router->getController();
try {
- if (!class_exists($action_class, true)) {
+ if ($action_class === null) {
+ throw new Exception(_('Class not found.'));
+ }
+
+ if (!class_exists($action_class)) {
throw new Exception(_s('Class %1$s not found for action %2$s.', $action_class, $action_name));
}
diff --git a/ui/include/classes/data/CItemData.php b/ui/include/classes/data/CItemData.php
index 67e1321249a..398c9948873 100644
--- a/ui/include/classes/data/CItemData.php
+++ b/ui/include/classes/data/CItemData.php
@@ -1665,7 +1665,7 @@ final class CItemData {
'value_type' => ITEM_VALUE_TYPE_UINT64
],
'zabbix[queue,<from>,<to>]' => [
- 'description' => _('Number of items in the queue which are delayed by from to to seconds, inclusive.'),
+ 'description' => _('Number of items in the queue which are delayed by from to seconds, inclusive.'),
'value_type' => ITEM_VALUE_TYPE_UINT64
],
'zabbix[rcache,<cache>,<mode>]' => [
diff --git a/ui/include/classes/db/OracleDbBackend.php b/ui/include/classes/db/OracleDbBackend.php
index 291e85d6737..bffdba41387 100644
--- a/ui/include/classes/db/OracleDbBackend.php
+++ b/ui/include/classes/db/OracleDbBackend.php
@@ -30,7 +30,7 @@ class OracleDbBackend extends DbBackend {
* @return boolean
*/
protected function checkDbVersionTable() {
- $table_exists = DBfetch(DBselect("SELECT table_name FROM user_tables WHERE table_name='DBVERSION'"));
+ $table_exists = DBfetch(DBselect("SELECT table_name FROM all_tables WHERE table_name='DBVERSION'"));
if (!$table_exists) {
$this->setError(_s('Unable to determine current Zabbix database version: %1$s.',
diff --git a/ui/include/classes/graphdraw/CGraphDraw.php b/ui/include/classes/graphdraw/CGraphDraw.php
index ef42dff9f57..52107270fdd 100644
--- a/ui/include/classes/graphdraw/CGraphDraw.php
+++ b/ui/include/classes/graphdraw/CGraphDraw.php
@@ -124,13 +124,9 @@ abstract class CGraphDraw {
// i should rename no alpha to alpha at some point to get rid of some confusion
foreach ($this->colorsrgb as $name => $RGBA) {
- if (isset($RGBA[3]) && function_exists('imagecolorexactalpha')
- && function_exists('imagecreatetruecolor') && @imagecreatetruecolor(1, 1)) {
- $this->colors[$name] = imagecolorexactalpha($this->im, $RGBA[0], $RGBA[1], $RGBA[2], $RGBA[3]);
- }
- else {
- $this->colors[$name] = imagecolorallocate($this->im, $RGBA[0], $RGBA[1], $RGBA[2]);
- }
+ $this->colors[$name] = array_key_exists(3, $RGBA)
+ ? imagecolorexactalpha($this->im, $RGBA[0], $RGBA[1], $RGBA[2], $RGBA[3])
+ : imagecolorallocate($this->im, $RGBA[0], $RGBA[1], $RGBA[2]);
}
}
@@ -259,7 +255,7 @@ abstract class CGraphDraw {
return get_color($this->im, $color, $alfa);
}
- public function getShadow($color, $alfa = 0) {
+ public function getShadow($color, $alpha = 0) {
if (isset($this->colorsrgb[$color])) {
$red = $this->colorsrgb[$color][0];
$green = $this->colorsrgb[$color][1];
@@ -270,16 +266,15 @@ abstract class CGraphDraw {
}
if ($this->sum > 0) {
- $red = (int)($red * 0.6);
- $green = (int)($green * 0.6);
- $blue = (int)($blue * 0.6);
+ $red = (int) ($red * 0.6);
+ $green = (int) ($green * 0.6);
+ $blue = (int) ($blue * 0.6);
}
$RGB = [$red, $green, $blue];
- if (isset($alfa) && function_exists('imagecolorexactalpha') && function_exists('imagecreatetruecolor')
- && @imagecreatetruecolor(1, 1)) {
- return imagecolorexactalpha($this->im, $RGB[0], $RGB[1], $RGB[2], $alfa);
+ if ($alpha != 0) {
+ return imagecolorexactalpha($this->im, $RGB[0], $RGB[1], $RGB[2], $alpha);
}
return imagecolorallocate($this->im, $RGB[0], $RGB[1], $RGB[2]);
diff --git a/ui/include/classes/graphdraw/CLineGraphDraw.php b/ui/include/classes/graphdraw/CLineGraphDraw.php
index 4b9df8f15b5..a4988b1e782 100644
--- a/ui/include/classes/graphdraw/CLineGraphDraw.php
+++ b/ui/include/classes/graphdraw/CLineGraphDraw.php
@@ -722,16 +722,17 @@ class CLineGraphDraw extends CGraphDraw {
$gbColor
);
- imagefilledpolygon(
- $this->im,
- [
- $this->shiftXleft + $this->shiftXCaption - 3, $this->shiftY - 5,
- $this->shiftXleft + $this->shiftXCaption + 3, $this->shiftY - 5,
- $this->shiftXleft + $this->shiftXCaption, $this->shiftY - 10
- ],
- 3,
- $this->getColor('White')
- );
+ $points = [
+ $this->shiftXleft + $this->shiftXCaption - 3, $this->shiftY - 5,
+ $this->shiftXleft + $this->shiftXCaption + 3, $this->shiftY - 5,
+ $this->shiftXleft + $this->shiftXCaption, $this->shiftY - 10
+ ];
+ if (PHP_VERSION_ID >= 80100) {
+ imagefilledpolygon($this->im, $points, $this->getColor('White'));
+ }
+ else {
+ imagefilledpolygon($this->im, $points, 3, $this->getColor('White'));
+ }
/* draw left axis triangle */
zbx_imageline($this->im, $this->shiftXleft + $this->shiftXCaption - 3, $this->shiftY - 5,
@@ -765,16 +766,17 @@ class CLineGraphDraw extends CGraphDraw {
$gbColor
);
- imagefilledpolygon(
- $this->im,
- [
- $this->sizeX + $this->shiftXleft + $this->shiftXCaption - 3, $this->shiftY - 5,
- $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 3, $this->shiftY - 5,
- $this->sizeX + $this->shiftXleft + $this->shiftXCaption, $this->shiftY - 10
- ],
- 3,
- $this->getColor('White')
- );
+ $points = [
+ $this->sizeX + $this->shiftXleft + $this->shiftXCaption - 3, $this->shiftY - 5,
+ $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 3, $this->shiftY - 5,
+ $this->sizeX + $this->shiftXleft + $this->shiftXCaption, $this->shiftY - 10
+ ];
+ if (PHP_VERSION_ID >= 80100) {
+ imagefilledpolygon($this->im, $points, $this->getColor('White'));
+ }
+ else {
+ imagefilledpolygon($this->im, $points, 3, $this->getColor('White'));
+ }
/* draw right axis triangle */
zbx_imageline($this->im, $this->sizeX + $this->shiftXleft + $this->shiftXCaption - 3, $this->shiftY - 5,
@@ -807,16 +809,17 @@ class CLineGraphDraw extends CGraphDraw {
$gbColor
);
- imagefilledpolygon(
- $this->im,
- [
- $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 5, $this->sizeY + $this->shiftY - 2,
- $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 5, $this->sizeY + $this->shiftY + 4,
- $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 10, $this->sizeY + $this->shiftY + 1
- ],
- 3,
- $this->getColor('White')
- );
+ $points = [
+ $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 5, $this->sizeY + $this->shiftY - 2,
+ $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 5, $this->sizeY + $this->shiftY + 4,
+ $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 10, $this->sizeY + $this->shiftY + 1
+ ];
+ if (PHP_VERSION_ID >= 80100) {
+ imagefilledpolygon($this->im, $points, $this->getColor('White'));
+ }
+ else {
+ imagefilledpolygon($this->im, $points, 3, $this->getColor('White'));
+ }
/* draw X axis triangle */
zbx_imageline($this->im, $this->sizeX + $this->shiftXleft + $this->shiftXCaption + 5, $this->sizeY + $this->shiftY - 2,
@@ -1392,13 +1395,7 @@ class CLineGraphDraw extends CGraphDraw {
}
// draw color square
- if (function_exists('imagecolorexactalpha') && function_exists('imagecreatetruecolor') && @imagecreatetruecolor(1, 1)) {
- $colorSquare = imagecreatetruecolor(11, 11);
- }
- else {
- $colorSquare = imagecreate(11, 11);
- }
-
+ $colorSquare = imagecreatetruecolor(11, 11);
imagefill($colorSquare, 0, 0, $this->getColor($this->graphtheme['backgroundcolor'], 0));
imagefilledrectangle($colorSquare, 0, 0, 10, 10, $color);
imagerectangle($colorSquare, 0, 0, 10, 10, $this->getColor('Black'));
@@ -1512,27 +1509,30 @@ class CLineGraphDraw extends CGraphDraw {
? $this->graphtheme['leftpercentilecolor']
: $this->graphtheme['rightpercentilecolor'];
- imagefilledpolygon(
- $this->im,
- [
- $leftXShift + 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
- $leftXShift - 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
- $leftXShift, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y - 10
- ],
- 3,
- $this->getColor($color)
- );
+ $points = [
+ $leftXShift + 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
+ $leftXShift - 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
+ $leftXShift, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y - 10
+ ];
+ if (PHP_VERSION_ID >= 80100) {
+ imagefilledpolygon($this->im, $points, $this->getColor($color));
+ }
+ else {
+ imagefilledpolygon($this->im, $points, 3, $this->getColor($color));
+ }
+
+ $points = [
+ $leftXShift + 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
+ $leftXShift - 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
+ $leftXShift, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y - 10
+ ];
+ if (PHP_VERSION_ID >= 80100) {
+ imagepolygon($this->im, $points, $this->getColor('Black No Alpha'));
+ }
+ else {
+ imagepolygon($this->im, $points, 3, $this->getColor('Black No Alpha'));
+ }
- imagepolygon(
- $this->im,
- [
- $leftXShift + 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
- $leftXShift - 5, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y,
- $leftXShift, $this->sizeY + $this->shiftY + 14 * $rowNum + self::LEGEND_OFFSET_Y - 10
- ],
- 3,
- $this->getColor('Black No Alpha')
- );
$rowNum++;
}
}
@@ -1647,14 +1647,14 @@ class CLineGraphDraw extends CGraphDraw {
$x1 = $from + $this->shiftXleft - 1;
$x2 = $to + $this->shiftXleft;
- $y1min = $zero - ($min_from - $oxy) / $unit2px;
- $y2min = $zero - ($min_to - $oxy) / $unit2px;
+ $y1min = (int) round($zero - ($min_from - $oxy) / $unit2px);
+ $y2min = (int) round($zero - ($min_to - $oxy) / $unit2px);
- $y1max = $zero - ($max_from - $oxy) / $unit2px;
- $y2max = $zero - ($max_to - $oxy) / $unit2px;
+ $y1max = (int) round($zero - ($max_from - $oxy) / $unit2px);
+ $y2max = (int) round($zero - ($max_to - $oxy) / $unit2px);
- $y1avg = $zero - ($avg_from - $oxy) / $unit2px;
- $y2avg = $zero - ($avg_to - $oxy) / $unit2px;
+ $y1avg = (int) round($zero - ($avg_from - $oxy) / $unit2px);
+ $y2avg = (int) round($zero - ($avg_to - $oxy) / $unit2px);
switch ($calc_fnc) {
case CALC_FNC_MAX:
@@ -1734,7 +1734,13 @@ class CLineGraphDraw extends CGraphDraw {
$style = $drawtype == GRAPH_ITEM_DRAWTYPE_BOLD_LINE ? LINE_TYPE_BOLD : LINE_TYPE_NORMAL;
if ($calc_fnc == CALC_FNC_ALL) {
- imagefilledpolygon($this->im, $a, 4, $minmax_color);
+ if (PHP_VERSION_ID >= 80100) {
+ imagefilledpolygon($this->im, $a, $avg_color);
+ }
+ else {
+ imagefilledpolygon($this->im, $a, 4, $minmax_color);
+ }
+
if (!$y1x || !$y2x) {
zbx_imagealine($this->im, $x1, $y1max, $x2, $y2max, $max_color, $style);
}
@@ -1755,15 +1761,8 @@ class CLineGraphDraw extends CGraphDraw {
break;
case GRAPH_ITEM_DRAWTYPE_DASHED_LINE:
- if (function_exists('imagesetstyle')) {
- // use imagesetstyle+imageline instead of bugged imagedashedline
- $style = [$avg_color, $avg_color, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT];
- imagesetstyle($this->im, $style);
- zbx_imageline($this->im, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
- }
- else {
- imagedashedline($this->im, $x1, $y1, $x2, $y2, $avg_color);
- }
+ imagesetstyle($this->im, [$avg_color, $avg_color, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT]);
+ zbx_imageline($this->im, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
break;
case GRAPH_ITEM_DRAWTYPE_GRADIENT_LINE:
@@ -1784,7 +1783,12 @@ class CLineGraphDraw extends CGraphDraw {
$a[6] = $x2;
$a[7] = $y2;
- imagefilledpolygon($this->im, $a, 4, $avg_color);
+ if (PHP_VERSION_ID >= 80100) {
+ imagefilledpolygon($this->im, $a, $avg_color);
+ }
+ else {
+ imagefilledpolygon($this->im, $a, 4, $avg_color);
+ }
}
else {
imageLine($this->im, $x1, $y1, $x2, $y2, $avg_color); // draw the initial line
@@ -1817,15 +1821,12 @@ class CLineGraphDraw extends CGraphDraw {
$steps = $this->sizeY + $this->shiftY - $gy + 1;
for ($j = 0; $j < $steps; $j++) {
- if (($gy + $j) < ($this->shiftY + $startAlpha)) {
- $alpha = 0;
- }
- else {
- $alpha = 127 - abs(127 - ($alphaRatio * ($gy + $j - $this->shiftY - $startAlpha)));
- }
+ $alpha = ($gy + $j) < ($this->shiftY + $startAlpha)
+ ? 0
+ : 127 - (int) abs(127 - ($alphaRatio * ($gy + $j - $this->shiftY - $startAlpha)));
$color = imagecolorexactalpha($this->im, $red, $green, $blue, $alpha);
- imagesetpixel($this->im, $x2 + $i, $gy + $j, $color);
+ imagesetpixel($this->im, $x2 + $i, (int) $gy + $j, $color);
}
}
}
@@ -2040,14 +2041,7 @@ class CLineGraphDraw extends CGraphDraw {
$this->selectTriggers();
$this->calcDimensions();
- if (function_exists('imagecolorexactalpha') && function_exists('imagecreatetruecolor')
- && @imagecreatetruecolor(1, 1)
- ) {
- $this->im = imagecreatetruecolor(1, 1);
- }
- else {
- $this->im = imagecreate(1, 1);
- }
+ $this->im = imagecreatetruecolor(1, 1);
$this->initColors();
@@ -2077,13 +2071,7 @@ class CLineGraphDraw extends CGraphDraw {
$this->calcPercentile();
$this->calcZero();
- if (function_exists('imagecolorexactalpha') && function_exists('imagecreatetruecolor')
- && @imagecreatetruecolor(1, 1)) {
- $this->im = imagecreatetruecolor($this->fullSizeX, $this->fullSizeY);
- }
- else {
- $this->im = imagecreate($this->fullSizeX, $this->fullSizeY);
- }
+ $this->im = imagecreatetruecolor($this->fullSizeX, $this->fullSizeY);
$this->initColors();
$this->drawRectangle();
diff --git a/ui/include/classes/graphdraw/CPieGraphDraw.php b/ui/include/classes/graphdraw/CPieGraphDraw.php
index ab7557d9bf1..c69ad86fc4c 100644
--- a/ui/include/classes/graphdraw/CPieGraphDraw.php
+++ b/ui/include/classes/graphdraw/CPieGraphDraw.php
@@ -86,22 +86,24 @@ class CPieGraphDraw extends CGraphDraw {
$count *= $this->exploderad;
$anglemid = (int) (($anglestart + $angleend) / 2);
- $y+= round($count * sin(deg2rad($anglemid)));
- $x+= round($count * cos(deg2rad($anglemid)));
+ $y += round($count * sin(deg2rad($anglemid)));
+ $x += round($count * cos(deg2rad($anglemid)));
- return [$x, $y];
+ return [(int) $x, (int) $y];
}
protected function calcExplodedRadius($sizeX, $sizeY, $count) {
$count *= $this->exploderad * 2;
$sizeX -= $count;
$sizeY -= $count;
- return [$sizeX, $sizeY];
+
+ return [(int) $sizeX, (int) $sizeY];
}
protected function calc3DAngle($sizeX, $sizeY) {
$sizeY *= GRAPH_3D_ANGLE / 90;
- return [$sizeX, round($sizeY)];
+
+ return [$sizeX, (int) round($sizeY)];
}
protected function selectData() {
@@ -432,8 +434,8 @@ class CPieGraphDraw extends CGraphDraw {
list($sizeX, $sizeY) = $this->calcExplodedRadius($sizeX, $sizeY, count($values));
}
- $xc = $x = (int) $this->sizeX / 2 + $this->shiftXleft;
- $yc = $y = (int) $this->sizeY / 2 + $this->shiftY;
+ $xc = $x = (int) ($this->sizeX / 2) + $this->shiftXleft;
+ $yc = $y = (int) ($this->sizeY / 2) + $this->shiftY;
$anglestart = 0;
$angleend = 0;
@@ -513,8 +515,8 @@ class CPieGraphDraw extends CGraphDraw {
list($sizeX, $sizeY) = $this->calc3DAngle($sizeX, $sizeY);
- $xc = $x = (int) $this->sizeX / 2 + $this->shiftXleft;
- $yc = $y = (int) $this->sizeY / 2 + $this->shiftY;
+ $xc = $x = (int) ($this->sizeX / 2) + $this->shiftXleft;
+ $yc = $y = (int) ($this->sizeY / 2) + $this->shiftY;
// bottom angle line
$anglestart = 0;
@@ -701,12 +703,8 @@ class CPieGraphDraw extends CGraphDraw {
$this->exploderad = (int) $this->sizeX / 100;
$this->exploderad3d = (int) $this->sizeX / 60;
- if (function_exists('ImageColorExactAlpha') && function_exists('ImageCreateTrueColor') && @imagecreatetruecolor(1, 1)) {
- $this->im = imagecreatetruecolor($this->fullSizeX, $this->fullSizeY);
- }
- else {
- $this->im = imagecreate($this->fullSizeX, $this->fullSizeY);
- }
+ $this->im = imagecreatetruecolor($this->fullSizeX, $this->fullSizeY);
+
$this->initColors();
$this->drawRectangle();
$this->drawHeader();
diff --git a/ui/include/classes/helpers/CArrayHelper.php b/ui/include/classes/helpers/CArrayHelper.php
index 0815349e6ae..6d0c440eb1f 100644
--- a/ui/include/classes/helpers/CArrayHelper.php
+++ b/ui/include/classes/helpers/CArrayHelper.php
@@ -208,6 +208,16 @@ class CArrayHelper {
}
/**
+ * Sort array by keys in ascending order.
+ * Performs case-insensitive string comparisons using a "natural order" algorithm.
+ *
+ * @param array $array
+ */
+ public static function ksort(array &$array): void {
+ uksort($array, 'strnatcasecmp');
+ }
+
+ /**
* Unset values that are contained in $a2 from $a1. Skip arrays and keys given in $skipKeys.
*
* @param array $a1 array to modify
diff --git a/ui/include/classes/ldap/CLdap.php b/ui/include/classes/ldap/CLdap.php
index 5161ada9b9f..17e87f2ffb4 100644
--- a/ui/include/classes/ldap/CLdap.php
+++ b/ui/include/classes/ldap/CLdap.php
@@ -225,7 +225,7 @@ class CLdap {
$filter = '(ObjectClass=*)';
}
$sr = @ldap_search($this->ds, $base, $filter);
- $result = is_resource($sr) ? @ldap_get_entries($this->ds, $sr) : [];
+ $result = $sr !== false ? @ldap_get_entries($this->ds, $sr) : [];
// don't accept more or less than one response
if (!$result || $result['count'] != 1) {
diff --git a/ui/include/classes/macros/CMacrosResolverGeneral.php b/ui/include/classes/macros/CMacrosResolverGeneral.php
index 9bdaf283122..c47be267524 100644
--- a/ui/include/classes/macros/CMacrosResolverGeneral.php
+++ b/ui/include/classes/macros/CMacrosResolverGeneral.php
@@ -310,14 +310,14 @@ class CMacrosResolverGeneral {
* @param bool $types['functionids'] Extract numeric macros. For example, "{12345}".
* @param bool $types['expr_macros'] Extract expression macros.
* For example, "{?func(/host/key, param)}".
- * @param bool $types['expr_macros_host'] Extract expression macros with with the ability to
+ * @param bool $types['expr_macros_host'] Extract expression macros with the ability to
* specify a {HOST.HOST} macro or an empty host name
* instead of a hostname.
* For example,
* "{?func(/host/key, param)}",
* "{?func(/{HOST.HOST}/key, param)}",
* "{?func(//key, param)}".
- * @param bool $types['expr_macros_host_n'] Extract expression macros with with the ability to
+ * @param bool $types['expr_macros_host_n'] Extract expression macros with the ability to
* specify a {HOST.HOST<1-9>} macro or an empty host
* name instead of a hostname.
* For example,
diff --git a/ui/include/classes/server/CZabbixServer.php b/ui/include/classes/server/CZabbixServer.php
index c045a204c4c..be6a3685c80 100644
--- a/ui/include/classes/server/CZabbixServer.php
+++ b/ui/include/classes/server/CZabbixServer.php
@@ -58,7 +58,7 @@ class CZabbixServer {
const ZBX_TCP_EXPECT_DATA = 2;
/**
- * Max number of bytes to read from the response for each each iteration.
+ * Max number of bytes to read from the response for each iteration.
*/
const READ_BYTES_LIMIT = 8192;
diff --git a/ui/include/classes/validators/CApiInputValidator.php b/ui/include/classes/validators/CApiInputValidator.php
index 17827dcce9b..ab69f47c5a3 100644
--- a/ui/include/classes/validators/CApiInputValidator.php
+++ b/ui/include/classes/validators/CApiInputValidator.php
@@ -2554,14 +2554,14 @@ class CApiInputValidator {
return true;
}
- [$year, $month, $day] = sscanf($data, '%d-%d-%d');
+ $date = DateTime::createFromFormat(ZBX_DATE, $data);
- if (!checkdate($month, $day, $year)) {
+ if (!$date || $date->format(ZBX_DATE) !== $data) {
$error = _s('Invalid parameter "%1$s": %2$s.', $path, _('a date in YYYY-MM-DD format is expected'));
return false;
}
- if (!validateDateInterval($year, $month, $day)) {
+ if (!validateDateInterval($date->format('Y'), $date->format('m'), $date->format('d'))) {
$error = _s('Invalid parameter "%1$s": %2$s.', $path,
_s('value must be between "%1$s" and "%2$s"', '1970-01-01', '2038-01-18')
);
diff --git a/ui/include/classes/widgets/CWidgetHelper.php b/ui/include/classes/widgets/CWidgetHelper.php
index cf5b10569b6..633a899d4d0 100644
--- a/ui/include/classes/widgets/CWidgetHelper.php
+++ b/ui/include/classes/widgets/CWidgetHelper.php
@@ -135,16 +135,16 @@ class CWidgetHelper {
* @return CLabel
*/
public static function getLabel($field, $class = null, $hint = null) {
+ $help_icon = ($hint !== null)
+ ? makeHelpIcon($hint)
+ : null;
+
if ($field instanceof CWidgetFieldSelect) {
- return (new CLabel($field->getLabel(), 'label-'.$field->getName()))
+ return (new CLabel([$field->getLabel(), $help_icon], 'label-'.$field->getName()))
->setAsteriskMark(self::isAriaRequired($field))
->addClass($class);
}
- $help_icon = ($hint !== null)
- ? makeHelpIcon($hint)
- : null;
-
return (new CLabel([$field->getLabel(), $help_icon], $field->getName()))
->setAsteriskMark(self::isAriaRequired($field))
->addClass($class);
@@ -598,7 +598,7 @@ class CWidgetHelper {
];
$table = (new CTable())
->setId('list_'.$field->getName())
- ->setHeader((new CRowHeader($header))->addClass($columns ? null : ZBX_STYLE_DISPLAY_NONE));
+ ->setHeader($header);
$enabled = !($field->getFlags() & CWidgetField::FLAG_DISABLED);
foreach ($columns as $column_index => $column) {
diff --git a/ui/include/classes/widgets/views/widget.item.form.view.php b/ui/include/classes/widgets/views/widget.item.form.view.php
index 7253d34b46a..2581f69dd8b 100644
--- a/ui/include/classes/widgets/views/widget.item.form.view.php
+++ b/ui/include/classes/widgets/views/widget.item.form.view.php
@@ -138,7 +138,9 @@ $form_list
->addClass('form-field')
->addClass('field-fluid'),
- CWidgetHelper::getLabel($fields['units_pos']),
+ CWidgetHelper::getLabel($fields['units_pos'], null,
+ _('Position is ignored for s, uptime and unixtime units.')
+ ),
(new CDiv(CWidgetHelper::getSelect($fields['units_pos'])))->addClass('form-field'),
CWidgetHelper::getLabel($fields['units_size']),
diff --git a/ui/include/config.inc.php b/ui/include/config.inc.php
index 22a01953af4..6b77e16cbc3 100644
--- a/ui/include/config.inc.php
+++ b/ui/include/config.inc.php
@@ -70,7 +70,7 @@ catch (Exception $e) {
CProfiler::getInstance()->start();
-global $ZBX_SERVER, $ZBX_SERVER_PORT, $page;
+global $page;
$page = [
'title' => null,
diff --git a/ui/include/defines.inc.php b/ui/include/defines.inc.php
index c46e4bc7844..ab614c47714 100644
--- a/ui/include/defines.inc.php
+++ b/ui/include/defines.inc.php
@@ -18,8 +18,8 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
-define('ZABBIX_VERSION', '6.0.5');
-define('ZABBIX_API_VERSION', '6.0.5');
+define('ZABBIX_VERSION', '6.0.6rc1');
+define('ZABBIX_API_VERSION', '6.0.6');
define('ZABBIX_EXPORT_VERSION', '6.0');
define('ZABBIX_DB_VERSION', 6000000);
diff --git a/ui/include/draw.inc.php b/ui/include/draw.inc.php
index 2fb972d71a7..2590dcfe664 100644
--- a/ui/include/draw.inc.php
+++ b/ui/include/draw.inc.php
@@ -27,14 +27,14 @@
* @param array $fgColor foreground color, array of RGB
* @param float $alpha transparency index in range of 0-1, 1 returns unchanged fgColor color
*
- * @return array new color
+ * @return int A color index.
*/
function zbx_colormix($image, $bgColor, $fgColor, $alpha) {
$r = $bgColor[0] + ($fgColor[0] - $bgColor[0]) * $alpha;
$g = $bgColor[1] + ($fgColor[1] - $bgColor[1]) * $alpha;
$b = $bgColor[2] + ($fgColor[2] - $bgColor[2]) * $alpha;
- return imagecolorresolvealpha($image, $r, $g, $b, 0);
+ return imagecolorresolvealpha($image, (int) $r, (int) $g, (int) $b, 0);
}
/**
diff --git a/ui/include/func.inc.php b/ui/include/func.inc.php
index 6fe4b4677d8..99176b386fe 100644
--- a/ui/include/func.inc.php
+++ b/ui/include/func.inc.php
@@ -1388,7 +1388,7 @@ function make_sorting_header($obj, $tabfield, $sortField, $sortOrder, $link = nu
*
* @param string $number Valid number in decimal or scientific notation.
* @param int|null $precision Max number of significant digits to take into account. Default: ZBX_FLOAT_DIG.
- * @param int|null $decimals Max number of first non-zero decimals decimals to display. Default: 0.
+ * @param int|null $decimals Max number of first non-zero decimals to display. Default: 0.
* @param bool $exact Display exactly this number of decimals instead of first non-zeros.
*
* Note: $decimals must be less than $precision.
@@ -2231,19 +2231,14 @@ function splitPath($path) {
* @param string $color a hexadecimal color identifier like "1F2C33"
* @param int $alpha
*
- * @return int|false
+ * @return int
*/
function get_color($image, $color, $alpha = 0) {
$red = hexdec('0x'.substr($color, 0, 2));
$green = hexdec('0x'.substr($color, 2, 2));
$blue = hexdec('0x'.substr($color, 4, 2));
- if (function_exists('imagecolorexactalpha') && function_exists('imagecreatetruecolor')
- && @imagecreatetruecolor(1, 1)) {
- return imagecolorexactalpha($image, $red, $green, $blue, $alpha);
- }
-
- return imagecolorallocate($image, $red, $green, $blue);
+ return imagecolorexactalpha($image, $red, $green, $blue, $alpha);
}
/**
diff --git a/ui/include/graphs.inc.php b/ui/include/graphs.inc.php
index 987f4981eec..dec27508bb7 100644
--- a/ui/include/graphs.inc.php
+++ b/ui/include/graphs.inc.php
@@ -532,12 +532,15 @@ function get_next_color($palettetype = 0) {
* @param resource $image
* @param int $fontsize
* @param int $angle
- * @param int $x
- * @param int $y
+ * @param int|float $x
+ * @param int|float $y
* @param int $color a numeric color identifier from imagecolorallocate() or imagecolorallocatealpha()
* @param string $string
*/
function imageText($image, $fontsize, $angle, $x, $y, $color, $string) {
+ $x = (int) $x;
+ $y = (int) $y;
+
if ((preg_match(ZBX_PREG_DEF_FONT_STRING, $string) && $angle != 0) || ZBX_FONT_NAME == ZBX_GRAPH_FONT_NAME) {
$ttf = ZBX_FONTPATH.'/'.ZBX_FONT_NAME.'.ttf';
imagettftext($image, $fontsize, $angle, $x, $y, $color, $ttf, $string);
diff --git a/ui/include/images.inc.php b/ui/include/images.inc.php
index 6dcb93c5306..599c92d8e5c 100644
--- a/ui/include/images.inc.php
+++ b/ui/include/images.inc.php
@@ -75,12 +75,10 @@ function imageThumb($source, $thumbWidth = 0, $thumbHeight = 0) {
}
}
- if (function_exists('imagecreatetruecolor') && @imagecreatetruecolor(1, 1)) {
- $thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
- }
- else {
- $thumb = imagecreate($thumbWidth, $thumbHeight);
- }
+ $thumbWidth = (int) round($thumbWidth);
+ $thumbHeight = (int) round($thumbHeight);
+
+ $thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
// preserve png transparency
imagealphablending($thumb, false);
@@ -91,11 +89,13 @@ function imageThumb($source, $thumbWidth = 0, $thumbHeight = 0) {
0, 0,
0, 0,
$thumbWidth, $thumbHeight,
- $srcWidth, $srcHeight);
+ $srcWidth, $srcHeight
+ );
imagedestroy($source);
$source = $thumb;
}
+
return $source;
}
diff --git a/ui/include/items.inc.php b/ui/include/items.inc.php
index 30c74c2ddee..1657080a4e4 100644
--- a/ui/include/items.inc.php
+++ b/ui/include/items.inc.php
@@ -1135,17 +1135,21 @@ function getDataOverviewCellData(array $db_items, array $data, int $show_suppres
* @return array
*/
function getDataOverviewItems(?array $groupids, ?array $hostids, ?array $tags, int $evaltype): array {
-
if ($hostids === null) {
- $limit = (int) CSettingsHelper::get(CSettingsHelper::MAX_OVERVIEW_TABLE_SIZE) + 1;
+ $limit = CSettingsHelper::get(CSettingsHelper::SEARCH_LIMIT);
$db_hosts = API::Host()->get([
- 'output' => [],
+ 'output' => ['name'],
'groupids' => $groupids,
'monitored_hosts' => true,
'with_monitored_items' => true,
- 'preservekeys' => true,
- 'limit' => $limit
+ 'sortfield' => ['name'],
+ 'limit' => $limit,
+ 'preservekeys' => true
]);
+
+ CArrayHelper::sort($db_hosts, ['name']);
+ $db_hosts = array_slice($db_hosts, 0, CSettingsHelper::get(CSettingsHelper::MAX_OVERVIEW_TABLE_SIZE) + 1, true);
+
$hostids = array_keys($db_hosts);
}
@@ -1167,7 +1171,7 @@ function getDataOverviewItems(?array $groupids, ?array $hostids, ?array $tags, i
['field' => 'itemid', 'order' => ZBX_SORT_UP]
]);
- return [$db_items, $hostids];
+ return $db_items;
}
/**
@@ -1184,7 +1188,7 @@ function getDataOverview(?array $groupids, ?array $hostids, array $filter): arra
$tags = (array_key_exists('tags', $filter) && $filter['tags']) ? $filter['tags'] : null;
$evaltype = array_key_exists('evaltype', $filter) ? $filter['evaltype'] : TAG_EVAL_TYPE_AND_OR;
- [$db_items, $hostids] = getDataOverviewItems($groupids, $hostids, $tags, $evaltype);
+ $db_items = getDataOverviewItems($groupids, $hostids, $tags, $evaltype);
$data = [];
$item_counter = [];
@@ -1237,35 +1241,51 @@ function getDataOverview(?array $groupids, ?array $hostids, array $filter): arra
]);
$data_display_limit = (int) CSettingsHelper::get(CSettingsHelper::MAX_OVERVIEW_TABLE_SIZE);
- $has_hidden_hosts = (count($db_hosts) > $data_display_limit);
+ $has_hidden_data = count($data) > $data_display_limit || count($db_hosts) > $data_display_limit;
$db_hosts = array_slice($db_hosts, 0, $data_display_limit, true);
+ $host_names = array_column($db_hosts, 'name', 'name');
- $data = array_slice($data, 0, $data_display_limit, true);
- $items_left = $data_display_limit;
$itemids = [];
- array_walk($data, function (array &$item_columns) use ($data_display_limit, &$itemids, &$items_left) {
+ $items_left = $data_display_limit;
+
+ foreach ($data as &$item_columns) {
if ($items_left != 0) {
$item_columns = array_slice($item_columns, 0, min($data_display_limit, $items_left));
$items_left -= count($item_columns);
}
else {
$item_columns = null;
- return;
+ break;
}
- array_walk($item_columns, function (array &$item_column) use ($data_display_limit, &$itemids) {
+ foreach ($item_columns as &$item_column) {
+ CArrayHelper::ksort($item_column);
$item_column = array_slice($item_column, 0, $data_display_limit, true);
- $itemids += array_column($item_column, 'itemid', 'itemid');
- });
- });
+
+ foreach ($item_column as $host_name => $item) {
+ if (array_key_exists($host_name, $host_names)) {
+ $itemids[$item['itemid']] = true;
+ }
+ else {
+ unset($item_column[$host_name]);
+ }
+ }
+ }
+ unset($item_column);
+
+ $item_columns = array_filter($item_columns);
+ }
+ unset($item_columns);
+
$data = array_filter($data);
+ $data = array_slice($data, 0, $data_display_limit, true);
- $has_hidden_items = (count($db_items) != count($itemids));
+ $has_hidden_data = $has_hidden_data || count($db_items) != count($itemids);
$db_items = array_intersect_key($db_items, $itemids);
$data = getDataOverviewCellData($db_items, $data, $filter['show_suppressed']);
- return [$data, $db_hosts, ($has_hidden_items || $has_hidden_hosts)];
+ return [$data, $db_hosts, $has_hidden_data];
}
/**
diff --git a/ui/include/views/configuration.graph.edit.php b/ui/include/views/configuration.graph.edit.php
index 744a56c41af..a241086e79a 100644
--- a/ui/include/views/configuration.graph.edit.php
+++ b/ui/include/views/configuration.graph.edit.php
@@ -178,7 +178,8 @@ if ($this->data['graphtype'] == GRAPH_TYPE_NORMAL || $this->data['graphtype'] ==
GRAPH_YAXIS_TYPE_FIXED => _('Fixed'),
GRAPH_YAXIS_TYPE_ITEM_VALUE => _('Item')
]))
- ->setDisabled($readonly);
+ ->setDisabled($readonly)
+ ->setFocusableElementId('ymin_type_label');
if ($this->data['ymin_type'] == GRAPH_YAXIS_TYPE_FIXED) {
$yaxisMinData[] = (new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN);
@@ -235,11 +236,9 @@ if ($this->data['graphtype'] == GRAPH_TYPE_NORMAL || $this->data['graphtype'] ==
$graphForm->addVar('yaxismin', $this->data['yaxismin']);
}
- $yaxismin_label = new CLabel(_('Y axis MIN value'));
+ $yaxismin_label = new CLabel(_('Y axis MIN value'), 'ymin_type_label');
if ($this->data['ymin_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE) {
- $yaxismin_label
- ->setAsteriskMark()
- ->setAttribute('for', 'ymin_name');
+ $yaxismin_label->setAsteriskMark();
}
$graphFormList->addRow($yaxismin_label, $yaxisMinData);
@@ -253,7 +252,8 @@ if ($this->data['graphtype'] == GRAPH_TYPE_NORMAL || $this->data['graphtype'] ==
GRAPH_YAXIS_TYPE_FIXED => _('Fixed'),
GRAPH_YAXIS_TYPE_ITEM_VALUE => _('Item')
]))
- ->setDisabled($readonly);
+ ->setDisabled($readonly)
+ ->setFocusableElementId('ymax_type_label');
if ($this->data['ymax_type'] == GRAPH_YAXIS_TYPE_FIXED) {
$yaxisMaxData[] = (new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN);
@@ -310,11 +310,9 @@ if ($this->data['graphtype'] == GRAPH_TYPE_NORMAL || $this->data['graphtype'] ==
$graphForm->addVar('yaxismax', $this->data['yaxismax']);
}
- $yaxismax_label = new CLabel(_('Y axis MAX value'));
+ $yaxismax_label = new CLabel(_('Y axis MAX value'), 'ymax_type_label');
if ($this->data['ymax_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE) {
- $yaxismax_label
- ->setAsteriskMark()
- ->setAttribute('for', 'ymax_name');
+ $yaxismax_label->setAsteriskMark();
}
$graphFormList->addRow($yaxismax_label, $yaxisMaxData);
diff --git a/ui/include/views/configuration.graph.list.php b/ui/include/views/configuration.graph.list.php
index 961da213066..f656e7eb2da 100644
--- a/ui/include/views/configuration.graph.list.php
+++ b/ui/include/views/configuration.graph.list.php
@@ -77,7 +77,7 @@ else {
->addFilterTab(_('Filter'), [
(new CFormList())
->addRow(
- (new CLabel(_('Host groups'), 'filter_groups__ms')),
+ (new CLabel(_('Host groups'), 'filter_groupids__ms')),
(new CMultiSelect([
'name' => 'filter_groupids[]',
'object_name' => 'hostGroup',
@@ -96,7 +96,7 @@ else {
]))->setWidth(ZBX_TEXTAREA_MEDIUM_WIDTH)
)
->addRow(
- (new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hosts__ms')),
+ (new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hostids__ms')),
(new CMultiSelect([
'name' => 'filter_hostids[]',
'object_name' => ($data['context'] === 'host') ? 'hosts' : 'templates',
diff --git a/ui/include/views/configuration.host.prototype.edit.php b/ui/include/views/configuration.host.prototype.edit.php
index 85982678374..20f241ddcd5 100644
--- a/ui/include/views/configuration.host.prototype.edit.php
+++ b/ui/include/views/configuration.host.prototype.edit.php
@@ -174,7 +174,7 @@ else {
}
$host_tab
- ->addRow(_('Templates'),
+ ->addRow(new CLabel(_('Templates'), 'add_templates__ms'),
(count($templates_field_items) > 1)
? (new CDiv($templates_field_items))->addClass('linked-templates')
: $templates_field_items
@@ -206,7 +206,7 @@ $host_tab->addRow(
// New group prototypes.
$host_tab->addRow(
- _('Group prototypes'),
+ new CLabel(_('Group prototypes'), 'group_prototypes'),
(new CDiv(
(new CTable())
->setId('tbl_group_prototypes')
diff --git a/ui/include/views/configuration.httpconf.list.php b/ui/include/views/configuration.httpconf.list.php
index 7c0031979c9..5a62c994300 100644
--- a/ui/include/views/configuration.httpconf.list.php
+++ b/ui/include/views/configuration.httpconf.list.php
@@ -28,7 +28,7 @@ $hg_ms_params = ($data['context'] === 'host') ? ['real_hosts' => 1] : ['template
$filter_column_left = (new CFormList())
->addRow(
- (new CLabel(_('Host groups'), 'filter_groups__ms')),
+ (new CLabel(_('Host groups'), 'filter_groupids__ms')),
(new CMultiSelect([
'name' => 'filter_groupids[]',
'object_name' => 'hostGroup',
@@ -47,7 +47,7 @@ $filter_column_left = (new CFormList())
]))->setWidth(ZBX_TEXTAREA_MEDIUM_WIDTH)
)
->addRow(
- (new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hosts__ms')),
+ (new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hostids__ms')),
(new CMultiSelect([
'name' => 'filter_hostids[]',
'object_name' => ($data['context'] === 'host') ? 'hosts' : 'templates',
diff --git a/ui/include/views/configuration.item.edit.php b/ui/include/views/configuration.item.edit.php
index 6c344b73330..ececb17746b 100644
--- a/ui/include/views/configuration.item.edit.php
+++ b/ui/include/views/configuration.item.edit.php
@@ -645,7 +645,7 @@ if ($data['display_interfaces']) {
}
}
-// Append SNMP common fields fields.
+// Append SNMP common fields.
$item_tab->addItem([
(new CLabel(_('SNMP OID'), 'snmp_oid'))
->setAsteriskMark()
diff --git a/ui/include/views/configuration.template.edit.php b/ui/include/views/configuration.template.edit.php
index 02e065882c4..0178db086f4 100644
--- a/ui/include/views/configuration.template.edit.php
+++ b/ui/include/views/configuration.template.edit.php
@@ -142,7 +142,7 @@ $templates_field_items[] = (new CMultiSelect([
$template_tab
->addRow(
- new CLabel(_('Templates')),
+ new CLabel(_('Templates'), 'add_templates__ms'),
(count($templates_field_items) > 1)
? (new CDiv($templates_field_items))->addClass('linked-templates')
: $templates_field_items
diff --git a/ui/include/views/configuration.triggers.list.php b/ui/include/views/configuration.triggers.list.php
index 1591d3d5016..7415cb4588a 100644
--- a/ui/include/views/configuration.triggers.list.php
+++ b/ui/include/views/configuration.triggers.list.php
@@ -29,7 +29,7 @@ require_once dirname(__FILE__).'/js/configuration.triggers.list.js.php';
$hg_ms_params = ($data['context'] === 'host') ? ['real_hosts' => 1] : ['templated_hosts' => 1];
$filter_column1 = (new CFormList())
- ->addRow((new CLabel(_('Host groups'), 'filter_groupids')),
+ ->addRow((new CLabel(_('Host groups'), 'filter_groupids__ms')),
(new CMultiSelect([
'name' => 'filter_groupids[]',
'object_name' => 'hostGroup',
@@ -46,7 +46,7 @@ $filter_column1 = (new CFormList())
]
]))->setWidth(ZBX_TEXTAREA_FILTER_STANDARD_WIDTH)
)
- ->addRow((new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hostids')),
+ ->addRow((new CLabel(($data['context'] === 'host') ? _('Hosts') : _('Templates'), 'filter_hostids__ms')),
(new CMultiSelect([
'name' => 'filter_hostids[]',
'object_name' => ($data['context'] === 'host') ? 'hosts' : 'templates',
diff --git a/ui/include/views/js/configuration.host.prototype.edit.js.php b/ui/include/views/js/configuration.host.prototype.edit.js.php
index 98e40f66b96..2bf10197ec5 100644
--- a/ui/include/views/js/configuration.host.prototype.edit.js.php
+++ b/ui/include/views/js/configuration.host.prototype.edit.js.php
@@ -253,5 +253,11 @@
}
jQuery('input[name=tls_connect]').trigger('change');
+
+ jQuery('#host')
+ .on('input keydown paste', function () {
+ $('#name').attr('placeholder', $(this).val());
+ })
+ .trigger('input');
});
</script>
diff --git a/ui/include/views/js/monitoring.sysmaps.js.php b/ui/include/views/js/monitoring.sysmaps.js.php
index f929a4cc364..00712c93eb2 100644
--- a/ui/include/views/js/monitoring.sysmaps.js.php
+++ b/ui/include/views/js/monitoring.sysmaps.js.php
@@ -127,7 +127,7 @@ function createFontSelect(string $name): CSelect {
->setId('areaSizeHeight')
], 'areaSizeRow')
->addRow(_('Placing algorithm'),
- (new CRadioButtonList(null, SYSMAP_ELEMENT_AREA_VIEWTYPE_GRID))
+ (new CRadioButtonList('viewtype', SYSMAP_ELEMENT_AREA_VIEWTYPE_GRID))
->addValue(_('Grid'), SYSMAP_ELEMENT_AREA_VIEWTYPE_GRID)
->setModern(true),
'areaPlacingRow'
diff --git a/ui/js/class.notifications.js b/ui/js/class.notifications.js
index 92057416fef..94f0ead3ba3 100644
--- a/ui/js/class.notifications.js
+++ b/ui/js/class.notifications.js
@@ -382,7 +382,7 @@ ZBX_Notifications.prototype.handlePushedActiveTabid = function(tabid) {
* When active tab is unloaded, any sibling tab is set to become active. If single session, then we drop LS (privacy).
* We cannot know if this unload will happen because of navigation, scripted reload or a tab was just closed.
* Latter is always assumed, so when navigating active tab, focus is deligated onto to any tab if possible,
- * then this tab might reclaim focus again at construction if during during that time document has focus.
+ * then this tab might reclaim focus again at construction if during that time document has focus.
* At slow connection during page navigation there will be another active tab polling for notifications (if multitab).
* Here `tab` is referred as ZBX_Notifications instance and `focus` - whether instance is `active` (not focused).
*
diff --git a/ui/locale/bg/LC_MESSAGES/frontend.po b/ui/locale/bg/LC_MESSAGES/frontend.po
index 27892d9f71a..d80f2f0a8db 100644
--- a/ui/locale/bg/LC_MESSAGES/frontend.po
+++ b/ui/locale/bg/LC_MESSAGES/frontend.po
@@ -12939,6 +12939,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/ca/LC_MESSAGES/frontend.po b/ui/locale/ca/LC_MESSAGES/frontend.po
index dda32c0f275..65ed854cba7 100644
--- a/ui/locale/ca/LC_MESSAGES/frontend.po
+++ b/ui/locale/ca/LC_MESSAGES/frontend.po
@@ -12914,6 +12914,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/cs/LC_MESSAGES/frontend.po b/ui/locale/cs/LC_MESSAGES/frontend.po
index 39322853f24..37ab0fa2e20 100644
--- a/ui/locale/cs/LC_MESSAGES/frontend.po
+++ b/ui/locale/cs/LC_MESSAGES/frontend.po
@@ -1,19 +1,20 @@
+#
msgid ""
msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2018-09-24 07:57+0300\n"
-"Last-Translator: Lukáš <iam@lukasmaly.net>\n"
+"PO-Revision-Date: 2022-06-09 22:52+0000\n"
+"Last-Translator: Tomáš Heřmánek <tomas.hermanek@initmax.cz>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.5.1.3\n"
-"X-Poedit-Basepath: ../../\n"
+"X-Generator: Pontoon\n"
"X-POOTLE-MTIME: 1537768671.000000\n"
+"X-Poedit-Basepath: ../../\n"
#: app/controllers/CControllerSlaReportList.php:181
#: include/classes/widgets/forms/CWidgetFormSlaReport.php:104
@@ -404,16 +405,16 @@ msgstr "PŘIDEJ PŘEPIS"
#: app/views/administration.user.list.php:114
msgid "API access"
-msgstr ""
+msgstr "API přístup"
#: app/controllers/CControllerPopupGeneric.php:333
#: app/views/administration.userrole.edit.php:285
msgid "API methods"
-msgstr ""
+msgstr "API metody"
#: app/controllers/CControllerAuditLogList.php:210
msgid "API token"
-msgstr ""
+msgstr "API token"
#: include/classes/api/services/CToken.php:299
#, c-format
@@ -422,14 +423,14 @@ msgstr ""
#: app/controllers/CControllerTokenCreate.php:98
msgid "API token added"
-msgstr ""
+msgstr "Byl přidán API token"
#: app/controllers/CControllerTokenDelete.php:61
msgid "API token deleted"
msgid_plural "API tokens deleted"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "API token byl smazán"
+msgstr[1] "API tokeny smazány"
+msgstr[2] "API tokeny smazány"
#: app/controllers/CControllerTokenDisable.php:63
msgid "API token disabled"
@@ -441,17 +442,17 @@ msgstr[2] ""
#: app/controllers/CControllerTokenEnable.php:63
msgid "API token enabled"
msgid_plural "API tokens enabled"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "API token je povolený"
+msgstr[1] "API tokeny jsou povoleny"
+msgstr[2] "API tokeny jsou povoleny"
#: include/classes/api/clients/CLocalApiClient.php:198
msgid "API token expired."
-msgstr ""
+msgstr "API token expiroval."
#: app/controllers/CControllerTokenUpdate.php:114
msgid "API token updated"
-msgstr ""
+msgstr "API token byl aktualizován"
#: app/controllers/CControllerTokenEdit.php:107
#: app/controllers/CControllerTokenList.php:193
@@ -469,7 +470,7 @@ msgstr ""
#: include/classes/helpers/CMenuHelper.php:397 include/html.inc.php:820
#: include/html.inc.php:900
msgid "API tokens"
-msgstr ""
+msgstr "API tokeny"
#: include/classes/widgets/forms/CWidgetFormItem.php:251
msgid "Above value"
@@ -490,22 +491,22 @@ msgstr "Přístup odepřen!"
#: app/views/administration.user.edit.php:599
#: app/views/administration.userrole.edit.php:271
msgid "Access to API"
-msgstr ""
+msgstr "Přístup do API"
#: app/views/administration.user.edit.php:452
#: app/views/administration.userrole.edit.php:81
msgid "Access to UI elements"
-msgstr ""
+msgstr "Přístup k UI prvkům"
#: app/views/administration.user.edit.php:628
#: app/views/administration.userrole.edit.php:320
msgid "Access to actions"
-msgstr ""
+msgstr "Přístup k akcím"
#: app/views/administration.user.edit.php:570
#: app/views/administration.userrole.edit.php:222
msgid "Access to modules"
-msgstr ""
+msgstr "Přístup k modulům"
#: app/views/administration.user.edit.php:474
#: app/views/administration.userrole.edit.php:134
@@ -526,7 +527,7 @@ msgstr "Přijmout"
#: include/classes/helpers/CRoleHelper.php:463
msgid "Acknowledge problems"
-msgstr ""
+msgstr "Potvrdit problémy"
#: app/views/popup.condition.common.php:684 include/actions.inc.php:2075
#: include/events.inc.php:196
@@ -621,7 +622,7 @@ msgstr "Akce \"%1$s\" již existuje."
#: include/classes/api/services/CRole.php:761
#, c-format
msgid "Action \"%2$s\" is not available for user role \"%1$s\"."
-msgstr ""
+msgstr "Akce \"%2$s\" není pro uživatelskou roli \"%1$s\" dovolena."
#: actionconf.php:301
msgid "Action added"
@@ -873,15 +874,15 @@ msgstr "Přidat podřízený prvek"
#: app/partials/service.list.edit.php:120
msgid "Add child service"
-msgstr ""
+msgstr "Přidat podřízenou službu"
#: app/views/js/popup.service.edit.js.php:401
msgid "Add child services"
-msgstr ""
+msgstr "Přidat podřízené služby"
#: app/partials/configuration.valuemap.php:47
msgid "Add from"
-msgstr ""
+msgstr "Přidat od"
#: include/actions.inc.php:686 include/actions.inc.php:1029
msgid "Add host"
@@ -889,12 +890,12 @@ msgstr "Přidat hostitele"
#: include/classes/widgets/views/widget.tophosts.form.view.php:75
msgid "Add item column"
-msgstr ""
+msgstr "Přidat sloupec item"
#: app/partials/massupdate.macros.tab.php:95
#: app/partials/massupdate.valuemaps.tab.php:37
msgid "Add missing"
-msgstr ""
+msgstr "Přidat chybějící"
#: jsLoader.php:205
msgid "Add multiple maps"
@@ -907,7 +908,7 @@ msgstr "Přidej nový set dat"
#: app/partials/configuration.host.edit.html.php:256
#: include/views/configuration.host.prototype.edit.php:266
msgid "Add new interface"
-msgstr ""
+msgstr "Přidat nové rozhraní"
#: include/classes/widgets/CWidgetHelper.php:906
msgid "Add new override"
@@ -916,15 +917,15 @@ msgstr "Přidej nový přepis"
#: app/views/js/configuration.dashboard.edit.js.php:202
#: app/views/js/monitoring.dashboard.view.js.php:290
msgid "Add page"
-msgstr ""
+msgstr "Přidat stranu"
#: app/views/js/popup.service.edit.js.php:431
msgid "Add parent services"
-msgstr ""
+msgstr "Přidat nadřazené služby"
#: include/classes/helpers/CRoleHelper.php:461
msgid "Add problem comments"
-msgstr ""
+msgstr "Přidat komentář k problému"
#: app/views/popup.massupdate.trigger.php:101
#: include/views/configuration.graph.edit.php:408
@@ -934,11 +935,11 @@ msgstr "Přidat prototyp"
#: app/controllers/CControllerPopupScheduledReportEdit.php:127
msgid "Add scheduled report"
-msgstr ""
+msgstr "Přidat naplánovaný report"
#: app/views/js/administration.userrole.edit.js.php:210
msgid "Add services"
-msgstr ""
+msgstr "Přidat služby"
#: app/views/monitoring.widget.navtreeitem.edit.php:68
msgid "Add submaps"
@@ -946,7 +947,7 @@ msgstr "Přidat dílčí mapy"
#: app/controllers/CControllerFavouriteDelete.php:69 include/html.inc.php:153
msgid "Add to favorites"
-msgstr ""
+msgstr "Přidat k oblíbeným"
#: include/actions.inc.php:1033
msgid "Add to host group"
@@ -958,11 +959,11 @@ msgstr "Přidat do skupin"
#: app/partials/scheduledreport.subscription.php:42
msgid "Add user"
-msgstr ""
+msgstr "Přidat uživatele"
#: app/partials/scheduledreport.subscription.php:46
msgid "Add user group"
-msgstr ""
+msgstr "Přidat skupinu uživatelů"
#: app/views/js/configuration.dashboard.edit.js.php:198
#: app/views/js/monitoring.dashboard.view.js.php:286
@@ -973,7 +974,7 @@ msgstr "Přidat widget"
#: app/controllers/CControllerAuditLogList.php:356
#: app/controllers/CControllerPopupImportCompare.php:161
msgid "Added"
-msgstr ""
+msgstr "Přidáno"
#: jsLoader.php:340
#, c-format
@@ -983,15 +984,15 @@ msgstr "Přidáno, %1$s"
#: app/views/popup.service.statusrule.edit.php:94
msgid "Additional rule"
-msgstr ""
+msgstr "Další pravidlo"
#: app/views/popup.service.edit.php:182
msgid "Additional rules"
-msgstr ""
+msgstr "Další pravidla"
#: app/partials/administration.ha.nodes.php:28
msgid "Address"
-msgstr ""
+msgstr "Adresa"
#: include/hosts.inc.php:63 include/users.inc.php:53
msgid "Admin"
@@ -1005,7 +1006,7 @@ msgstr "Administrace"
#: app/views/popup.service.edit.php:158
#: include/classes/widgets/forms/CWidgetFormItem.php:69
msgid "Advanced configuration"
-msgstr ""
+msgstr "Pokročilá konfigurace"
#: include/views/monitoring.sysmap.edit.php:158
msgid "Advanced labels"
@@ -1055,21 +1056,21 @@ msgstr ""
#: include/classes/widgets/CWidgetHelper.php:1317
msgid "Aggregate"
-msgstr ""
+msgstr "Agregace"
#: app/views/popup.triggerexpr.php:109
msgid "Aggregate functions"
-msgstr ""
+msgstr "Agregační funkce"
#: app/views/popup.tophosts.column.edit.php:120
#: include/classes/widgets/CWidgetHelper.php:1289
msgid "Aggregation function"
-msgstr ""
+msgstr "Agregační funkce"
#: app/views/popup.tophosts.column.edit.php:139
#: include/classes/widgets/CWidgetHelper.php:1308
msgid "Aggregation interval"
-msgstr ""
+msgstr "Agregační interval"
#: include/actions.inc.php:2106
msgid "Alert message"
@@ -1077,7 +1078,7 @@ msgstr "Poplašná zpráva"
#: app/controllers/CControllerPopupTriggerExpr.php:1116
msgid "Algorithm"
-msgstr ""
+msgstr "Algoritmus"
#: include/hosts.inc.php:114
msgid "Alias"
@@ -1112,7 +1113,7 @@ msgstr "Všechny panely"
#: app/views/monitoring.charts.view.php:82
msgid "All graphs"
-msgstr ""
+msgstr "Všechny grafy"
#: app/partials/administration.usergroup.grouprights.html.php:46
#: app/views/administration.user.edit.php:425
@@ -1144,7 +1145,7 @@ msgstr "Všechny problémy, pokud se jejich hodnoty rovnají tagu"
#: app/controllers/CControllerServiceListGeneral.php:150
msgid "All services"
-msgstr ""
+msgstr "Všechny služby"
#: app/partials/administration.usergroup.tagfilters.html.php:47
msgid "All tags"
@@ -1156,7 +1157,7 @@ msgstr "Všechny šablony"
#: app/views/administration.userrole.edit.php:289
msgid "Allow list"
-msgstr ""
+msgstr "Seznam povolených"
#: app/views/popup.massupdate.trigger.php:60 include/triggers.inc.php:991
#: include/views/configuration.trigger.prototype.edit.php:526
@@ -1173,7 +1174,7 @@ msgstr "Povolení hosté"
#: app/views/administration.user.edit.php:619
msgid "Allowed methods"
-msgstr ""
+msgstr "Povolené metody"
#: include/classes/setup/CSetupWizard.php:882
msgid "Alternatively, you can install it manually:"
@@ -1316,7 +1317,7 @@ msgstr "Aritmetický"
#: app/views/popup.tophosts.column.edit.php:150
#: include/classes/helpers/CServiceHelper.php:148
msgid "As is"
-msgstr ""
+msgstr "Ponechat stejné"
#: include/views/monitoring.history.php:102
msgid "As plain text"
@@ -1453,7 +1454,7 @@ msgstr "Audit log"
#: app/views/administration.housekeeping.edit.php:179
msgid "Audit settings"
-msgstr ""
+msgstr "Nastavení auditu"
#: include/func.inc.php:243
msgid "Aug"
@@ -1577,7 +1578,7 @@ msgstr "Automatický výběr ikony"
#: include/classes/helpers/CMediatypeHelper.php:189
#: include/classes/helpers/CMenuHelper.php:249 include/html.inc.php:890
msgid "Autoregistration"
-msgstr ""
+msgstr "Automatická registrace"
#: include/classes/helpers/CMenuHelper.php:209
#: include/views/configuration.action.list.php:35
@@ -1718,7 +1719,7 @@ msgstr "Tělo a záhlaví"
#: include/classes/widgets/forms/CWidgetFormItem.php:275
#: include/classes/widgets/forms/CWidgetFormItem.php:335
msgid "Bold"
-msgstr ""
+msgstr "Tučný"
#: include/graphs.inc.php:59 include/views/js/monitoring.sysmaps.js.php:780
#: include/views/js/monitoring.sysmaps.js.php:870
@@ -1747,7 +1748,7 @@ msgstr "Šířka okraje"
#: app/controllers/CControllerUserUpdateGeneral.php:106
msgid "Both passwords must be equal."
-msgstr ""
+msgstr "Obě hesla musí být stejná."
#: include/classes/widgets/forms/CWidgetFormItem.php:108
#: include/classes/widgets/forms/CWidgetFormItem.php:189
@@ -1892,7 +1893,7 @@ msgstr "Zrušit"
#: app/controllers/CControllerTokenCreate.php:44
#: app/controllers/CControllerTokenCreate.php:105
msgid "Cannot add API token"
-msgstr ""
+msgstr "Nelze přidat token API"
#: include/classes/api/services/CGraph.php:517
#: include/classes/api/services/CGraph.php:531
@@ -2062,7 +2063,7 @@ msgstr ""
#: jsLoader.php:343
msgctxt "screen reader"
msgid "Cannot be removed"
-msgstr ""
+msgstr "Nelze odstranit"
#: include/classes/validators/CLdapAuthValidator.php:79
msgid "Cannot bind anonymously to LDAP server."
@@ -2116,7 +2117,7 @@ msgstr "Není možné se připojit k databázi."
#: include/views/js/configuration.httpconf.edit.js.php:182
msgid "Cannot convert POST data:"
-msgstr ""
+msgstr "Nelze převést POST data:"
#: graphs.php:390
msgid "Cannot copy graph"
@@ -2202,9 +2203,9 @@ msgstr ""
#: app/controllers/CControllerTokenDelete.php:64
msgid "Cannot delete API token"
msgid_plural "Cannot delete API tokens"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Nelze smazat API token"
+msgstr[1] "Nelze smazat API tokeny"
+msgstr[2] "Nelze smazat API tokeny"
#: app/controllers/CControllerSlaDelete.php:79
msgid "Cannot delete SLA"
@@ -2228,12 +2229,11 @@ msgid "Cannot delete assigned user role \"%1$s\"."
msgstr ""
#: app/controllers/CControllerCorrelationDelete.php:68
-#, fuzzy
msgid "Cannot delete correlation"
msgid_plural "Cannot delete correlations"
msgstr[0] "Nelze odstranit korelaci"
-msgstr[1] "Nelze odstranit korelaci"
-msgstr[2] "Nelze odstranit korelaci"
+msgstr[1] "Nelze odstranit korelace"
+msgstr[2] "Nelze odstranit korelace"
#: app/controllers/CControllerDashboardDelete.php:63
#: app/controllers/CControllerTemplateDashboardDelete.php:61
@@ -2249,12 +2249,11 @@ msgid "Cannot delete dependency"
msgstr "Není možné smazat závislost"
#: app/controllers/CControllerDiscoveryDelete.php:69 host_discovery.php:416
-#, fuzzy
msgid "Cannot delete discovery rule"
msgid_plural "Cannot delete discovery rules"
msgstr[0] "Nelze smazat pravidlo nálezu"
-msgstr[1] "Nelze smazat pravidlo nálezu"
-msgstr[2] "Nelze smazat pravidlo nálezu"
+msgstr[1] "Nelze smazat pravidla nálezu"
+msgstr[2] "Nelze smazat pravidla nálezu"
#: host_discovery.php:780
msgid "Cannot delete discovery rules"
@@ -2406,7 +2405,6 @@ msgid "Cannot delete selected actions"
msgstr "Není možné smazat označené akce"
#: app/controllers/CControllerServiceDelete.php:78
-#, fuzzy
msgid "Cannot delete service"
msgid_plural "Cannot delete services"
msgstr[0] "Nelze smazat službu"
@@ -2598,9 +2596,9 @@ msgstr "Není možné zobrazit víc jak jednu položku s typem \"Souhrn grafu\".
#: app/controllers/CControllerTokenEnable.php:66
msgid "Cannot enable API token"
msgid_plural "Cannot enable API tokens"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Nelze povolit API token"
+msgstr[1] "Nelze povolit API tokeny"
+msgstr[2] "Nelze povolit API tokeny"
#: app/controllers/CControllerSlaEnable.php:88
msgid "Cannot enable SLA"
@@ -4321,12 +4319,11 @@ msgid "Correlation added"
msgstr "Korelace přidána"
#: app/controllers/CControllerCorrelationDelete.php:65
-#, fuzzy
msgid "Correlation deleted"
msgid_plural "Correlations deleted"
msgstr[0] "Korelace smazána"
-msgstr[1] "Korelace smazána"
-msgstr[2] "Korelace smazána"
+msgstr[1] "Korelace smazány"
+msgstr[2] "Korelace smazány"
#: app/controllers/CControllerCorrelationDisable.php:72
msgid "Correlation disabled"
@@ -4384,7 +4381,7 @@ msgstr ""
#: app/views/administration.token.list.php:105
#: app/views/administration.user.token.list.php:71
msgid "Create API token"
-msgstr ""
+msgstr "Vytvořit API token"
#: app/views/sla.list.php:188
msgid "Create SLA"
@@ -5274,12 +5271,12 @@ msgstr "Smazat skript?"
#: app/views/administration.token.edit.php:115
#: app/views/administration.user.token.edit.php:97
msgid "Delete selected API token?"
-msgstr ""
+msgstr "Smazat vybraný API token?"
#: app/views/administration.token.list.php:201
#: app/views/administration.user.token.list.php:153
msgid "Delete selected API tokens?"
-msgstr ""
+msgstr "Smazat vybrané API tokeny?"
#: app/views/js/sla.list.js.php:130 app/views/popup.sla.edit.php:274
msgid "Delete selected SLA?"
@@ -5641,7 +5638,7 @@ msgstr "Zakázat hostitele sledované přes vybrané proxy?"
#: app/views/administration.token.list.php:200
#: app/views/administration.user.token.list.php:152
msgid "Disable selected API tokens?"
-msgstr ""
+msgstr "Zakázat označené API tokeny?"
#: app/views/js/sla.list.js.php:118
msgid "Disable selected SLA?"
@@ -5903,12 +5900,11 @@ msgid "Discovery rule created"
msgstr " Pravidlo nálezu vytvořeno"
#: app/controllers/CControllerDiscoveryDelete.php:66 host_discovery.php:416
-#, fuzzy
msgid "Discovery rule deleted"
msgid_plural "Discovery rules deleted"
-msgstr[0] " Pravidlo nálezu smazáno"
-msgstr[1] " Pravidlo nálezu smazáno"
-msgstr[2] " Pravidlo nálezu smazáno"
+msgstr[0] "Pravidlo nálezu smazáno"
+msgstr[1] "Pravidla nálezu smazána"
+msgstr[2] "Pravidla nálezu smazána"
#: app/controllers/CControllerDiscoveryDisable.php:71 host_discovery.php:767
msgid "Discovery rule disabled"
@@ -11261,7 +11257,7 @@ msgstr ""
#: include/classes/helpers/CRoleHelper.php:466
msgid "Manage API tokens"
-msgstr ""
+msgstr "Správa API tokenů "
#: include/classes/helpers/CRoleHelper.php:472
msgid "Manage SLA"
@@ -13032,6 +13028,10 @@ msgstr "Počet položek v Zabbix databázi."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Počet položek v historii proxy, které ještě nebyli odeslané serveru"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Počet položek ve frontě, které jsou zpožděné od do sekund včetně."
@@ -16195,12 +16195,11 @@ msgid "Service data storage period"
msgstr ""
#: app/controllers/CControllerServiceDelete.php:63
-#, fuzzy
msgid "Service deleted"
msgid_plural "Services deleted"
msgstr[0] "Služba byla smazána"
-msgstr[1] "Služba byla smazána"
-msgstr[2] "Služba byla smazána"
+msgstr[1] "Služby byla smazány"
+msgstr[2] "Služby byla smazány"
#: app/views/administration.userrole.edit.php:144
#: app/views/administration.userrole.edit.php:185
diff --git a/ui/locale/de/LC_MESSAGES/frontend.po b/ui/locale/de/LC_MESSAGES/frontend.po
index 21e66bc1033..249a3a62b48 100644
--- a/ui/locale/de/LC_MESSAGES/frontend.po
+++ b/ui/locale/de/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-04-12 18:25+0000\n"
-"Last-Translator: Joachim <joachim.schwender@web.de>\n"
+"PO-Revision-Date: 2022-06-03 17:57+0000\n"
+"Last-Translator: Lukas <lmayer@wind.gmbh>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
#: include/classes/widgets/forms/CWidgetFormSlaReport.php:104
#, c-format
msgid "\"%1$s\" date must be less than \"%2$s\" date."
-msgstr ""
+msgstr "Das Datum „%1$s“ muss vor dem Datum „%2$s“ liegen."
#: include/classes/db/MysqlDbBackend.php:70
#: include/classes/db/OracleDbBackend.php:142
@@ -1030,7 +1030,7 @@ msgstr "Agent-Schnittstellen"
#: include/classes/data/CItemData.php:829
msgid "Agent variant check. Returns 1 - for Zabbix agent; 2 - for Zabbix agent 2"
-msgstr ""
+msgstr "Prüfung der Agent-Variante. Rückgabewert 1 für Zabbix Agent; 2 für Zabbix Agent 2"
#: include/classes/widgets/CWidgetHelper.php:1317
msgid "Aggregate"
@@ -1361,7 +1361,7 @@ msgstr "At least one UI element must be enabled for the \"%1$s\" user role."
#: include/classes/api/services/CMaintenance.php:683
msgid "At least one day of the week or day of the month must be specified."
-msgstr ""
+msgstr "Mindestens ein Wochentag oder Tag im Monat muss angegeben werden. "
#: include/classes/api/services/CMaintenance.php:382
#: include/classes/api/services/CMaintenance.php:574
@@ -12949,6 +12949,10 @@ msgstr "Anzahl der Datenpunkte in Zabbix Datenbank."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Anzahl der Datenpunkte in Proxy-Ablaufverfolgung, die noch nicht an den Server gesendet wurden"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Anzahl an Datenpunkten in der Warteschlange, die von bis Sekunden, inklusive verzögert wurden."
diff --git a/ui/locale/el/LC_MESSAGES/frontend.po b/ui/locale/el/LC_MESSAGES/frontend.po
index 553d1630ba0..8ee0fe0949b 100644
--- a/ui/locale/el/LC_MESSAGES/frontend.po
+++ b/ui/locale/el/LC_MESSAGES/frontend.po
@@ -12929,6 +12929,10 @@ msgstr "Αριθμός συλλεκτών βάσεως δεδομένων Zabbix
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Αριθμός συλλεκτών στο ιστορικό διαμεσολαβητή οι οποίοι ακόμη δεν απεστάλησαν στον εξυπηρετητή"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Αριθμός συλλεκτών στην ουρά οι οποίοι καθυστερούν από έως σε δευτερόλεπτα, χωρίς αποκλεισμούς."
diff --git a/ui/locale/en/LC_MESSAGES/frontend.pot b/ui/locale/en/LC_MESSAGES/frontend.pot
index cd5d7296a2a..47d6e801efa 100644
--- a/ui/locale/en/LC_MESSAGES/frontend.pot
+++ b/ui/locale/en/LC_MESSAGES/frontend.pot
@@ -12917,6 +12917,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/en_GB/LC_MESSAGES/frontend.po b/ui/locale/en_GB/LC_MESSAGES/frontend.po
index 8a06163dce3..35a1bef6cf9 100644
--- a/ui/locale/en_GB/LC_MESSAGES/frontend.po
+++ b/ui/locale/en_GB/LC_MESSAGES/frontend.po
@@ -12916,6 +12916,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/es/LC_MESSAGES/frontend.po b/ui/locale/es/LC_MESSAGES/frontend.po
index ed358acf4fe..121bff6133c 100644
--- a/ui/locale/es/LC_MESSAGES/frontend.po
+++ b/ui/locale/es/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-05-24 14:36+0000\n"
-"Last-Translator: Jurijs <jurijs.klopovskis@zabbix.com>\n"
+"PO-Revision-Date: 2022-06-07 17:11+0000\n"
+"Last-Translator: Edinson <edinson.vivas@gmail.com>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
@@ -2115,7 +2115,7 @@ msgstr[1] "No se pudieron copiar los iniciadores"
#: include/triggers.inc.php:246
#, c-format
msgid "Cannot copy trigger \"%1$s\", because it has multiple hosts in the expression."
-msgstr ""
+msgstr "No se puede copiar el activador \"%1$s\", porque tiene varios hosts en la expresión."
#: include/triggers.inc.php:226
#, c-format
@@ -2317,7 +2317,7 @@ msgstr[1] "No es posible eliminar el tipo de medio"
#, c-format
msgid "Cannot delete module: %1$s."
msgid_plural "Cannot delete modules: %1$s."
-msgstr[0] ""
+msgstr[0] "No es posible eliminar el módulo: %1$s."
msgstr[1] "No puede eliminar el módulo: %1$s."
#: sysmaps.php:261
@@ -2588,14 +2588,14 @@ msgstr[1] "No se pudieron habilitar los tipos de soporte"
#, c-format
msgid "Cannot enable module: %1$s."
msgid_plural "Cannot enable modules: %1$s."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "No se puede habilitar el módulo: %1$s."
+msgstr[1] "No se puede habilitar los módulos: %1$s."
#: app/controllers/CControllerScheduledReportEnable.php:78
msgid "Cannot enable scheduled report"
msgid_plural "Cannot enable scheduled reports"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "No se puede habilitar el reporte programado"
+msgstr[1] "No se puede habilitar los reportes programados"
#: triggers.php:489
msgid "Cannot enable trigger"
@@ -2611,11 +2611,11 @@ msgstr[1] "No se pudo habilitar los escenarios web"
#: app/controllers/CControllerPopupTestTriggerExpr.php:199
msgid "Cannot evaluate expression"
-msgstr ""
+msgstr "No se puede evaluar la expresión"
#: app/controllers/CControllerPopupScriptExec.php:123
msgid "Cannot execute script."
-msgstr ""
+msgstr "No se puede ejecutar el script."
#: jsLoader.php:287
msgid "Cannot expand macros."
@@ -2629,7 +2629,7 @@ msgstr "No se pudo encontrar la imagen de fondo \"%1$s\" usada en el mapa \"%2$s
#: include/classes/import/importers/CTemplateDashboardImporter.php:170
#, c-format
msgid "Cannot find graph \"%1$s\" used in dashboard \"%2$s\"."
-msgstr ""
+msgstr "No se puede encontrar el gráfico \"%1$s\" utilizado en el tablero \"%2$s\"."
#: include/classes/import/importers/CMapImporter.php:152
#, c-format
@@ -2639,7 +2639,7 @@ msgstr "No se pudo encontrar el grupo \"%1$s\" usado en el mapa \"%2$s\"."
#: include/classes/import/importers/CTemplateDashboardImporter.php:140
#, c-format
msgid "Cannot find host \"%1$s\" used in dashboard \"%2$s\"."
-msgstr ""
+msgstr "No se puede encontrar el host \"%1$s\" utilizado en el tablero \"%2$s\"."
#: include/classes/import/importers/CMapImporter.php:164
#, c-format
@@ -2672,17 +2672,17 @@ msgstr "No se pudo encontrar la asignación de icono \"%1$s\" usado en el mapa \
#: include/classes/import/CConfigurationImport.php:952
#, c-format
msgid "Cannot find interface \"%1$s\" used for discovery rule \"%2$s\" on \"%3$s\"."
-msgstr ""
+msgstr "No se puede encontrar la interfaz \"%1$s\" utilizada para la regla de descubrimiento \"%2$s\" en \"%3$s\"."
#: include/classes/import/CConfigurationImport.php:719
#, c-format
msgid "Cannot find interface \"%1$s\" used for item \"%2$s\" on \"%3$s\"."
-msgstr ""
+msgstr "No es posible encontrar la interfaz \"%1$s\" usada por el elemento \"%2$s\" en \"%3$s\"."
#: include/classes/import/CConfigurationImport.php:1105
#, c-format
msgid "Cannot find interface \"%1$s\" used for item prototype \"%2$s\" of discovery rule \"%3$s\" on \"%4$s\"."
-msgstr ""
+msgstr "No es posible encontrar la interfaz \"%1$s\" usada por el prototipo de item \"%2$s\" en la regla de descubrimiento \"%3$s\" en \"%4$s\"."
#: include/classes/import/CConfigurationImport.php:1601
#, c-format
@@ -2717,7 +2717,7 @@ msgstr "No pude encontrar el elemento \"%1$s\" en \"%2$s\" usado en el prototipo
#: include/classes/import/importers/CTemplateDashboardImporter.php:155
#, c-format
msgid "Cannot find item \"%1$s\" used in dashboard \"%2$s\"."
-msgstr ""
+msgstr "No se puede encontrar el elemento\"%1$s\" utilizado en el tablero \"%2$s\"."
#: include/classes/import/importers/CMapImporter.php:140
#, c-format
@@ -2732,7 +2732,7 @@ msgstr "No se pudo encontrar la plantilla \"%1$s\" de un prototipo de equipo \"%
#: include/classes/import/CConfigurationImport.php:1002
#, c-format
msgid "Cannot find template \"%1$s\" for override \"%2$s\" of discovery rule \"%3$s\" on \"%4$s\"."
-msgstr ""
+msgstr "No se puede encontrar la plantilla \"%1$s\" para anular \"%2$s\" de la regla de descubrimiento \"%3$s\" en \"%4$s\"."
#: include/classes/import/importers/CMapImporter.php:179
#: include/classes/import/importers/CMapImporter.php:229
@@ -2756,13 +2756,13 @@ msgstr "No se pudo encontrar el mapa de valores \"%1$s\" usado en el prototipo d
#: include/classes/api/services/CRole.php:683
#, c-format
msgid "Cannot have non-default \"%2$s\" rule while having \"%3$s\" set to %4$d for user role \"%1$s\"."
-msgstr ""
+msgstr "No se puede tener una regla \"%2$s\" no predeterminada mientras se tiene \"%3$s\" establecido en %4$d para el rol de usuario \"%1$s\"."
#: include/classes/api/services/CRole.php:569
#: include/classes/api/services/CRole.php:645
#, c-format
msgid "Cannot have non-empty tag value while having empty tag in rule \"%2$s\" for user role \"%1$s\"."
-msgstr ""
+msgstr "No se puede tener un valor de etiqueta no vacío mientras se tiene una etiqueta vacía en la regla \"%2$s\" para el rol de usuario \"%1$s\"."
#: include/classes/import/importers/CTemplateImporter.php:258
#: include/classes/import/importers/CTemplateImporter.php:410
@@ -2783,54 +2783,54 @@ msgstr "No se puede linkar plantilla"
#: include/classes/api/services/CHostBase.php:520
#, c-format
msgid "Cannot link template \"%1$s\" to host \"%2$s\" because its parent template \"%3$s\" will be linked twice."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al host \"%2$s\" porque su plantilla padre \"%3$s\" se vinculará dos veces."
#: include/classes/api/services/CHostBase.php:678
#: include/classes/api/services/CHostBase.php:755
#, c-format
msgid "Cannot link template \"%1$s\" to host \"%2$s\" due to dependency of trigger \"%3$s\"."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al host \"%2$s\" debido a la dependencia del disparador \"%3$s\"."
#: include/classes/api/services/CHostBase.php:805
#, c-format
msgid "Cannot link template \"%1$s\" to host \"%2$s\" due to expression of trigger \"%3$s\"."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al host \"%2$s\" debido a la expresión del disparador \"%3$s\"."
#: include/classes/api/services/CHostBase.php:644
#, c-format
msgid "Cannot link template \"%1$s\" to host \"%2$s\", because its parent template \"%3$s\" would be linked twice."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al equipo \"%2$s\", porque su plantilla padre \"%3$s\" se vincularía dos veces."
#: include/classes/api/services/CHostBase.php:517
#, c-format
msgid "Cannot link template \"%1$s\" to host prototype \"%2$s\" because its parent template \"%3$s\" will be linked twice."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al prototipo de equipo \"%2$s\" porque su plantilla padre \"%3$s\" se vinculará dos veces."
#: include/classes/api/services/CHostBase.php:675
#: include/classes/api/services/CHostBase.php:752
#, c-format
msgid "Cannot link template \"%1$s\" to host prototype \"%2$s\" due to dependency of trigger \"%3$s\"."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al prototipo de equipo \"%2$s\" debido a la dependencia del disparador \"%3$s\"."
#: include/classes/api/services/CHostBase.php:802
#, c-format
msgid "Cannot link template \"%1$s\" to host prototype \"%2$s\" due to expression of trigger \"%3$s\"."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al prototipo del equipo \"%2$s\" debido a la expresión del disparador \"%3$s\"."
#: include/classes/api/services/CHostBase.php:641
#, c-format
msgid "Cannot link template \"%1$s\" to host prototype \"%2$s\", because its parent template \"%3$s\" would be linked twice."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" al prototipo de equipo \"%2$s\", porque su plantilla padre \"%3$s\" se vincularía dos veces."
#: include/classes/api/services/CHostBase.php:381
#, c-format
msgid "Cannot link template \"%1$s\" to template \"%2$s\" because circular linkage (%3$s) will occurs."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" a la plantilla \"%2$s\" porque se ocurrirá una vinculación circular (%3$s)."
#: include/classes/api/services/CHostBase.php:514
#, c-format
msgid "Cannot link template \"%1$s\" to template \"%2$s\" because its parent template \"%3$s\" will be linked twice."
-msgstr ""
+msgstr "No se puede vincular la plantilla \"%1$s\" a la plantilla \"%2$s\" porque su plantilla padre \"%3$s\" se vinculará dos veces."
#: include/classes/api/services/CHostBase.php:672
#: include/classes/api/services/CHostBase.php:749
@@ -2938,7 +2938,7 @@ msgstr "No se pudo leer el XML: %1$s."
#: include/classes/import/readers/CYamlImportReader.php:55
#, c-format
msgid "Cannot read YAML: %1$s."
-msgstr ""
+msgstr "No se puede leer YAML: %1$s."
#: include/classes/server/CZabbixServer.php:543
#, c-format
@@ -3382,13 +3382,13 @@ msgstr "No es posible actualizar al usuario"
#: app/controllers/CControllerUsergroupUpdate.php:105
msgid "Cannot update user group"
msgid_plural "Cannot update user groups"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "No se puede actualizar el grupo de usuarios"
+msgstr[1] "No se puede actualizar el grupo de usuarios"
#: app/controllers/CControllerUserroleUpdate.php:106
#: app/controllers/CControllerUserroleUpdate.php:176
msgid "Cannot update user role"
-msgstr ""
+msgstr "No se puede actualizar el rol de usuario"
#: httpconf.php:194
msgid "Cannot update web scenario"
@@ -12915,6 +12915,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/fa/LC_MESSAGES/frontend.po b/ui/locale/fa/LC_MESSAGES/frontend.po
index 80b6052ffe0..70750dcea46 100644
--- a/ui/locale/fa/LC_MESSAGES/frontend.po
+++ b/ui/locale/fa/LC_MESSAGES/frontend.po
@@ -12807,6 +12807,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/fi/LC_MESSAGES/frontend.po b/ui/locale/fi/LC_MESSAGES/frontend.po
index ceb3dd1ffe4..6e5f88da3ac 100644
--- a/ui/locale/fi/LC_MESSAGES/frontend.po
+++ b/ui/locale/fi/LC_MESSAGES/frontend.po
@@ -12914,6 +12914,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/fr/LC_MESSAGES/frontend.po b/ui/locale/fr/LC_MESSAGES/frontend.po
index 3c1fba149f8..7571ef2acb2 100644
--- a/ui/locale/fr/LC_MESSAGES/frontend.po
+++ b/ui/locale/fr/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-04-04 11:01+0000\n"
-"Last-Translator: Florent <fpasero@gab6.fr>\n"
+"PO-Revision-Date: 2022-05-14 13:53+0000\n"
+"Last-Translator: ERIC <eric78.zabbix@orange.fr>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@@ -9582,7 +9582,7 @@ msgstr ""
#: app/partials/configuration.tags.tab.php:140
msgid "Inherited and item tags"
-msgstr ""
+msgstr "Tags hérités et d'élément"
#: app/partials/configuration.tags.tab.php:135
msgid "Inherited and scenario tags"
@@ -12926,6 +12926,10 @@ msgstr "Nombre d'éléments dans la base de données Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Nombre d'éléments dans l'historique du proxy qui ne sont pas encore envoyés au serveur"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Nombre d'éléments dans la queue qui rencontrent un délai de from à to secondes, incluses."
diff --git a/ui/locale/he/LC_MESSAGES/frontend.po b/ui/locale/he/LC_MESSAGES/frontend.po
index 767f6771b98..2b9676168d9 100644
--- a/ui/locale/he/LC_MESSAGES/frontend.po
+++ b/ui/locale/he/LC_MESSAGES/frontend.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-05-27 06:24+0000\n"
+"PO-Revision-Date: 2022-06-07 11:58+0000\n"
"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
"Language-Team: none\n"
"Language: he\n"
@@ -12925,6 +12925,10 @@ msgstr "מספר הפריטים במסד הנתונים של Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "מספר הפריטים בהיסטוריה של המתווך שלא נשלחו עדיין לשרת"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr "מספר הפריטים בתור שהושהו למשך תקופת שניות מ־ עד, כולל."
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "מספר הפריטים בתור שהושהו למשך תקופת שניות מ־ עד, כולל."
@@ -17944,57 +17948,57 @@ msgstr "ההקפצה „%1$s” שייכת לתבניות עם קישוריות
#: include/triggers.inc.php:372 include/triggers.inc.php:433
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the non-existent trigger \"%2$s\" on the host \"%3$s\"."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להסתמך על ההקפצה „%2$s” שאינה קיימת, במארח „%3$s”."
#: include/triggers.inc.php:373 include/triggers.inc.php:434
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the non-existent trigger \"%2$s\" on the template \"%3$s\"."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להסתמך על ההקפצה „%2$s”, שאינה קיימת, בתבנית „%3$s”."
#: include/classes/api/services/CTriggerGeneral.php:2728
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\" from the host \"%3$s\", because dependencies on triggers from a child template or host are not allowed."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” מהמארח „%3$s”, כיוון שתלויות בהקפצות מתבנית צאצאית או מארח אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2727
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\" from the template \"%3$s\", because dependencies on triggers from a child template or host are not allowed."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” מהתבנית „%3$s”, כיוון שתלויות בהקפצות מתבנית צאצאית או מארח אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2621
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\" from the template \"%3$s\", because dependencies on triggers from the parent template are not allowed."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” מהתבנית „%3$s”, כיוון שתלויות בהקפצות מתבנית הורה אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2354
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\", because a circular linkage (%3$s) would occur for host \"%4$s\"."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” כיוון שתיווצר קישוריות מעגלית (%3$s) למארח „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2349
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\", because a circular linkage (%3$s) would occur for template \"%4$s\"."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” כיוון שתיווצר קישוריות מעגלית (%3$s) לתבנית „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2365
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\", because a circular linkage (%3$s) would occur."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” כיוון שתיווצר קישוריות מעגלית (%3$s)."
#: include/classes/api/services/CTriggerGeneral.php:2472
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\", because dependencies of host triggers on template triggers are not allowed."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להיות תלויה בהקפצה „%2$s” כיוון שתלויות של הקפצות מארח בתבניות הקפצה אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2857
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\", because the template \"%3$s\" is not linked to the host \"%4$s\"."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להסתמך על ההקפצה „%2$s”, כיוון שהתבנית „%3$s” לא מקושרת למארח „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2856
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the trigger \"%2$s\", because the template \"%3$s\" is not linked to the template \"%4$s\"."
-msgstr ""
+msgstr "ההקפצה „%1$s” לא יכולה להסתמך על ההקפצה „%2$s”, כיוון שהתבנית „%3$s” לא מקושרת לתבנית „%4$s”."
#: include/classes/import/CConfigurationImport.php:1800
#, c-format
@@ -18101,62 +18105,62 @@ msgstr "אבטיפוס ההקפצה „%1$s” שייך לתבניות עם קי
#: include/classes/api/services/CDiscoveryRule.php:916
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the non-existent trigger \"%2$s\" on the host \"%3$s\"."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להסתמך על ההקפצה „%2$s” שאינה קיימת, במארח „%3$s”."
#: include/classes/api/services/CDiscoveryRule.php:915
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the non-existent trigger \"%2$s\" on the template \"%3$s\"."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להסתמך על ההקפצה „%2$s”, שאינה קיימת, בתבנית „%3$s”."
#: include/classes/api/services/CTriggerGeneral.php:2733
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger \"%2$s\" from the host \"%3$s\", because dependencies on triggers from a child template or host are not allowed."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלויה בהקפצה „%2$s” מהמארח „%3$s”, כיוון שתלויות בהקפצות מתבנית צאצאית או מארח אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2732
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger \"%2$s\" from the template \"%3$s\", because dependencies on triggers from a child template or host are not allowed."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלויה בהקפצה „%2$s” מהתבנית „%3$s”, כיוון שתלויות בהקפצות מתבנית צאצאית או מארח אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2622
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger \"%2$s\" from the template \"%3$s\", because dependencies on triggers from the parent template are not allowed."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלוי בהקפצה „%2$s” מהתבנית „%3$s”, כיוון שתלויות בהקפצות מתבנית הורה אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2473
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger \"%2$s\", because dependencies of host triggers on template triggers are not allowed."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלוי בהקפצה „%2$s” כיוון שתלויות של הקפצות מארח בתבניות הקפצה אסורות."
#: include/classes/api/services/CTriggerGeneral.php:2862
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger \"%2$s\", because the template \"%3$s\" is not linked to the host \"%4$s\"."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להסתמך על ההקפצה „%2$s”, כיוון שהתבנית „%3$s” לא מקושרת למארח „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2861
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger \"%2$s\", because the template \"%3$s\" is not linked to the template \"%4$s\"."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להסתמך על ההקפצה „%2$s”, כיוון שהתבנית „%3$s” לא מקושרת לתבנית „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2355
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger prototype \"%2$s\", because a circular linkage (%3$s) would occur for host \"%4$s\"."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלוי באבטיפוס ההקפצה „%2$s” כיוון שתיווצר קישוריות מעגלית (%3$s) למארח „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2350
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger prototype \"%2$s\", because a circular linkage (%3$s) would occur for template \"%4$s\"."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלוי באבטיפוס ההקפצה „%2$s” כיוון שתיווצר קישוריות מעגלית (%3$s) לתבנית „%4$s”."
#: include/classes/api/services/CTriggerGeneral.php:2366
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger prototype \"%2$s\", because a circular linkage (%3$s) would occur."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלוי באבטיפוס ההקפצה „%2$s”, כיוון שתיווצר קישוריות מעגלית (%3$s)."
#: include/classes/api/services/CTriggerGeneral.php:1325
#, c-format
msgid "Trigger prototype \"%1$s\" cannot depend on the trigger prototype \"%2$s\", because dependencies on trigger prototypes from another LLD rule are not allowed."
-msgstr ""
+msgstr "אבטיפוס ההקפצה „%1$s” לא יכול להיות תלוי באבטיפוס ההקפצה „%2$s” כיוון שתלויות באבות טיפוס של הקפצות מכלל LLD (גילוי ברמה נמוכה) אסורים."
#: include/classes/api/services/CTriggerGeneral.php:1716
#, c-format
diff --git a/ui/locale/hu/LC_MESSAGES/frontend.po b/ui/locale/hu/LC_MESSAGES/frontend.po
index 6e3259ee169..f4703cb38f5 100644
--- a/ui/locale/hu/LC_MESSAGES/frontend.po
+++ b/ui/locale/hu/LC_MESSAGES/frontend.po
@@ -12919,6 +12919,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/id/LC_MESSAGES/frontend.po b/ui/locale/id/LC_MESSAGES/frontend.po
index 541b52fd3d0..040a92f5b7a 100644
--- a/ui/locale/id/LC_MESSAGES/frontend.po
+++ b/ui/locale/id/LC_MESSAGES/frontend.po
@@ -12810,6 +12810,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/it/LC_MESSAGES/frontend.po b/ui/locale/it/LC_MESSAGES/frontend.po
index 71004fe97c2..d259c5b6e59 100644
--- a/ui/locale/it/LC_MESSAGES/frontend.po
+++ b/ui/locale/it/LC_MESSAGES/frontend.po
@@ -12916,6 +12916,10 @@ msgstr "Numero di item all'intero del database Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Numero di item all'interno della proxy history che non sono ancora stati inviati al server"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Numero di item all'interno della coda che sono in ritardo da a secondi, inclusi."
diff --git a/ui/locale/ja/LC_MESSAGES/frontend.po b/ui/locale/ja/LC_MESSAGES/frontend.po
index c72959c01d6..c7fb8dedf0d 100644
--- a/ui/locale/ja/LC_MESSAGES/frontend.po
+++ b/ui/locale/ja/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-05-27 12:28+0000\n"
-"Last-Translator: Atsushi <kha00760@nifty.com>\n"
+"PO-Revision-Date: 2022-06-06 11:12+0000\n"
+"Last-Translator: Atsushi Tanaka <kha00760@nifty.com>\n"
"Language-Team: Zabbix\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -2972,12 +2972,12 @@ msgstr "ホスト\"%4$s\"上のトリガー\"%3$s\"の依存関係によって
#: include/classes/api/services/CHostBase.php:414
#, c-format
msgid "Cannot unlink template \"%1$s\" from template \"%2$s\" due to dependency of trigger \"%3$s\" on template \"%4$s\"."
-msgstr ""
+msgstr "テンプレート\"%4$s\"上のトリガー\"%3$s\"の依存関係によって、テンプレート\"%2$s\"からテンプレート\"%1$s\"へのリンクを削除できません。"
#: include/classes/api/services/CHostBase.php:330
#, c-format
msgid "Cannot unlink template \"%1$s\" from template \"%2$s\" due to dependency of trigger \"%3$s\"."
-msgstr ""
+msgstr "トリガー\"%3$s\"の依存関係によって、テンプレート\"%2$s\"からテンプレート\"%1$s\"へのリンクを削除できません。"
#: include/classes/api/services/CHostBase.php:256
#, c-format
@@ -12813,6 +12813,10 @@ msgstr "Zabbixデータベース内のアイテム数。"
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "サーバーへ未送信のプロキシ内のヒストリアイテム数"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "fromからtoまでの時間遅れているキュー内のアイテム数。"
@@ -17376,17 +17380,17 @@ msgstr "クローンしたテンプレートは\"隠しテキスト\"タイプ
#: include/classes/api/services/CTriggerGeneral.php:2245
#, c-format
msgid "The dependency of trigger \"%1$s\" on trigger \"%2$s\" already exists."
-msgstr ""
+msgstr "トリガー\"%2$s\"上のトリガー\"%1$s\"の依存関係がすでに存在します。"
#: include/classes/api/services/CTriggerGeneral.php:2249
#, c-format
msgid "The dependency of trigger prototype \"%1$s\" on trigger \"%2$s\" already exists."
-msgstr ""
+msgstr "トリガー\"%2$s\"上のトリガーのプロトタイプ\"%1$s\"の依存関係がすでに存在します。"
#: include/classes/api/services/CTriggerGeneral.php:2250
#, c-format
msgid "The dependency of trigger prototype \"%1$s\" on trigger prototype \"%2$s\" already exists."
-msgstr ""
+msgstr "トリガーのプロトタイプ\"%2$s\"上のトリガーのプロトタイプ\"%1$s\"の依存関係がすでに存在します。"
#: app/views/administration.geomaps.edit.php:36
msgid "The following placeholders are supported:"
@@ -17819,12 +17823,12 @@ msgstr "トリガー\"%1$s\"はリンクされている他のテンプレート
#: include/triggers.inc.php:372 include/triggers.inc.php:433
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the non-existent trigger \"%2$s\" on the host \"%3$s\"."
-msgstr ""
+msgstr "ホスト\"%3$s\"上のトリガー\"%1$s\"を存在しないトリガー\"%2$s\"に依存させることができません。"
#: include/triggers.inc.php:373 include/triggers.inc.php:434
#, c-format
msgid "Trigger \"%1$s\" cannot depend on the non-existent trigger \"%2$s\" on the template \"%3$s\"."
-msgstr ""
+msgstr "テンプレート\"%3$s\"上のトリガー\"%1$s\"を存在しないトリガー\"%2$s\"に依存させることができません。"
#: include/classes/api/services/CTriggerGeneral.php:2728
#, c-format
diff --git a/ui/locale/ka/LC_MESSAGES/frontend.po b/ui/locale/ka/LC_MESSAGES/frontend.po
index 97eeb0512d6..de5d792cbbe 100644
--- a/ui/locale/ka/LC_MESSAGES/frontend.po
+++ b/ui/locale/ka/LC_MESSAGES/frontend.po
@@ -12807,6 +12807,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/ko/LC_MESSAGES/frontend.po b/ui/locale/ko/LC_MESSAGES/frontend.po
index 34b6745c200..db8f81bc25e 100644
--- a/ui/locale/ko/LC_MESSAGES/frontend.po
+++ b/ui/locale/ko/LC_MESSAGES/frontend.po
@@ -12807,6 +12807,10 @@ msgstr "Zabbix데이터베이스 안의 아이템수."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "서버에 송신되지 않은 프록시의 히스토리 아이템 수"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "from에서 to까지의 시간이 늦는 큐의 아이템수."
diff --git a/ui/locale/lt/LC_MESSAGES/frontend.po b/ui/locale/lt/LC_MESSAGES/frontend.po
index 0f47ea1e8fb..bf64719df59 100644
--- a/ui/locale/lt/LC_MESSAGES/frontend.po
+++ b/ui/locale/lt/LC_MESSAGES/frontend.po
@@ -13023,6 +13023,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/lv/LC_MESSAGES/frontend.po b/ui/locale/lv/LC_MESSAGES/frontend.po
index 25472efa2a5..819925c1483 100644
--- a/ui/locale/lv/LC_MESSAGES/frontend.po
+++ b/ui/locale/lv/LC_MESSAGES/frontend.po
@@ -13030,6 +13030,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/nb_NO/LC_MESSAGES/frontend.po b/ui/locale/nb_NO/LC_MESSAGES/frontend.po
index 0488156a6b3..7339e8766c5 100644
--- a/ui/locale/nb_NO/LC_MESSAGES/frontend.po
+++ b/ui/locale/nb_NO/LC_MESSAGES/frontend.po
@@ -12923,6 +12923,10 @@ msgstr "Antall elementer i Zabbix-databasen."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Antall elementer i proxy-historikk som ennå ikke er sendt til serveren"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Antall elementer i køen som er forsinket med fra til til sekunder, inkludert."
diff --git a/ui/locale/nl/LC_MESSAGES/frontend.po b/ui/locale/nl/LC_MESSAGES/frontend.po
index 4b8073875a7..39ceccf223d 100644
--- a/ui/locale/nl/LC_MESSAGES/frontend.po
+++ b/ui/locale/nl/LC_MESSAGES/frontend.po
@@ -12922,6 +12922,10 @@ msgstr "Aantal items in Zabbix database."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Aantal items in de wachtrij van de proxy die nog niet zijn verzonden naar de server"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/pl/LC_MESSAGES/frontend.po b/ui/locale/pl/LC_MESSAGES/frontend.po
index b327f0749f3..88f6b9f2d2b 100644
--- a/ui/locale/pl/LC_MESSAGES/frontend.po
+++ b/ui/locale/pl/LC_MESSAGES/frontend.po
@@ -13039,6 +13039,10 @@ msgstr "Liczba pozycji w bazie danych Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Liczba pozycji w historii proxy, które jeszcze nie zostały wysłane do serwera"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Liczba pozycji kolejki, które zostały opóźnione od \"od\" do \"do\" sekund włącznie."
diff --git a/ui/locale/pt_BR/LC_MESSAGES/frontend.po b/ui/locale/pt_BR/LC_MESSAGES/frontend.po
index 32552cff94d..c3b40123940 100644
--- a/ui/locale/pt_BR/LC_MESSAGES/frontend.po
+++ b/ui/locale/pt_BR/LC_MESSAGES/frontend.po
@@ -12927,6 +12927,10 @@ msgstr "Número de itens no banco de dados do Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Número de items no histórico do proxy que ainda não foram enviados para o servidor"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Número de itens na fila que estão atrasados em segundos."
diff --git a/ui/locale/pt_PT/LC_MESSAGES/frontend.po b/ui/locale/pt_PT/LC_MESSAGES/frontend.po
index d6d0ff3d851..e5456c7068e 100644
--- a/ui/locale/pt_PT/LC_MESSAGES/frontend.po
+++ b/ui/locale/pt_PT/LC_MESSAGES/frontend.po
@@ -12916,6 +12916,10 @@ msgstr "Número de itens na base de dados do Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Número de items no histórico do proxy que ainda não foram enviados para o servidor"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Número de itens na fila que estão atrasados em segundos."
diff --git a/ui/locale/ro/LC_MESSAGES/frontend.po b/ui/locale/ro/LC_MESSAGES/frontend.po
index 3e61089c4c4..cb24364dac6 100644
--- a/ui/locale/ro/LC_MESSAGES/frontend.po
+++ b/ui/locale/ro/LC_MESSAGES/frontend.po
@@ -13044,6 +13044,10 @@ msgstr "Număr de itemuri in baza de date Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Număr de itemuri în istoricul proxy care nu au fost încă trimise către server"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Număr de itemi in coadă care sunt întârziați de la pâna la secunde, inclusiv."
diff --git a/ui/locale/ru/LC_MESSAGES/frontend.po b/ui/locale/ru/LC_MESSAGES/frontend.po
index 0b17679740f..36291bfd18f 100644
--- a/ui/locale/ru/LC_MESSAGES/frontend.po
+++ b/ui/locale/ru/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-04-29 13:42+0000\n"
-"Last-Translator: Alexei Vladishev <alex@zabbix.com>\n"
+"PO-Revision-Date: 2022-06-02 13:08+0000\n"
+"Last-Translator: Marina <marina.generalova@zabbix.com>\n"
"Language-Team: Zabbix translation team\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
@@ -313,7 +313,7 @@ msgstr "(0 - использовать умолчание действия)"
#: include/views/configuration.hostgroups.list.php:36
msgid "(Only super admins can create groups)"
-msgstr "(Только супер администраторы могут создавать группы)"
+msgstr "(Только супер-администраторы могут создавать группы)"
#: app/partials/configuration.host.edit.html.php:275
#: app/views/popup.itemtestedit.view.php:241
@@ -13039,6 +13039,10 @@ msgstr "Количество элементов данных в базе дан
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Количество элементов данных в истории прокси, которые еще не были отправлены на сервер"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Количество элементов данных в очереди, которые задерживаются от и до секунд, включительно."
@@ -13352,11 +13356,11 @@ msgstr "Только услуги без тегов проблем"
#: include/classes/api/services/CDashboard.php:414
msgid "Only super admins can set dashboard owner."
-msgstr "Только супер администраторы могут задавать владельца ПАНЕЛИ."
+msgstr "Только супер-администраторы могут задавать владельца ПАНЕЛИ."
#: include/classes/api/services/CReport.php:334
msgid "Only super admins can set report owner."
-msgstr "Только супер администраторы могут задавать владельца отчета."
+msgstr "Только супер-администраторы могут задавать владельца отчета."
#: app/partials/administration.system.info.php:68
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
diff --git a/ui/locale/sk/LC_MESSAGES/frontend.po b/ui/locale/sk/LC_MESSAGES/frontend.po
index 75b03505544..0e3737cd0e7 100644
--- a/ui/locale/sk/LC_MESSAGES/frontend.po
+++ b/ui/locale/sk/LC_MESSAGES/frontend.po
@@ -13032,6 +13032,10 @@ msgstr "Počet položiek v Zabbix databáze."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Počet položiek v histórii proxy, ktoré ešte neboli odoslané serveru"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Počet položiek vo fronte, ktoré meškajú od do sekúnd vrátane."
diff --git a/ui/locale/sv_SE/LC_MESSAGES/frontend.po b/ui/locale/sv_SE/LC_MESSAGES/frontend.po
index 197dce79d9d..c4b220559a6 100644
--- a/ui/locale/sv_SE/LC_MESSAGES/frontend.po
+++ b/ui/locale/sv_SE/LC_MESSAGES/frontend.po
@@ -12915,6 +12915,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/locale/tr/LC_MESSAGES/frontend.po b/ui/locale/tr/LC_MESSAGES/frontend.po
index d68f6fef988..89a6705bd63 100644
--- a/ui/locale/tr/LC_MESSAGES/frontend.po
+++ b/ui/locale/tr/LC_MESSAGES/frontend.po
@@ -12923,6 +12923,10 @@ msgstr "Zabbix veritabanındaki öğe sayısı."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Henüz sunucuya gönderilmeyen vekil sunucu geçmişindeki öğelerin sayısı"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Kuyrukta, başlangıçtan belli saniye kadar ötelenen öğelerin sayısı, kapsayıcı."
diff --git a/ui/locale/uk/LC_MESSAGES/frontend.po b/ui/locale/uk/LC_MESSAGES/frontend.po
index 9fb8b663966..a916bd178c1 100644
--- a/ui/locale/uk/LC_MESSAGES/frontend.po
+++ b/ui/locale/uk/LC_MESSAGES/frontend.po
@@ -13033,6 +13033,10 @@ msgstr "Кількість елементів даних в базі даних
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Кількість елементів даних в історії проксі, які ще не були відправлені на сервер"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Кількість елементів даних в черзі, які затримується від і до секунд, включно."
diff --git a/ui/locale/vi/LC_MESSAGES/frontend.po b/ui/locale/vi/LC_MESSAGES/frontend.po
index 3af3f102fa4..46631529c61 100644
--- a/ui/locale/vi/LC_MESSAGES/frontend.po
+++ b/ui/locale/vi/LC_MESSAGES/frontend.po
@@ -12810,6 +12810,10 @@ msgstr "Số lượng item trong cơ sở dữ liệu Zabbix."
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "Số lượng itrm trong lịch sử proxy mà chưa được gửi đến máy chủ"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "Số lượng item trong hàng đợi mà đang bị trễ từ giây thứ, bao gồm."
diff --git a/ui/locale/zh_CN/LC_MESSAGES/frontend.po b/ui/locale/zh_CN/LC_MESSAGES/frontend.po
index de89c1d2ea4..fbd72fe39ff 100644
--- a/ui/locale/zh_CN/LC_MESSAGES/frontend.po
+++ b/ui/locale/zh_CN/LC_MESSAGES/frontend.po
@@ -12816,6 +12816,10 @@ msgstr "Zabbix 数据库中的监控项数量"
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr "系统代理程序历史数据中未发送给服务端的监控项数量"
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr "队列中延时秒数的项目的数量,包括."
diff --git a/ui/locale/zh_TW/LC_MESSAGES/frontend.po b/ui/locale/zh_TW/LC_MESSAGES/frontend.po
index ea1849a51ee..51f59eae73b 100644
--- a/ui/locale/zh_TW/LC_MESSAGES/frontend.po
+++ b/ui/locale/zh_TW/LC_MESSAGES/frontend.po
@@ -12814,6 +12814,10 @@ msgstr ""
msgid "Number of items in proxy history that are not yet sent to the server"
msgstr ""
+#: include/classes/data/CItemData.php:1668
+msgid "Number of items in the queue which are delayed by from to seconds, inclusive."
+msgstr ""
+
#: include/classes/data/CItemData.php:1685
msgid "Number of items in the queue which are delayed by from to to seconds, inclusive."
msgstr ""
diff --git a/ui/report2.php b/ui/report2.php
index ce1be9a9fbb..9833b989745 100644
--- a/ui/report2.php
+++ b/ui/report2.php
@@ -462,7 +462,7 @@ else {
]))->setWidth(ZBX_TEXTAREA_MEDIUM_WIDTH)
)
->addRow(
- (new CLabel(_('Hosts'), 'filter_hostid__ms')),
+ (new CLabel(_('Hosts'), 'filter_hostids__ms')),
(new CMultiSelect([
'name' => 'filter_hostids[]',
'object_name' => 'hosts',
diff --git a/ui/tests/api_json/testAPIInfo.php b/ui/tests/api_json/testAPIInfo.php
index 42b6e482837..b1a2870c494 100644
--- a/ui/tests/api_json/testAPIInfo.php
+++ b/ui/tests/api_json/testAPIInfo.php
@@ -36,6 +36,6 @@ class testAPIInfo extends CAPITest {
$this->disableAuthorization();
$result = $this->call('apiinfo.version', []);
- $this->assertSame('6.0.5', $result['result']);
+ $this->assertSame('6.0.6', $result['result']);
}
}
diff --git a/ui/tests/include/CIntegrationTest.php b/ui/tests/include/CIntegrationTest.php
index 3bcc78155f0..3db477301fb 100644
--- a/ui/tests/include/CIntegrationTest.php
+++ b/ui/tests/include/CIntegrationTest.php
@@ -361,6 +361,25 @@ class CIntegrationTest extends CAPITest {
}
/**
+ * Checks absence of pid file after kill.
+ *
+ * @param string $component component name
+ *
+ */
+ private static function checkPidKilled($component) {
+
+ for ($r = 0; $r < self::WAIT_ITERATIONS; $r++) {
+ if (!file_exists(self::getPidPath($component))) {
+ return true;
+ }
+
+ sleep(self::WAIT_ITERATION_DELAY);
+ }
+
+ return false;
+ }
+
+ /**
* Wait for component to stop.
*
* @param string $component component name
@@ -370,12 +389,44 @@ class CIntegrationTest extends CAPITest {
protected static function waitForShutdown($component) {
self::validateComponent($component);
- for ($r = 0; $r < self::WAIT_ITERATIONS; $r++) {
- if (!file_exists(self::getPidPath($component))) {
+ if (self::checkPidKilled($component)) {
+ return;
+ }
+
+ $pid = @file_get_contents(self::getPidPath($component));
+
+ $pids = explode("\n", shell_exec('pgrep -P '.$pid));
+ $pids_count = count($pids);
+ $iterations = 0;
+
+ do {
+ for ($i = count($pids) -1; $i >= 0; $i--) {
+ $child_pid = $pids[$i];
+
+ if (is_numeric($child_pid) && posix_kill($child_pid, 0)) {
+ posix_kill($child_pid, SIGKILL);
+ sleep(10 * self::WAIT_ITERATION_DELAY);
+
+ if (!posix_kill($child_pid, 0)) {
+ break;
+ }
+ }
+ }
+
+ if (self::checkPidKilled($component)) {
return;
}
- sleep(self::WAIT_ITERATION_DELAY);
+ $pids = explode("\n", shell_exec('pgrep -P '.$pid));
+ $iterations++;
+ } while (count($pids) > 0 && $iterations < $pids_count );
+
+ if (is_numeric($pid) && posix_kill($pid, 0)) {
+ posix_kill($pid, SIGKILL);
+
+ if (self::checkPidKilled($component)) {
+ return;
+ }
}
throw new Exception('Failed to wait for component "'.$component.'" to stop.');
diff --git a/ui/tests/include/helpers/CDBHelper.php b/ui/tests/include/helpers/CDBHelper.php
index 2ba1a060c1d..59642ba3075 100644
--- a/ui/tests/include/helpers/CDBHelper.php
+++ b/ui/tests/include/helpers/CDBHelper.php
@@ -263,22 +263,50 @@ class CDBHelper {
if ($DB['PASSWORD'] !== '') {
putenv('PGPASSWORD='.$DB['PASSWORD']);
}
- $server = $DB['SERVER'] !== '' ? ' -h'.$DB['SERVER'] : '';
- $db_name = $DB['DATABASE'];
+
+ $cmd = 'pg_dump';
+
+ if ($DB['SERVER'] !== 'v') {
+ $cmd .= ' --host='.$DB['SERVER'];
+ }
+
+ if ($DB['PORT'] !== '' && $DB['PORT'] != 0) {
+ $cmd .= ' --port='.$DB['PORT'];
+ }
+
$file = PHPUNIT_COMPONENT_DIR.$DB['DATABASE'].$suffix.'.dump';
+ $cmd .= ' --username='.$DB['USER'].' --format=d --jobs=5 --dbname='.$DB['DATABASE'];
+ $cmd .= ' --table='.implode(' --table=', $tables).' --file='.$file;
- exec('pg_dump'.$server.' -U'.$DB['USER'].' -Fd -j5 -t'.implode(' -t', $tables).' '.$db_name.' -f'.$file,
- $output, $result_code
- );
+ exec($cmd, $output, $result_code);
if ($result_code != 0) {
throw new Exception('Failed to backup "'.implode('", "', $top_tables).'".');
}
}
else {
- foreach ($tables as $table) {
- DBexecute('DROP TABLE IF EXISTS '.$table.$suffix);
- DBexecute('CREATE TABLE '.$table.$suffix.' AS SELECT * FROM '.$table);
+ if ($DB['PASSWORD'] !== '') {
+ putenv('MYSQL_PWD='.$DB['PASSWORD']);
+ }
+
+ $cmd = 'mysqldump';
+
+ if ($DB['SERVER'] !== 'v') {
+ $cmd .= ' --host='.$DB['SERVER'];
+ }
+
+ if ($DB['PORT'] !== '' && $DB['PORT'] != 0) {
+ $cmd .= ' --port='.$DB['PORT'];
+ }
+
+ $file = PHPUNIT_COMPONENT_DIR.$DB['DATABASE'].$suffix.'.dump.gz';
+ $cmd .= ' --user='.$DB['USER'].' --add-drop-table '.$DB['DATABASE'];
+ $cmd .= ' '.implode(' ', $tables).' | gzip -c > '.$file;
+
+ exec($cmd, $output, $result_code);
+
+ if ($result_code != 0) {
+ throw new Exception('Failed to backup "'.implode('", "', $top_tables).'".');
}
}
}
@@ -301,39 +329,75 @@ class CDBHelper {
if ($DB['PASSWORD'] !== '') {
putenv('PGPASSWORD='.$DB['PASSWORD']);
}
- $server = $DB['SERVER'] !== '' ? ' -h'.$DB['SERVER'] : '';
- $db_name = $DB['DATABASE'];
+
+ $cmd = 'pg_restore';
+
+ if ($DB['SERVER'] !== 'v') {
+ $cmd .= ' --host='.$DB['SERVER'];
+ }
+
+ if ($DB['PORT'] !== '' && $DB['PORT'] != 0) {
+ $cmd .= ' --port='.$DB['PORT'];
+ }
+
$file = PHPUNIT_COMPONENT_DIR.$DB['DATABASE'].$suffix.'.dump';
+ $cmd .= ' --username='.$DB['USER'].' --format=d --jobs=5 --clean --dbname='.$DB['DATABASE'];
+ $cmd .= ' '.$file;
- exec('pg_restore'.$server.' -U'.$DB['USER'].' -Fd -j5 --clean -d '.$db_name.' '.$file, $output,
- $result_code
- );
+ exec($cmd, $output, $result_code);
if ($result_code != 0) {
throw new Exception('Failed to restore "'.$file.'".');
}
- exec('rm -rf '.$file);
+ if (strstr(strtolower(PHP_OS), 'win') !== false) {
+ $file = str_replace('/', '\\', $file);
+ exec('rd '.$file.' /q /s');
+ }
+ else {
+ exec('rm -rf '.$file, $output, $result_code);
+ }
if ($result_code != 0) {
throw new Exception('Failed to remove "'.$file.'".');
}
}
else {
- $result = DBselect('SELECT @@unique_checks,@@foreign_key_checks');
- $row = DBfetch($result);
- DBexecute('SET unique_checks=0,foreign_key_checks=0');
+ if ($DB['PASSWORD'] !== '') {
+ putenv('MYSQL_PWD='.$DB['PASSWORD']);
+ }
+
+ $cmd = 'mysql';
+
+ if ($DB['SERVER'] !== 'v') {
+ $cmd .= ' --host='.$DB['SERVER'];
+ }
- foreach (array_reverse($tables) as $table) {
- DBexecute('DELETE FROM '.$table);
+ if ($DB['PORT'] !== '' && $DB['PORT'] != 0) {
+ $cmd .= ' --port='.$DB['PORT'];
}
- foreach ($tables as $table) {
- DBexecute('INSERT INTO '.$table.' SELECT * FROM '.$table.$suffix);
- DBexecute('DROP TABLE '.$table.$suffix);
+ $file = PHPUNIT_COMPONENT_DIR.$DB['DATABASE'].$suffix.'.dump.gz';
+ $cmd .= ' --user='.$DB['USER'].' '.$DB['DATABASE'];
+ $cmd = 'gzip -cd '.$file.' | '.$cmd;
+
+ exec($cmd, $output, $result_code);
+
+ if ($result_code != 0) {
+ throw new Exception('Failed to restore "'.$file.'".');
+ }
+
+ if (strstr(strtolower(PHP_OS), 'win') !== false) {
+ $file = str_replace('/', '\\', $file);
+ exec('del '.$file);
+ }
+ else {
+ exec('rm -rf '.$file, $output, $result_code);
}
- DBexecute('SET foreign_key_checks='.$row['@@foreign_key_checks'].',unique_checks='.$row['@@unique_checks']);
+ if ($result_code != 0) {
+ throw new Exception('Failed to remove "'.$file.'".');
+ }
}
}
diff --git a/ui/tests/include/web/CElement.php b/ui/tests/include/web/CElement.php
index 1fd95f14912..637263bd8e2 100644
--- a/ui/tests/include/web/CElement.php
+++ b/ui/tests/include/web/CElement.php
@@ -740,4 +740,22 @@ class CElement extends CBaseElement implements IWaitable {
public function scrollToTop() {
CElementQuery::getDriver()->executeScript('arguments[0].scrollTo(0, 0)', [$this]);
}
+
+ /**
+ * Check presence of the class(es).
+ *
+ * @param string|array $class class or classes to be present.
+ *
+ * @return boolean
+ */
+ function hasClass($class) {
+ $attribute = parent::getAttribute('class');
+ $classes = ($attribute !== null) ? explode(' ', $attribute) : [];
+
+ if (!is_array($class)) {
+ $class = [$class];
+ }
+
+ return (count(array_diff($class, $classes)) === 0);
+ }
}
diff --git a/ui/tests/integration/testAgentItems.php b/ui/tests/integration/testAgentItems.php
index 7b08086f8ec..846dcac65e8 100644
--- a/ui/tests/integration/testAgentItems.php
+++ b/ui/tests/integration/testAgentItems.php
@@ -37,6 +37,7 @@ class testAgentItems extends CIntegrationTest {
const TEST_LINK_BASE_NAME = 'test_link';
const TEST_FILE_NAME = '/tmp/'.self::TEST_FILE_BASE_NAME;
const TEST_LINK_NAME = '/tmp/'.self::TEST_LINK_BASE_NAME;
+ const TEST_LINK_NAME2 = '/tmp/'.self::TEST_LINK_BASE_NAME.'2';
const TEST_DIR_NAME = '/tmp/dir';
const TEST_DIR1_NAME = 'dir1';
const TEST_DIR_DIR1_NAME = self::TEST_DIR_NAME.'/'.self::TEST_DIR1_NAME;
@@ -269,7 +270,7 @@ class testAgentItems extends CIntegrationTest {
]
],
[
- 'key' => 'vfs.file.get['.self::TEST_LINK_NAME.']',
+ 'key' => 'vfs.file.get['.self::TEST_LINK_NAME2.']',
'type' => ITEM_TYPE_ZABBIX,
'component' => self::COMPONENT_AGENT2,
'valueType' => ITEM_VALUE_TYPE_TEXT,
@@ -277,19 +278,19 @@ class testAgentItems extends CIntegrationTest {
'fields_exec' => ['permissions', 'user', 'group', 'uid', 'gid', 'access', 'change'],
'result' => [
'type' => 'sym',
- 'permissions' => 'stat -c %04a '.self::TEST_LINK_NAME,
- 'user' => 'stat -c %U '.self::TEST_LINK_NAME,
- 'group' => 'stat -c %G '.self::TEST_LINK_NAME,
- 'uid' => 'stat -c %u '.self::TEST_LINK_NAME,
- 'gid' => 'stat -c %g '.self::TEST_LINK_NAME,
+ 'permissions' => 'stat -c %04a '.self::TEST_LINK_NAME2,
+ 'user' => 'stat -c %U '.self::TEST_LINK_NAME2,
+ 'group' => 'stat -c %G '.self::TEST_LINK_NAME2,
+ 'uid' => 'stat -c %u '.self::TEST_LINK_NAME2,
+ 'gid' => 'stat -c %g '.self::TEST_LINK_NAME2,
'size' => 14,
'time' => [
'modify' => '2021-03-29T14:59:09+03:00'
],
'timestamp' => [
- 'access' => 'stat -c %X '.self::TEST_LINK_NAME,
+ 'access' => 'stat -c %X '.self::TEST_LINK_NAME2,
'modify' => self::TEST_MOD_TIMESTAMP,
- 'change' => 'stat -c %Z '.self::TEST_LINK_NAME
+ 'change' => 'stat -c %Z '.self::TEST_LINK_NAME2
]
]
],
@@ -577,11 +578,15 @@ class testAgentItems extends CIntegrationTest {
$this->assertTrue(@file_put_contents(self::TEST_DIR_FILE_NAME, "1st line\n2nd line\n3rd line\n") !== false);
$this->assertTrue(@touch(self::TEST_DIR_FILE_NAME, self::TEST_MOD_TIMESTAMP));
- // Write test symlink
+ // Write test symlinks
if (!file_exists(self::TEST_LINK_NAME)) {
$this->assertTrue(@symlink(self::TEST_FILE_NAME, self::TEST_LINK_NAME));
}
$this->assertTrue(@exec('touch -h -a -m -t 202103291459.09 '.self::TEST_LINK_NAME) !== false);
+ if (!file_exists(self::TEST_LINK_NAME2)) {
+ $this->assertTrue(@symlink(self::TEST_FILE_NAME, self::TEST_LINK_NAME2));
+ }
+ $this->assertTrue(@exec('touch -h -a -m -t 202103291459.09 '.self::TEST_LINK_NAME2) !== false);
if (!file_exists(self::TEST_DIR_LINK_NAME)) {
$this->assertTrue(@symlink(self::TEST_DIR_FILE_NAME, self::TEST_DIR_LINK_NAME));
}
diff --git a/ui/tests/integration/testGoAgentDataCollection.php b/ui/tests/integration/testGoAgentDataCollection.php
index 6ab9c14306c..907ecb321e3 100644
--- a/ui/tests/integration/testGoAgentDataCollection.php
+++ b/ui/tests/integration/testGoAgentDataCollection.php
@@ -29,7 +29,7 @@ class testGoAgentDataCollection extends CIntegrationTest {
const COMPARE_AVERAGE = 0;
const COMPARE_LAST = 1;
- const OFFSET_MAX = 10;
+ const OFFSET_MAX = 20;
private static $hostids = [];
private static $itemids = [];
@@ -448,7 +448,7 @@ class testGoAgentDataCollection extends CIntegrationTest {
}
// Delay to ensure that all metrics were collected.
- sleep(90);
+ sleep(110);
}
/**
@@ -553,9 +553,10 @@ class testGoAgentDataCollection extends CIntegrationTest {
case ITEM_VALUE_TYPE_FLOAT:
case ITEM_VALUE_TYPE_UINT64:
+ $diff_values = [];
+
if (CTestArrayHelper::get($item, 'compareType', self::COMPARE_LAST) === self::COMPARE_AVERAGE) {
$value = [];
- $diff_values = [];
foreach ([self::COMPONENT_AGENT, self::COMPONENT_AGENT2] as $component) {
// Calculate offset between Agent and Agent2 result arrays
@@ -579,19 +580,27 @@ class testGoAgentDataCollection extends CIntegrationTest {
for ($i = 0; $i < self::OFFSET_MAX; $i++) {
$a = $value[self::COMPONENT_AGENT][$i];
$b = $value[self::COMPONENT_AGENT2][$i];
- $diff_values[$i] = abs(abs($a) - abs($b));
+ $diff_values[$i] = abs($a - $b);
}
$offset = array_search(min($diff_values), $diff_values);
$a = $value[self::COMPONENT_AGENT][$offset];
$b = $value[self::COMPONENT_AGENT2][$offset];
+
+ $diff = abs($a - $b);
}
else {
- $a = end($values[self::COMPONENT_AGENT]);
- $b = end($values[self::COMPONENT_AGENT2]);
+ $records = count($values[self::COMPONENT_AGENT]);
+ for ($i = 0; $i < self::OFFSET_MAX; $i++) {
+ $slice = array_slice($values[self::COMPONENT_AGENT], 0, $records - $i);
+ $a = end($slice);
+ $b = end($values[self::COMPONENT_AGENT2]);
+ $diff_values[$i] = abs($a - $b);
+ }
+
+ $diff = min($diff_values);
}
- $diff = abs(abs($a) - abs($b));
$this->assertTrue($diff < $item['threshold'], 'Difference for '.$item['key'].
' is more than defined threshold '.$diff.' > '.$item['threshold']
);
diff --git a/ui/tests/integration/testItemState.php b/ui/tests/integration/testItemState.php
index 7b9ef9c0cc8..25c70bf4d49 100644
--- a/ui/tests/integration/testItemState.php
+++ b/ui/tests/integration/testItemState.php
@@ -137,11 +137,12 @@ class testItemState extends CIntegrationTest {
return [
self::COMPONENT_SERVER => [
'DebugLevel' => 4,
- 'LogFileSize' => 20
+ 'LogFileSize' => 20,
+ 'ListenPort' => self::getConfigurationValue(self::COMPONENT_SERVER, 'ListenPort', 10051)
],
self::COMPONENT_AGENT => [
'Hostname' => 'test_host',
- 'ServerActive' => '127.0.0.1:'.self::getConfigurationValue(self::COMPONENT_SERVER, 'ListenPort'),
+ 'ServerActive' => '127.0.0.1:'.self::getConfigurationValue(self::COMPONENT_SERVER, 'ListenPort', 10051),
'RefreshActiveChecks' => self::REFRESH_ACT_CHKS_INTERVAL,
'BufferSend' => 1
]
diff --git a/ui/tests/selenium/testFormSetup.php b/ui/tests/selenium/testFormSetup.php
index e8023496e8d..147f4fe055b 100644
--- a/ui/tests/selenium/testFormSetup.php
+++ b/ui/tests/selenium/testFormSetup.php
@@ -326,7 +326,7 @@ class testFormSetup extends CWebTest {
// Check screenshot of the Pre-installation summary section.
$skip_fields = [];
- foreach(['Database server', 'Database name'] as $skip_field) {
+ foreach(['Database server', 'Database port', 'Database name'] as $skip_field) {
$xpath = 'xpath://span[text()='.CXPathHelper::escapeQuotes($skip_field).']/../../div[@class="table-forms-td-right"]';
$skip_fields[] = $this->query($xpath)->one();
}
diff --git a/ui/tests/selenium/testPageAdministrationGeneralModules.php b/ui/tests/selenium/testPageAdministrationGeneralModules.php
index e81b8a32477..fd504126a4e 100644
--- a/ui/tests/selenium/testPageAdministrationGeneralModules.php
+++ b/ui/tests/selenium/testPageAdministrationGeneralModules.php
@@ -582,7 +582,7 @@ class testPageAdministrationGeneralModules extends CWebTest {
if (CTestArrayHelper::get($entry, 'check_disabled', true)) {
$this->page->open('zabbix.php?action='.$entry['action'])->waitUntilReady();
$message = CMessageElement::find()->one();
- $this->assertStringContainsString('Class not found for action '.$entry['action'], $message->getText());
+ $this->assertStringContainsString('Class not found', $message->getText());
$this->page->open('zabbix.php?action=module.list');
}
}
diff --git a/ui/tests/selenium/testUrlParameters.php b/ui/tests/selenium/testUrlParameters.php
index a084df06eef..c2df4a4ae07 100644
--- a/ui/tests/selenium/testUrlParameters.php
+++ b/ui/tests/selenium/testUrlParameters.php
@@ -803,9 +803,7 @@ class testUrlParameters extends CLegacyWebTest {
],
[
'url' => 'hostinventoriesoverview.php?filter_groups%5B%5D=9999999&filter_groupby=&filter_set=1',
- 'text_present' => [
- 'No permissions to referred object or it does not exist!'
- ]
+ 'text_present' => 'Host inventory overview'
],
[
'url' => 'hostinventoriesoverview.php',
diff --git a/ui/tests/templates/zabbix.conf.php b/ui/tests/templates/zabbix.conf.php
index 23eb8a125a5..75ee9c84db3 100644
--- a/ui/tests/templates/zabbix.conf.php
+++ b/ui/tests/templates/zabbix.conf.php
@@ -4,7 +4,7 @@ global $DB;
$DB['TYPE'] = '{DBTYPE}';
$DB['SERVER'] = '{DBHOST}';
-$DB['PORT'] = '0';
+$DB['PORT'] = '{DBPORT}';
$DB['DATABASE'] = '{DBNAME}';
$DB['USER'] = '{DBUSER}';
$DB['PASSWORD'] = '{DBPASSWORD}';