static function validateDate($field, $request) { $req = $field->required; $start = FieldController::getFieldOption($field, 'Start'); $end = FieldController::getFieldOption($field, 'End'); $month = $request->input('month_' . $field->flid, ''); $day = $request->input('day_' . $field->flid, ''); $year = $request->input('year_' . $field->flid, ''); if ($req == 1 && $month == '' && $day == '' && $year == '') { return $field->name . ' field is required.'; } if ($year < $start | $year > $end && $month != '' | $day != '') { return 'Year supplied for field ' . $field->name . ' is not in the range of ' . $start . ' and ' . $end . '.'; } if (!FieldController::validateDate($month, $day, $year)) { return 'Invalid date for field ' . $field->name . '. Either day given w/ no month provided, or day and month are impossible.'; } return ''; }
public function updateDefault($pid, $fid, $flid, FieldRequest $request) { if (!FieldController::checkPermissions($fid, 'edit')) { return redirect('projects/' . $pid . '/forms/' . $fid . '/fields'); } if (!FieldController::validProjFormField($pid, $fid, $flid)) { return redirect('projects'); } $field = FieldController::getField($flid); if ($field->type == 'Multi-Select List' | $field->type == 'Generated List' && !is_null($request->default)) { $reqDefs = $request->default; $def = $reqDefs[0]; for ($i = 1; $i < sizeof($reqDefs); $i++) { $def .= '[!]' . $reqDefs[$i]; } $field->default = $def; } else { if ($field->type == 'Date') { if (FieldController::validateDate($request->default_month, $request->default_day, $request->default_year)) { $field->default = '[M]' . $request->default_month . '[M][D]' . $request->default_day . '[D][Y]' . $request->default_year . '[Y]'; } else { flash()->error('Invalid date. Either day given w/ no month provided, or day and month are impossible.'); return redirect('projects/' . $pid . '/forms/' . $fid . '/fields/' . $flid . '/options'); } } else { $field->default = $request->default; } } $field->save(); RevisionController::wipeRollbacks($fid); flash()->success('Option updated!'); return redirect('projects/' . $pid . '/forms/' . $fid . '/fields/' . $flid . '/options'); }