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/** 23 * @var CView $this 24 */ 25 26$this->includeJsFile('administration.housekeeping.edit.js.php'); 27 28$widget = (new CWidget()) 29 ->setTitle(_('Housekeeping')) 30 ->setTitleSubmenu(getAdministrationGeneralSubmenu()); 31 32$form = (new CForm()) 33 ->setId('housekeeping') 34 ->setAction((new CUrl('zabbix.php')) 35 ->setArgument('action', 'housekeeping.update') 36 ->getUrl() 37 ) 38 ->setAttribute('aria-labeledby', ZBX_STYLE_PAGE_TITLE); 39 40$house_keeper_tab = (new CFormList()) 41 ->addRow(new CTag('h4', true, _('Events and alerts'))) 42 ->addRow( 43 new CLabel(_('Enable internal housekeeping'), 'hk_events_mode'), 44 (new CCheckBox('hk_events_mode')) 45 ->setChecked($data['hk_events_mode'] == 1) 46 ->setAttribute('autofocus', 'autofocus') 47 ) 48 ->addRow( 49 (new CLabel(_('Trigger data storage period'), 'hk_events_trigger'))->setAsteriskMark(), 50 (new CTextBox('hk_events_trigger', $data['hk_events_trigger'])) 51 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 52 ->setEnabled($data['hk_events_mode'] == 1) 53 ->setAriaRequired() 54 ) 55 ->addRow( 56 (new CLabel(_('Internal data storage period'), 'hk_events_internal'))->setAsteriskMark(), 57 (new CTextBox('hk_events_internal', $data['hk_events_internal'])) 58 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 59 ->setEnabled($data['hk_events_mode'] == 1) 60 ->setAriaRequired() 61 ) 62 ->addRow( 63 (new CLabel(_('Network discovery data storage period'), 'hk_events_discovery')) 64 ->setAsteriskMark(), 65 (new CTextBox('hk_events_discovery', $data['hk_events_discovery'])) 66 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 67 ->setEnabled($data['hk_events_mode'] == 1) 68 ->setAriaRequired() 69 ) 70 ->addRow( 71 (new CLabel(_('Autoregistration data storage period'), 'hk_events_autoreg')) 72 ->setAsteriskMark(), 73 (new CTextBox('hk_events_autoreg', $data['hk_events_autoreg'])) 74 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 75 ->setEnabled($data['hk_events_mode'] == 1) 76 ->setAriaRequired() 77 ) 78 ->addRow(null) 79 ->addRow(new CTag('h4', true, _('Services'))) 80 ->addRow( 81 new CLabel(_('Enable internal housekeeping'), 'hk_services_mode'), 82 (new CCheckBox('hk_services_mode'))->setChecked($data['hk_services_mode'] == 1) 83 ) 84 ->addRow( 85 (new CLabel(_('Data storage period'), 'hk_services')) 86 ->setAsteriskMark(), 87 (new CTextBox('hk_services', $data['hk_services'])) 88 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 89 ->setEnabled($data['hk_services_mode'] == 1) 90 ->setAriaRequired() 91 ) 92 ->addRow(null) 93 ->addRow(new CTag('h4', true, _('Audit'))) 94 ->addRow( 95 new CLabel(_('Enable internal housekeeping'), 'hk_audit_mode'), 96 (new CCheckBox('hk_audit_mode'))->setChecked($data['hk_audit_mode'] == 1) 97 ) 98 ->addRow( 99 (new CLabel(_('Data storage period'), 'hk_audit')) 100 ->setAsteriskMark(), 101 (new CTextBox('hk_audit', $data['hk_audit'])) 102 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 103 ->setEnabled($data['hk_audit_mode'] == 1) 104 ->setAriaRequired() 105 ) 106 ->addRow(null) 107 ->addRow(new CTag('h4', true, _('User sessions'))) 108 ->addRow( 109 new CLabel(_('Enable internal housekeeping'), 'hk_sessions_mode'), 110 (new CCheckBox('hk_sessions_mode'))->setChecked($data['hk_sessions_mode'] == 1) 111 ) 112 ->addRow( 113 (new CLabel(_('Data storage period'), 'hk_sessions')) 114 ->setAsteriskMark(), 115 (new CTextBox('hk_sessions', $data['hk_sessions'])) 116 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 117 ->setEnabled($data['hk_sessions_mode'] == 1) 118 ->setAriaRequired() 119 ) 120 ->addRow(null) 121 ->addRow(new CTag('h4', true, _('History'))) 122 ->addRow( 123 new CLabel(_('Enable internal housekeeping'), 'hk_history_mode'), 124 (new CCheckBox('hk_history_mode'))->setChecked($data['hk_history_mode'] == 1) 125 ) 126 ->addRow( 127 new CLabel(_('Override item history period'), 'hk_history_global'), 128 (new CCheckBox('hk_history_global'))->setChecked($data['hk_history_global'] == 1) 129 ) 130 ->addRow( 131 (new CLabel(_('Data storage period'), 'hk_history')) 132 ->setAsteriskMark(), 133 (new CTextBox('hk_history', $data['hk_history'])) 134 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 135 ->setEnabled($data['hk_history_global'] == 1) 136 ->setAriaRequired() 137 ) 138 ->addRow(null) 139 ->addRow(new CTag('h4', true, _('Trends'))) 140 ->addRow( 141 new CLabel(_('Enable internal housekeeping'), 'hk_trends_mode'), 142 (new CCheckBox('hk_trends_mode'))->setChecked($data['hk_trends_mode'] == 1) 143 ) 144 ->addRow( 145 new CLabel(_('Override item trend period'), 'hk_trends_global'), 146 (new CCheckBox('hk_trends_global'))->setChecked($data['hk_trends_global'] == 1) 147 ) 148 ->addRow( 149 (new CLabel(_('Data storage period'), 'hk_trends')) 150 ->setAsteriskMark(), 151 (new CTextBox('hk_trends', $data['hk_trends'])) 152 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 153 ->setEnabled($data['hk_trends_global'] == 1) 154 ->setAriaRequired() 155 ); 156 157 if ($data['db_extension'] == ZBX_DB_EXTENSION_TIMESCALEDB) { 158 $house_keeper_tab 159 ->addRow(null) 160 ->addRow(new CTag('h4', true, _('History and trends compression'))) 161 ->addRow( 162 new CLabel(_('Enable compression'), 'compression_status'), 163 (new CCheckBox('compression_status')) 164 ->setChecked($data['compression_status'] == 1) 165 ->setEnabled($data['compression_availability'] == 1) 166 ) 167 ->addRow( 168 (new CLabel(_('Compress records older than'), 'compress_older')) 169 ->setAsteriskMark(), 170 (new CTextBox('compress_older', $data['compress_older'])) 171 ->setWidth(ZBX_TEXTAREA_TINY_WIDTH) 172 ->setEnabled($data['compression_availability'] == 1 && $data['compression_status'] == 1) 173 ->setAriaRequired() 174 ); 175 176 if ($data['compression_availability'] == 0) { 177 $house_keeper_tab->addRow('', 178 (new CSpan(_('Compression is not available due to incompatible DB version')))->addClass(ZBX_STYLE_RED) 179 ); 180 } 181 } 182 183$house_keeper_view = (new CTabView()) 184 ->addTab('houseKeeper', _('Housekeeping'), $house_keeper_tab) 185 ->setFooter(makeFormFooter( 186 new CSubmit('update', _('Update')), 187 [new CButton('resetDefaults', _('Reset defaults'))] 188 )); 189 190$widget 191 ->addItem($form->addItem($house_keeper_view)) 192 ->show(); 193