Source
xxxxxxxxxx
<?php declare(strict_types = 0);
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
/**
* @var CView $this
*/
?>
<script>
const view = {
enable_url: null,
disable_url: null,
delete_url: null,
init({enable_url, disable_url, delete_url}) {
this.enable_url = enable_url;
this.disable_url = disable_url;
this.delete_url = delete_url;
this.initActionButtons();
},
initActionButtons() {
document.addEventListener('click', (e) => {
if (e.target.classList.contains('js-create-hostgroup')) {
this.edit();
}
else if (e.target.classList.contains('js-edit-hostgroup')) {
e.preventDefault();
this.edit({groupid: e.target.dataset.groupid});
}
else if (e.target.classList.contains('js-massenable-hostgroup')) {
this.enable(e.target, Object.keys(chkbxRange.getSelectedIds()));
}
else if (e.target.classList.contains('js-massdisable-hostgroup')) {
this.disable(e.target, Object.keys(chkbxRange.getSelectedIds()));
}
else if (e.target.classList.contains('js-massdelete-hostgroup')) {
this.delete(e.target, Object.keys(chkbxRange.getSelectedIds()));
}
});
},
edit(parameters = {}) {
const original_url = location.href;
const overlay = PopUp('popup.hostgroup.edit', parameters, {
dialogueid: 'hostgroup_edit',
dialogue_class: 'modal-popup-static',
prevent_navigation: true
});
overlay.$dialogue[0].addEventListener('dialogue.submit', (e) => this._reload(e.detail));
overlay.$dialogue[0].addEventListener('dialogue.close', () => {
history.replaceState({}, '', original_url);
}, {once: true});
},
enable(target, groupids) {
const confirmation = <?= json_encode(_('Enable selected hosts?')) ?>;
if (!window.confirm(confirmation)) {
return;
}
this._post(target, groupids, this.enable_url);
},
disable(target, groupids) {
const confirmation = <?= json_encode(_('Disable hosts in the selected host groups?')) ?>;
if (!window.confirm(confirmation)) {
return;
}
this._post(target, groupids, this.disable_url);
},
delete(target, groupids) {