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