init({checkbox_hash, checkbox_object, context, token, form_name}) {
this.checkbox_hash = checkbox_hash;
this.checkbox_object = checkbox_object;
this.form = document.forms[form_name];
if (this.context === 'host') {
document.getElementById('filter_state').addEventListener('change', e => this.updateFieldsVisibility());
document.querySelector('.js-massexecute-item')
.addEventListener('click', (e) => this.executeNow(e.target));
document.querySelectorAll('#filter_lifetime_type, #filter_enabled_lifetime_type').forEach(element => {
element.addEventListener('change', () => this.updateLostResourcesFields());
this.updateLostResourcesFields();
this.form.addEventListener('click', (e) => {
if (target.classList.contains('js-update-item')) {
this.editItem(target, target.dataset);
else if (target.classList.contains('js-edit-host')) {
this.editHost(e, target.dataset.hostid);
else if (target.classList.contains('js-edit-template')) {
this.editTemplate(e, target.dataset.hostid);
updateFieldsVisibility() {
const disabled = document.querySelector('[name="filter_state"]:checked').value != -1;
document.querySelectorAll('[name="filter_status"]').forEach(radio => radio.disabled = disabled);
updateLostResourcesFields() {
const lifetime_type = document.querySelector('[name="filter_lifetime_type"]:checked').value;
const enabled_lifetime_type = document.querySelector('[name="filter_enabled_lifetime_type"]:checked').value;
document.querySelectorAll('[name="filter_enabled_lifetime_type"]').forEach(radio =>
radio.disabled = lifetime_type == <?= ZBX_LLD_DELETE_IMMEDIATELY ?>
document.getElementById('filter_lifetime').disabled = lifetime_type != <?= ZBX_LLD_DELETE_AFTER ?>;
document.getElementById('filter_enabled_lifetime').disabled =
enabled_lifetime_type != <?= ZBX_LLD_DISABLE_AFTER ?>
|| lifetime_type == <?= ZBX_LLD_DELETE_IMMEDIATELY ?>;
const overlay = PopUp('item.edit', data, {
dialogue_class: 'modal-popup-large',