-
Type:
Problem report
-
Resolution: Duplicate
-
Priority:
Trivial
-
None
-
Affects Version/s: 7.0.23rc1, 7.4.7rc1, 8.0.0alpha2
-
Component/s: Frontend (F)
-
None
Precondition:
- use data-loader to generate 1000 host groups and 1000 hosts.
- Set User settings => rows per page = 1000
Steps to reproduce:
- Open Data collection => Hosts page
- Select all hosts
- Click on "mass update" button
- Add 1000 host groups e.g.
- Press "update" button
- Check console
Result: Infinite updating and syntax error appears.
function =>
function submitPopup(overlay) {
const form = document.querySelector('#massupdate-form');
const action = form.querySelector('#action').value;
const location_url = form.querySelector('#location_url').value;
let macros_removeall_warning = (form.querySelector('#visible_macros:checked')
&& form.querySelector('[name="mass_update_macros"][value="3"]:checked')
&& (form.querySelector('#macros_remove_all').checked === false)
);
let valuemaps_removeall_warning = (form.querySelector('#visible_valuemaps:checked')
&& form.querySelector('[name="valuemap_massupdate"][value="3"]:checked')
&& (form.querySelector('#valuemap_remove_all').checked === false)
);
let warning_message = '';
if (macros_removeall_warning) {
warning_message = "Please confirm that you want to remove all macros.";
}
else if (valuemaps_removeall_warning) {
warning_message = "Please confirm that you want to remove all value mappings.";
}
if (warning_message !== '') {
overlayDialogue({
'title': "Warning",
'type': 'popup',
'class': 'position-middle',
'content': $('<span>').text(warning_message),
'buttons': [
{
'title': "Ok",
'focused': true,
'action': () => {}
}
]
}, overlay.$btn_submit);
overlay.unsetLoading();
return false;
}
if (form.querySelector('#visible_valuemaps:checked')) {
$(form).trimValues(['[name^="valuemap_rename["]']);
}
if (form.querySelector('#visible_tags:checked')) {
$(form).trimValues(['[name^="tags"][name$="[tag]"]', '[name^="tags"][name$="[value]"]']);
}
if (action == 'popup.massupdate.host') {
// Depending on checkboxes, create a value for hidden field 'tls_accept'.
let tls_accept = 0x00;
if (form.querySelector('#tls_in_none') && form.querySelector('#tls_in_none').checked) {
tls_accept |= 1;
}
if (form.querySelector('#tls_in_psk') && form.querySelector('#tls_in_psk').checked) {
tls_accept |= 2;
}
if (form.querySelector('#tls_in_cert') && form.querySelector('#tls_in_cert').checked) {
tls_accept |= 4;
}
form.querySelector('#tls_accept').value = tls_accept;
}
// Remove error message.
overlay.$dialogue.find('.msg-bad').remove();
const url = new Curl('zabbix.php');
url.setArgument('action', action);
url.setArgument('output', 'ajax');
fetch(url.getUrl(), {
method: 'post',
headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
body: $(form).serialize()
})
.then((response) => response.json())
.then((response) => {
if ('script_inline' in response) {
$('head').append(response.script_inline);
}
if ('error' in response) {
overlay.unsetLoading();
const message_box = makeMessageBox('bad', response.error.messages, response.error.title);
message_box.insertBefore(form);
}
else if (action === 'item.prototype.massupdate' || action === 'item.massupdate') {
// Item and item prototype lists javascript handles successful update.
overlayDialogueDestroy(overlay.dialogueid);
overlay.$dialogue[0].dispatchEvent(new CustomEvent('dialogue.submit', {detail: response}));
}
else {
postMessageOk(response.title);
if ('messages' in response) {
postMessageDetails('success', response.messages);
}
overlayDialogueDestroy(overlay.dialogueid);
location.href = location_url;
}
});
}
Expected: proper error handling is missing.
- duplicates
-
ZBX-22109 Message text when updating 999+ problem events
-
- Reopened
-