/** /** * 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 } }