Source
this.hidden = toggle ? this.hidden.not(jQuery(':input', value)) : this.hidden.add(jQuery(':input', value));
/*
** 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 globalAllObjForViewSwitcher = {};
var CViewSwitcher = function(objId, objAction, confData, disableDDItems) {
this.mainObj = document.getElementById(objId);
this.objAction = objAction;
if (is_null(this.mainObj)) {
throw('ViewSwitcher error: main object not found!');
}
this.depObjects = {};
if (disableDDItems) {
this.disableDDItems = disableDDItems;
}
for (var key in confData) {
if (empty(confData[key])) {
continue;
}
this.depObjects[key] = {};
for (var vKey in confData[key]) {
if (empty(confData[key][vKey])) {
continue;
}
if (is_string(confData[key][vKey])) {
this.depObjects[key][vKey] = {'id': confData[key][vKey]};
}
else if (is_object(confData[key][vKey])) {
this.depObjects[key][vKey] = confData[key][vKey];
}
}
}
jQuery(this.mainObj).on(objAction, this.rebuildView.bindAsEventListener(this));
globalAllObjForViewSwitcher[objId] = this;
this.hideAllObjs();
this.rebuildView();
};
CViewSwitcher.prototype = {
mainObj: null,
depObjects: {},
lastValue: null,
rebuildView: function(e) {
var myValue = this.objValue(this.mainObj);
// Enable previously disabled dropdown items.
if (this.disableDDItems && this.disableDDItems[this.lastValue]) {
for (var DDi in this.disableDDItems[this.lastValue]) {
if (jQuery('#' + DDi).length == 0) {
continue;
}
jQuery('#' + DDi).get(0).getOptions().map((opt) => opt.disabled = false);
}
}
// Disable dropdown items.
if (this.disableDDItems && this.disableDDItems[myValue]) {
for (var DDi in this.disableDDItems[myValue]) {
var DD = jQuery('#' + DDi);
if (DD.length == 0) {
continue;
}
for (var Oi in this.disableDDItems[myValue][DDi]) {
if (DD.get(0).getOptionByValue(this.disableDDItems[myValue][DDi][Oi]) === null) {
continue;
}
DD.get(0).getOptionByValue(this.disableDDItems[myValue][DDi][Oi]).disabled = true;
}