public function random() { $form = Form::all(); $first = $form->first(); $last = $form->last(); do { $id = mt_rand($first->id, $last->id); $forms = Form::find($id); } while (!$forms); Form::find($forms->id)->increment('views'); $comments = Comment::all(); $users = User::all(); $user = \Auth::user(); $likes = Like::all(); foreach ($users as $formuser) { if ($forms->user_id == $formuser->id) { $username = $formuser->name; $userlastname = $formuser->lastname; $userid = $formuser->id; } } $likedata = $this->countLikes($likes, $forms); $likesamount = $likedata['likesamount']; $likesis = $likedata['likesis']; return view('form.show', compact('forms'), compact('comments', 'likesis', 'likesamount', 'user', 'username', 'userlastname', 'userid')); }
public static function insertForm($template, $code, $type, $required, $prompt, $choices, $expected_answer, $image, $choices2 = null, $con_datas = null, $default_answer = null) { if (strtoupper($type) == 'DOUBLE') { $form_type = FormType::where('form_type', "NUMERIC")->first(); } else { $form_type = FormType::where('form_type', strtoupper($type))->first(); } switch ($required) { case 't': $required = 1; break; case 'yes': $required = 1; break; case 'f': $required = 0; break; case 'no': $required = 0; break; default: # code... break; } $form = Form::create(array('audit_template_id' => $template->id, 'form_type_id' => $form_type->id, 'prompt' => strtoupper($prompt), 'required' => $required, 'exempt' => 0, 'default_answer' => $default_answer, 'image' => $image, 'code' => $code)); if ($form_type->id == 9) { $choices = explode("~", $choices); foreach ($choices as $choice) { $sel = MultiSelect::where('option', $choice)->first(); if (empty($sel)) { $sel = MultiSelect::create(array('option' => strtoupper($choice))); } FormMultiSelect::create(array('form_id' => $form->id, 'multi_select_id' => $sel->id)); } if (!empty($default_answer)) { $_form = Form::find($form->id); $ans = MultiSelect::where('option', strtoupper($default_answer))->first(); $_form->default_answer = $ans->id; $_form->update(); } } if ($form_type->id == 10) { $choices = explode("~", $choices); foreach ($choices as $choice) { if ($choice == "1") { $opt = "YES"; } elseif ($choice == "0") { $opt = "NO"; } else { $opt = $choice; } $sel = SingleSelect::firstOrCreate(array('option' => strtoupper($opt))); FormSingleSelect::create(array('form_id' => $form->id, 'single_select_id' => $sel->id)); } if (!empty($expected_answer)) { $_form = Form::find($form->id); // $ans = SingleSelect::where('option',strtoupper($expected_answer))->first(); // $_form->expected_answer = $ans->id; // $_form->update(); $ans = explode("^", $expected_answer); $pos_ans = []; foreach ($ans as $value) { $_ans = SingleSelect::where('option', strtoupper($value))->first(); $pos_ans[] = $_ans->id; } if (!empty($pos_ans)) { $_form->expected_answer = implode("^", $pos_ans); $_form->update(); } } if (!empty($default_answer)) { $_form = Form::find($form->id); // $ans = SingleSelect::where('option',strtoupper($default_answer))->first(); // $_form->default_answer = $ans->id; // $_form->update(); $ans = explode("^", $default_answer); $pos_ans = []; foreach ($ans as $value) { $_ans = SingleSelect::where('option', strtoupper($value))->first(); $pos_ans[] = $_ans->id; } if (!empty($pos_ans)) { $_form->default_answer = implode("^", $pos_ans); $_form->update(); } } } if ($form_type->id == 11) { // dd($choices2); FormFormula::create(['form_id' => $form->id, 'formula' => $choices, 'formula_desc' => $choices2]); } if ($form_type->id == 12) { foreach ($con_datas as $con_data) { $con = FormCondition::create(['form_id' => $form->id, 'option' => $con_data['option'], 'condition' => $con_data['condition'], 'condition_desc' => $con_data['condition_desc']]); } if (!empty($expected_answer)) { $_form = Form::find($form->id); $ans = explode("^", $expected_answer); $pos_ans = []; foreach ($ans as $value) { $_ans = FormCondition::where('option', strtoupper($value))->where('form_id', $form->id)->first(); $pos_ans[] = $_ans->id; } if (!empty($pos_ans)) { $_form->expected_answer = implode("^", $pos_ans); $_form->update(); } } if (!empty($default_answer)) { if (!empty($default_answer)) { $_form = Form::find($form->id); $ans = FormCondition::where('option', strtoupper($default_answer))->where('form_id', $form->id)->first(); if (!empty($ans)) { $_form->default_answer = $ans->id; $_form->update(); } } } } return $form; }
/** * * Mass assign a value to many records at once, similar to update, but loops through all of them * * @param $pid * @param $fid * @param Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function massAssignRecords($pid, $fid, Request $request) { if (!$this->checkPermissions($fid, 'modify')) { return redirect()->back(); } $flid = $request->input("field_selection"); if (!is_numeric($flid)) { flash()->overlay("That is not a valid field"); return redirect()->back(); } if ($request->has($flid)) { $form_field_value = $request->input($flid); //Note this only works when there is one form element being submitted, so if you have more, check Date } else { flash()->overlay("You didn't provide a value to assign to the records", "Whoops."); return redirect()->back(); } if ($request->has("overwrite")) { $overwrite = $request->input("overwrite"); //Overwrite field in all records, even if it has data } else { $overwrite = 0; } $field = Field::find($flid); foreach (Form::find($fid)->records()->get() as $record) { if ($field->type == "Text") { $matching_record_fields = $record->textfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $textfield = $matching_record_fields->first(); if ($overwrite == true || $textfield->text == "" || is_null($textfield->text)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $textfield->text = $form_field_value; $textfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $tf = new TextField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $tf->flid = $field->flid; $tf->rid = $record->rid; $tf->text = $form_field_value; $tf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Rich Text") { $matching_record_fields = $record->richtextfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $richtextfield = $matching_record_fields->first(); if ($overwrite == true || $richtextfield->rawtext == "" || is_null($richtextfield->rawtext)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $richtextfield->rawtext = $form_field_value; $richtextfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $rtf = new RichTextField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $rtf->flid = $field->flid; $rtf->rid = $record->rid; $rtf->rawtext = $form_field_value; $rtf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Number") { $matching_record_fields = $record->numberfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $numberfield = $matching_record_fields->first(); if ($overwrite == true || $numberfield->number == "" || is_null($numberfield->number)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $numberfield->number = $form_field_value; $numberfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $nf = new NumberField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $nf->flid = $field->flid; $nf->rid = $record->rid; $nf->number = $form_field_value; $nf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "List") { $matching_record_fields = $record->listfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $listfield = $matching_record_fields->first(); if ($overwrite == true || $listfield->option == "" || is_null($listfield->option)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $listfield->option = $form_field_value; $listfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $lf = new ListField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $lf->flid = $field->flid; $lf->rid = $record->rid; $lf->option = $form_field_value; $lf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Multi-Select List") { $matching_record_fields = $record->multiselectlistfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $multiselectlistfield = $matching_record_fields->first(); if ($overwrite == true || $multiselectlistfield->options == "" || is_null($multiselectlistfield->options)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $multiselectlistfield->options = implode("[!]", $form_field_value); $multiselectlistfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $mslf = new MultiSelectListField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $mslf->flid = $field->flid; $mslf->rid = $record->rid; $mslf->options = implode("[!]", $form_field_value); $mslf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Generated List") { $matching_record_fields = $record->generatedlistfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $generatedlistfield = $matching_record_fields->first(); if ($overwrite == true || $generatedlistfield->options == "" || is_null($generatedlistfield->options)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $generatedlistfield->options = implode("[!]", $form_field_value); $generatedlistfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $glf = new GeneratedListField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $glf->flid = $field->flid; $glf->rid = $record->rid; $glf->options = implode("[!]", $form_field_value); $glf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Date") { $matching_record_fields = $record->datefields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $datefield = $matching_record_fields->first(); if ($overwrite == true || $datefield->month == "" || is_null($datefield->month)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $datefield->circa = $request->input('circa_' . $flid, ''); $datefield->month = $request->input('month_' . $flid); $datefield->day = $request->input('day_' . $flid); $datefield->year = $request->input('year_' . $flid); $datefield->era = $request->input('era_' . $flid, 'CE'); $datefield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $df = new DateField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $df->circa = $request->input('circa_' . $flid, ''); $df->month = $request->input('month_' . $flid); $df->day = $request->input('day_' . $flid); $df->year = $request->input('year_' . $flid); $df->era = $request->input('era_' . $flid, 'CE'); $df->rid = $record->rid; $df->flid = $flid; $df->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Schedule") { $matching_record_fields = $record->schedulefields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $schedulefield = $matching_record_fields->first(); if ($overwrite == true || $schedulefield->events == "" || is_null($schedulefield->events)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $schedulefield->events = implode("[!]", $form_field_value); $schedulefield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $sf = new ScheduleField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $sf->flid = $field->flid; $sf->rid = $record->rid; $sf->events = implode("[!]", $form_field_value); $sf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } elseif ($field->type == "Geolocator") { $matching_record_fields = $record->geolocatorfields()->where("flid", '=', $flid)->get(); $record->updated_at = Carbon::now(); $record->save(); if ($matching_record_fields->count() > 0) { $geolocatorfield = $matching_record_fields->first(); if ($overwrite == true || $geolocatorfield->locations == "" || is_null($geolocatorfield->locations)) { $revision = RevisionController::storeRevision($record->rid, 'edit'); $geolocatorfield->locations = implode("[!]", $form_field_value); $geolocatorfield->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } else { continue; } } else { $gf = new GeolocatorField(); $revision = RevisionController::storeRevision($record->rid, 'edit'); $gf->flid = $field->flid; $gf->rid = $record->rid; $gf->locations = implode("[!]", $form_field_value); $gf->save(); $revision->oldData = RevisionController::buildDataArray($record); $revision->save(); } } } flash()->overlay("The records were updated", "Good Job!"); return redirect()->action('RecordController@index', compact('pid', 'fid')); }
/** /** * Process the form submission and add metadata to field or change visibility * * @param Request $request, int $pid, int $fid * @return Response */ public function store(Request $request, $pid, $fid) { //Changing metadata visibility or adding metadata to a field? $this->validate($request, ['type' => 'required']); //Make the metadata public or private if ($request->input('type') == 'visibility') { $form = Form::find($fid); if ($request->input('state') == 'true') { $form->public_metadata = true; } else { $form->public_metadata = false; } $form->save(); return response("success", 200); //The request comes from JQuery, no need to redirect } elseif ($request->input('type') == 'addmetadata') { $this->validate($request, ['name' => 'required', 'field' => 'required|unique:metadatas,flid']); $field = Field::where('pid', $pid)->where('fid', $fid)->where('flid', '=', $request->input('field'))->first(); $metadata = new Metadata(['pid' => $pid, 'fid' => $fid, 'name' => $request->input('name')]); $metadata->field()->associate($field); $field->metadata()->save($metadata); return redirect()->action('MetadataController@index', compact('pid', 'fid')); //Laravel form submission needs this } }