$_REQUEST['form'] = 'clone'; } else { if (isset($_REQUEST['cancel_new_timeperiod'])) { unset($_REQUEST['new_timeperiod']); } else { if (isset($_REQUEST['save'])) { if (!count(get_accessible_nodes_by_user($USER_DETAILS, PERM_READ_WRITE, PERM_RES_IDS_ARRAY))) { access_deny(); } $maintenance = array('name' => $_REQUEST['mname'], 'maintenance_type' => $_REQUEST['maintenance_type'], 'description' => $_REQUEST['description'], 'active_since' => $_REQUEST['active_since'], 'active_till' => zbx_empty($_REQUEST['active_till']) ? 0 : $_REQUEST['active_till']); $timeperiods = get_request('timeperiods', array()); DBstart(); // update available_hosts after ACTIONS $available_hosts = get_accessible_hosts_by_user($USER_DETAILS, PERM_READ_WRITE, PERM_RES_IDS_ARRAY, null, AVAILABLE_NOCACHE); if (isset($_REQUEST['maintenanceid'])) { delete_timeperiods_by_maintenanceid($_REQUEST['maintenanceid']); } $timeperiodids = array(); foreach ($timeperiods as $id => $timeperiod) { $timeperiodid = add_timeperiod($timeperiod); $timeperiodids[$timeperiodid] = $timeperiodid; } if (isset($_REQUEST['maintenanceid'])) { $maintenanceid = $_REQUEST['maintenanceid']; $result = update_maintenance($maintenanceid, $maintenance); $msg1 = S_MAINTENANCE_UPDATED; $msg2 = S_CANNOT_UPDATE_MAINTENANCE; } else { $result = $maintenanceid = add_maintenance($maintenance); $msg1 = S_MAINTENANCE_ADDED; $msg2 = S_CANNOT_ADD_MAINTENANCE;
function delete_maintenance($maintenanceids) { zbx_value2array($maintenanceids); delete_timeperiods_by_maintenanceid($maintenanceids); DBexecute('DELETE FROM maintenances_hosts WHERE ' . DBcondition('maintenanceid', $maintenanceids)); DBexecute('DELETE FROM maintenances_groups WHERE ' . DBcondition('maintenanceid', $maintenanceids)); $result = DBexecute('DELETE FROM maintenances WHERE ' . DBcondition('maintenanceid', $maintenanceids)); return $result; }