1<?php 2/* 3** Zabbix 4** Copyright (C) 2001-2021 Zabbix SIA 5** 6** This program is free software; you can redistribute it and/or modify 7** it under the terms of the GNU General Public License as published by 8** the Free Software Foundation; either version 2 of the License, or 9** (at your option) any later version. 10** 11** This program is distributed in the hope that it will be useful, 12** but WITHOUT ANY WARRANTY; without even the implied warranty of 13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14** GNU General Public License for more details. 15** 16** You should have received a copy of the GNU General Public License 17** along with this program; if not, write to the Free Software 18** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19**/ 20 21 22$widget = (new CWidget())->setTitle(_('Dashboard')); 23 24// create form 25$form = (new CForm()) 26 ->setName('dashconf') 27 ->setId('dashform') 28 ->addVar('filterEnable', $this->data['isFilterEnable']); 29 30// create form list 31$form_list = new CFormList('dashconfFormList'); 32 33// append filter status to form list 34if ($this->data['isFilterEnable']) { 35 $filterStatusSpan = (new CSpan(_('Enabled'))) 36 ->addClass(ZBX_STYLE_LINK_ACTION) 37 ->addClass(ZBX_STYLE_GREEN) 38 ->onClick("create_var('".$form->getName()."', 'filterEnable', 0, true);") 39 ->setAttribute('tabindex', 0); 40} 41else { 42 $filterStatusSpan = (new CSpan(_('Disabled'))) 43 ->addClass(ZBX_STYLE_LINK_ACTION) 44 ->addClass(ZBX_STYLE_RED) 45 ->onClick("$('dashform').enable(); create_var('".$form->getName()."', 'filterEnable', 1, true);") 46 ->setAttribute('tabindex', 0); 47} 48$form_list->addRow(_('Dashboard filter'), $filterStatusSpan); 49 50// append host groups to form list 51$hostGroupsComboBox = new CComboBox('grpswitch', $this->data['grpswitch'], 'submit()', [ 52 0 => _('All'), 53 1 => _('Selected') 54]); 55if (!$this->data['isFilterEnable']) { 56 $hostGroupsComboBox->setAttribute('disabled', 'disabled'); 57} 58$form_list->addRow(_('Host groups'), $hostGroupsComboBox); 59 60if ($this->data['grpswitch']) { 61 $form_list->addRow(_('Show selected groups'), (new CMultiSelect([ 62 'name' => 'groupids[]', 63 'objectName' => 'hostGroup', 64 'data' => $this->data['groups'], 65 'disabled' => !$this->data['isFilterEnable'], 66 'popup' => [ 67 'parameters' => 'srctbl=host_groups&dstfrm='.$form->getName().'&dstfld1=groupids_'. 68 '&srcfld1=groupid&multiselect=1' 69 ] 70 ]))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)); 71 $form_list->addRow(_('Hide selected groups'), (new CMultiSelect([ 72 'name' => 'hidegroupids[]', 73 'objectName' => 'hostGroup', 74 'data' => $this->data['hideGroups'], 75 'disabled' => !$this->data['isFilterEnable'], 76 'popup' => [ 77 'parameters' => 'srctbl=host_groups&dstfrm='.$form->getName().'&dstfld1=hidegroupids_'. 78 '&srcfld1=groupid&multiselect=1' 79 ] 80 ]))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)); 81} 82 83// append host in maintenance checkbox to form list 84$maintenanceCheckBox = (new CCheckBox('maintenance'))->setChecked($this->data['maintenance'] == 1); 85if (!$this->data['isFilterEnable']) { 86 $maintenanceCheckBox->setAttribute('disabled', 'disabled'); 87} 88$form_list->addRow(_('Hosts'), 89 new CLabel([$maintenanceCheckBox, _('Show hosts in maintenance')], 'maintenance') 90); 91 92// append trigger severities to form list 93$severities = []; 94foreach ($this->data['severities'] as $severity) { 95 $serverityCheckBox = (new CCheckBox('trgSeverity['.$severity.']')) 96 ->setChecked(isset($this->data['severity'][$severity])) 97 ->setEnabled($this->data['isFilterEnable']); 98 $severities[] = new CLabel([$serverityCheckBox, getSeverityName($severity, $this->data['config'])], 99 'trgSeverity['.$severity.']' 100 ); 101 $severities[] = BR(); 102} 103array_pop($severities); 104 105$form_list->addRow(_('Triggers with severity'), $severities); 106 107$form_list->addRow(_('Trigger name like'), 108 (new CTextBox('trigger_name', $data['trigger_name'])) 109 ->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH) 110 ->setEnabled($data['isFilterEnable']) 111); 112 113if ($data['config']['event_ack_enable']) { 114 // append problem display to form list 115 $ext_ack_combobox = new CComboBox('extAck', $data['extAck'], null, [ 116 EXTACK_OPTION_ALL => _('All'), 117 EXTACK_OPTION_BOTH => _('Separated'), 118 EXTACK_OPTION_UNACK => _('Unacknowledged only') 119 ]); 120 $ext_ack_combobox->setEnabled($data['isFilterEnable']); 121 $form_list->addRow(_('Problem display'), $ext_ack_combobox); 122} 123 124// create tab 125$tab = new CTabView(); 126$tab->addTab('dashconfTab', _('Filter'), $form_list); 127 128$tab->setFooter(makeFormFooter( 129 new CSubmit('update', _('Update')), 130 [new CButtonCancel()] 131)); 132 133$form->addItem($tab); 134$widget->addItem($form); 135 136return $widget; 137