require_once dirname(__FILE__).'/include/config.inc.php';
require_once dirname(__FILE__).'/include/hosts.inc.php';
require_once dirname(__FILE__).'/include/maintenances.inc.php';
require_once dirname(__FILE__).'/include/forms.inc.php';
$page['title'] = _('Configuration of maintenance periods');
$page['file'] = 'maintenance.php';
$page['scripts'] = ['class.calendar.js'];
'hostids' => [T_ZBX_INT, O_OPT, P_SYS|P_ONLY_ARRAY, DB_ID, null],
'groupids' => [T_ZBX_INT, O_OPT, P_SYS|P_ONLY_ARRAY, DB_ID, null],
'maintenanceid' => [T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({form}) && {form} == "update"'],
'maintenanceids' => [T_ZBX_INT, O_OPT, P_SYS|P_ONLY_ARRAY, DB_ID, null],
'mname' => [T_ZBX_STR, O_OPT, null, NOT_EMPTY, 'isset({add}) || isset({update})', _('Name')],
'maintenance_type' => [T_ZBX_INT, O_OPT, null, null, 'isset({add}) || isset({update})'],
'description' => [T_ZBX_STR, O_OPT, null, null, 'isset({add}) || isset({update})'],
'active_since' => [T_ZBX_ABS_TIME, O_OPT, null, NOT_EMPTY,
'isset({add}) || isset({update})', _('Active since')
'active_till' => [T_ZBX_ABS_TIME, O_OPT, null, NOT_EMPTY,
'isset({add}) || isset({update})', _('Active till')
'timeperiods' => [T_ZBX_STR, O_OPT, P_ONLY_TD_ARRAY, null, null],
'tags_evaltype' => [T_ZBX_INT, O_OPT, null, null, null],
'tags' => [T_ZBX_STR, O_OPT, P_ONLY_TD_ARRAY, null, null],
'action' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, IN('"maintenance.massdelete"'), null],
'add' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'update' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'clone' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'delete' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'cancel' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'form' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'form_refresh' => [T_ZBX_INT, O_OPT, P_SYS, null, null],
'filter_set' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'filter_rst' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'filter_name' => [T_ZBX_STR, O_OPT, P_NO_TRIM, null, null],
'filter_status' => [T_ZBX_INT, O_OPT, null, IN([-1, MAINTENANCE_STATUS_ACTIVE, MAINTENANCE_STATUS_APPROACH, MAINTENANCE_STATUS_EXPIRED]), null],
'filter_groups' => [T_ZBX_INT, O_OPT, P_ONLY_ARRAY, DB_ID, null],
'sort' => [T_ZBX_STR, O_OPT, P_SYS,
IN('"active_since","active_till","maintenance_type","name"'),
'sortorder' => [T_ZBX_STR, O_OPT, P_SYS, IN('"'.ZBX_SORT_DOWN.'","'.ZBX_SORT_UP.'"'),
if (isset($_REQUEST['maintenanceid'])) {
$dbMaintenance = API::Maintenance()->get([
'output' => API_OUTPUT_EXTEND,
'selectTimeperiods' => API_OUTPUT_EXTEND,
'selectTags' => API_OUTPUT_EXTEND,
'maintenanceids' => getRequest('maintenanceid')
if (empty($dbMaintenance)) {