} } } header('Content-Type: application/json;charset=utf-8'); echo json_encode(array('errors' => $errorMessages)); break; /** * add or edit a activity */ /** * add or edit a activity */ case "activity": $data['name'] = $_REQUEST['name']; $data['comment'] = $_REQUEST['comment']; $data['visible'] = getRequestBool('visible'); $data['filter'] = $_REQUEST['activityFilter']; $data['defaultRate'] = getRequestDecimal($_REQUEST['defaultRate']); $data['myRate'] = getRequestDecimal($_REQUEST['myRate']); $data['fixedRate'] = getRequestDecimal($_REQUEST['fixedRate']); $oldGroups = array(); if ($id) { $oldGroups = $database->activity_get_groupIDs($id); } // validate data $errorMessages = array(); if (count($_REQUEST['activityGroups']) == 0) { $errorMessages['activityGroups'] = $kga['lang']['atLeastOneGroup']; } if (!checkGroupedObjectPermission('Activity', $id ? 'edit' : 'add', $oldGroups, $_REQUEST['activityGroups'])) { $errorMessages[''] = $kga['lang']['errorMessages']['permissionDenied'];
if (!isset($_REQUEST['edit_time']) || empty($_REQUEST['edit_time'])) { $errors['edit_time'] = sprintf($kga['lang']['errorMessages']['emptyField'], $kga['lang']['timelabel']); } if (!isset($_REQUEST['multiplier']) || empty($_REQUEST['multiplier'])) { $errors['multiplier'] = sprintf($kga['lang']['errorMessages']['emptyField'], $kga['lang']['multiplier']); } if (count($errors) > 0) { echo json_encode(array('errors' => $errors)); break; } // get new data $data['projectID'] = $_REQUEST['projectID']; $data['designation'] = $_REQUEST['designation']; $data['comment'] = isset($_REQUEST['comment']) && !empty($_REQUEST['comment']) ? $_REQUEST['comment'] : ''; $data['commentType'] = $_REQUEST['commentType']; $data['refundable'] = getRequestBool('refundable'); $data['multiplier'] = getRequestDecimal($_REQUEST['multiplier']); $data['value'] = getRequestDecimal($_REQUEST['edit_value']); $data['userID'] = $kga['user']['userID']; if (!is_numeric($data['multiplier']) || $data['multiplier'] <= 0) { $errors['multiplier'] = $kga['lang']['errorMessages']['multiplierNegative']; } // parse new day and time $edit_day = Kimai_Format::expand_date_shortcut($_REQUEST['edit_day']); $edit_time = Kimai_Format::expand_time_shortcut($_REQUEST['edit_time']); // validate day and time $new = "{$edit_day}-{$edit_time}"; if (!Kimai_Format::check_time_format($new)) { $errors[''] = $kga['lang']['TimeDateInputError']; } // convert to internal time format
$config_data['date_format_3'] = $_REQUEST['date_format_3']; $config_data['table_time_format'] = $_REQUEST['table_time_format']; $config_data['language'] = $_REQUEST['language']; if (isset($_REQUEST['status']) && is_array($_REQUEST['status'])) { $config_data['status'] = implode(',', $_REQUEST['status']); } $config_data['roundPrecision'] = $_REQUEST['roundPrecision']; $config_data['allowRoundDown'] = getRequestBool('allowRoundDown'); $config_data['roundMinutes'] = $_REQUEST['roundMinutes']; $config_data['roundSeconds'] = $_REQUEST['roundSeconds']; $config_data['roundTimesheetEntries'] = $_REQUEST['roundTimesheetEntries']; $config_data['decimalSeparator'] = $_REQUEST['decimalSeparator']; $config_data['durationWithSeconds'] = getRequestBool('durationWithSeconds'); $config_data['exactSums'] = getRequestBool('exactSums'); $editLimit = false; if (getRequestBool('editLimitEnabled')) { $hours = (int) $_REQUEST['editLimitHours']; $days = (int) $_REQUEST['editLimitDays']; $editLimit = $hours + $days * 24; $editLimit *= 60 * 60; // convert to seconds } if ($editLimit === false || $editLimit === 0) { $config_data['editLimit'] = 0; } else { $config_data['editLimit'] = $editLimit; } if (!$database->configuration_edit($config_data)) { $errors[''] = $kga['lang']['error']; } }