You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.7 KiB

1 year ago
<?php
/*
** Zabbix
** Copyright (C) 2001-2023 Zabbix SIA
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** 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 General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
/**
* @var CView $this
*/
?>
window.popup_generic = {
init() {
cookie.init();
chkbxRange.init();
},
setPopupOpenerFieldValues(entries) {
Object.entries(entries).forEach(([element_id, set_value]) => {
const target_element = document.getElementById(element_id);
if (target_element !== null) {
target_element.value = set_value;
}
});
},
initGroupsFilter() {
var overlay = overlays_stack.end();
jQuery('.multiselect', overlay.$dialogue).each(function (i, ms) {
jQuery(ms).on('change', {overlay: overlay}, function (e) {
const groups = jQuery(this).multiSelect('getData').map((item) => item.id);
const parameters = groups.length
? {groupid: groups[0]}
: {filter_groupid_rst: 1, group: undefined, groupid: undefined};
PopUp(e.data.overlay.action, {...e.data.overlay.options, ...parameters}, {
dialogueid: e.data.overlay.dialogueid
});
});
});
},
initTemplategroupsFilter() {
const overlay = overlays_stack.end();
jQuery('.multiselect', overlay.$dialogue).each(function (i, ms) {
jQuery(ms).on('change', {overlay: overlay}, function (e) {
const groups = jQuery(this).multiSelect('getData').map((item) => item.id);
const parameters = groups.length
? {templategroupid: groups[0]}
: {filter_groupid_rst: 1, templategroup: undefined, templategroupid: undefined};
PopUp(e.data.overlay.action, {...e.data.overlay.options, ...parameters}, {
dialogueid: e.data.overlay.dialogueid
});
});
});
},
initHostsFilter() {
var overlay = overlays_stack.end();
jQuery('.multiselect', overlay.$dialogue).each(function (i, ms) {
jQuery(ms).on('change', {overlay: overlay}, function (e) {
const hosts = jQuery(this).multiSelect('getData').map((item) => item.id);
const parameters = hosts.length
? {hostid: hosts[0]}
: {filter_hostid_rst: 1, host: undefined, hostid: undefined, host_pattern: undefined};
PopUp(e.data.overlay.action, {...e.data.overlay.options, ...parameters}, {
dialogueid: e.data.overlay.dialogueid
});
});
});
},
initTemplatesFilter() {
const overlay = overlays_stack.end();
jQuery('.multiselect', overlay.$dialogue).each(function (i, ms) {
jQuery(ms).on('change', {overlay: overlay}, function (e) {
const templates = jQuery(this).multiSelect('getData').map((item) => item.id);
const parameters = templates.length
? {templateid: templates[0]}
: {filter_templateid_rst: 1, templateid: undefined};
PopUp(e.data.overlay.action, {...e.data.overlay.options, ...parameters}, {
dialogueid: e.data.overlay.dialogueid
});
});
});
},
initHelpItems() {
$('#itemtype').on('change', (e) => {
reloadPopup(e.target.closest('form'));
});
},
closePopup(e) {
e.preventDefault();
const $sender = jQuery(e.target).removeAttr('onclick');
overlayDialogueDestroy($sender.closest('[data-dialogueid]').attr('data-dialogueid'));
}
};