public function excel($id) { $experiment = Experiment::findOrFail($id); $element = Element::findOrFail($experiment->element_id); while ($element != null) { if ($element->type == 5) { $xor = json_decode($element->ref, true); if (is_array($xor)) { foreach ($xor as $pkey => $pfad) { foreach ($pfad as $ekey => $el) { $ele = Element::find($el); if ($ele->type == 2) { $fields = Field::where("element_id", $ele->id)->orderBy('sort')->get(); foreach ($fields as $field) { $rows[$element->id][$ele->id][]['field'] = $field->id; } } elseif ($ele->type == 4 or $ele->type == 3) { $rows[$element->id][$ele->id][]['element'] = $ele->id; } } } } } elseif ($element->type == 2) { $fields = Field::where("element_id", $element->id)->orderBy('sort')->get(); foreach ($fields as $field) { $rows[$element->id][]['field'] = $field->id; } } elseif ($element->type == 4 or $element->type == 3) { $rows[$element->id][]['element'] = $element->id; } $element = $element->next(); } $this->table = $rows; $users = Answer::where('experiment', $id)->groupBy("student")->get(); //print_r($rows); $this->table = compact('rows', 'experiment', 'users'); if (isset($_GET['show']) and $_GET['show'] == "html") { return view('export.auswertung', $this->table); } Excel::create('Download', function ($excel) { $excel->sheet('Seite', function ($sheet) { $sheet->loadView('export.auswertung', $this->table); $sheet->setAutoSize(true); $sheet->setAutoFilter('A3:BZ3'); }); })->download('xls'); }
public function drop_field($id, Request $request) { if (!Auth::user()) { return redirect('/'); } try { Field::where('id', '=', $id)->delete(); } catch (\exception $e) { $rules = ['delete' => 'required']; $messages = ['delete.required' => 'წაშლა შეუძლებელია']; $this->validate($request, $rules, $messages); } return redirect('/admin'); }
// http://organit.app/api/table/1/fields $raw = \App\Raw::find($raw_id); $raw->records()->delete(); $raw->delete(); }); Route::put('api/table/{table}/update_fixed_record/{raw_id}', function (Request $request, App\Table $table, $raw_id) { // http://organit.app/api/table/1/fields $raw = \App\Raw::find($raw_id); // dd($request->all()); foreach ($request->all() as $label => $value) { if ($label == 'raw_id') { continue; } // echo "<h1>Table : ".$table->id." -- row".$raw->id."</h1>"; // echo $label.'<br><br>'; $field = Field::where('table_id', $table->id)->where('name', $label)->first(); $record = Record::where('raw_id', $raw->id)->where('field_id', $field->id); // echo 'field : '.$field->id. '-' .$field->name; // echo 'record : '.$record->id; // echo "<hr>"; // echo "<hr>"; $record->update(['value' => $value]); } $recordList = []; $recordList['raw_id'] = $raw->id; foreach ($raw->records as $record) { $recordList[$record->field->name] = $record->value; } return $recordList; }); /*
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $experiment = Experiment::where("key", $id)->first(); if ($experiment == null) { return redirect('/'); } $element = $experiment->element()->first(); $allow[] = $experiment->element_id; $e = $experiment->element; while (Element::find($e->element_id) != null) { $allow[] = $e->element_id; if ($e->type == 5) { $fieldnr = session("field"); $field_id = substr($fieldnr, 0, -2); $field_type = substr($fieldnr, -2); $field = Field::where('id', $field_id)->where('type', $field_type)->first(); if ($field == null) { return redirect('/'); } } $e = Element::find($e->element_id); } session(['fields' => $allow]); return view('experiment.show', compact('experiment', 'element')); }
public function setFieldArrayAttribute($field) { $create = []; if (!$field) { return; } if (!$this->exists) { $this->save(); } $fields = Field::where('page_id', $this->id)->get(); if (is_array($field)) { foreach ($field as $key => $val) { $isset = false; foreach ($fields as $v) { if ($v->name == $key) { $isset = true; if (!empty($val)) { $v->value = $val; } else { Field::destroy($v->id); } } } if (!$isset) { $create[$key] = $val; } } if (sizeof($create) > 0) { foreach ($create as $key => $val) { if (!empty($val)) { $f = new Field(); $f->name = $key; $f->value = $val; $fields[] = $f; } } } $this->fields()->saveMany($fields); } }
public function down() { if (!Auth::check()) { return redirect('/auth/login'); } $eid = $_GET['eid']; $vor = Field::findOrFail($_GET['id']); $sortvor = $vor->sort; $next = Field::where('sort', '>', $sortvor)->orderBy('sort', 'ASC')->where('element_id', $eid)->first(); $sortnext = $next->sort; $vor->sort = $sortnext; $next->sort = $sortvor; $vor->save(); $next->save(); return $next; }
/** /** * 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 } }
/** * Builds up an array that functions similarly to the field object. Json encoded for storage. * * @param Record $record * @return string */ public static function buildDataArray(Record $record) { $data = array(); if (!is_null($record->textfields()->first())) { $text = array(); $textfields = $record->textfields()->get(); foreach ($textfields as $textfield) { $name = Field::where('flid', '=', $textfield->flid)->first()->name; $text[$textfield->flid]['name'] = $name; $text[$textfield->flid]['data'] = $textfield->text; } $data['textfields'] = $text; } else { $data['textfields'] = null; } if (!is_null($record->richtextfields()->first())) { $richtext = array(); $rtfields = $record->richtextfields()->get(); foreach ($rtfields as $rtfield) { $name = Field::where('flid', '=', $rtfield->flid)->first()->name; $richtext[$rtfield->flid]['name'] = $name; $richtext[$rtfield->flid]['data'] = $rtfield->rawtext; } $data['richtextfields'] = $richtext; } else { $data['richtextfields'] = null; } if (!is_null($record->numberfields()->first())) { $number = array(); $numberfields = $record->numberfields()->get(); foreach ($numberfields as $numberfield) { $fieldactual = Field::where('flid', '=', $numberfield->flid)->first(); $name = $fieldactual->name; $numberdata = array(); $numberdata['number'] = $numberfield->number; if ($numberfield->number != '') { $numberdata['unit'] = FieldController::getFieldOption($fieldactual, 'Unit'); } else { $numberdata['unit'] = ''; } $number[$numberfield->flid]['name'] = $name; $number[$numberfield->flid]['data'] = $numberdata; } $data['numberfields'] = $number; } else { $data['numberfields'] = null; } if (!is_null($record->listfields()->first())) { $list = array(); $listfields = $record->listfields()->get(); foreach ($listfields as $listfield) { $name = Field::where('flid', '=', $listfield->flid)->first()->name; $list[$listfield->flid]['name'] = $name; $list[$listfield->flid]['data'] = $listfield->option; } $data['listfields'] = $list; } else { $data['listfields'] = null; } if (!is_null($record->multiselectlistfields()->first())) { $msl = array(); $mslfields = $record->multiselectlistfields()->get(); foreach ($mslfields as $mslfield) { $name = Field::where('flid', '=', $mslfield->flid)->first()->name; $msl[$mslfield->flid]['name'] = $name; $msl[$mslfield->flid]['data'] = $mslfield->options; } $data['multiselectlistfields'] = $msl; } else { $data['multiselectlistfields'] = null; } if (!is_null($record->generatedlistfields()->first())) { $genlist = array(); $genlistfields = $record->generatedlistfields()->get(); foreach ($genlistfields as $genlistfield) { $name = Field::where('flid', '=', $genlistfield->flid)->first()->name; $genlist[$genlistfield->flid]['name'] = $name; $genlist[$genlistfield->flid]['data'] = $genlistfield->options; } $data['generatedlistfields'] = $genlist; } else { $data['generatedlistfields'] = null; } if (!is_null($record->datefields()->first())) { $date = array(); $datefields = $record->datefields()->get(); foreach ($datefields as $datefield) { $fieldactual = Field::where('flid', '=', $datefield->flid)->first(); $name = $fieldactual->name; $datedata = array(); $datedata['format'] = FieldController::getFieldOption($fieldactual, 'Format'); if (FieldController::getFieldOption($fieldactual, 'Circa') == 'Yes') { $datedata['circa'] = $datefield->circa; } else { $datedata['circa'] = ''; } $datedata['day'] = $datefield->day; $datedata['month'] = $datefield->month; $datedata['year'] = $datefield->year; if (FieldController::getFieldOption($fieldactual, 'Era') == 'Yes') { $datedata['era'] = $datefield->era; } else { $datedata['era'] = ''; } $date[$datefield->flid]['name'] = $name; $date[$datefield->flid]['data'] = $datedata; } $data['datefields'] = $date; } else { $data['datefields'] = null; } if (!is_null($record->schedulefields()->first())) { $schedule = array(); $schedulefields = $record->schedulefields()->get(); foreach ($schedulefields as $schedulefield) { $name = Field::where('flid', '=', $schedulefield->flid)->first()->name; $schedule[$schedulefield->flid]['name'] = $name; $schedule[$schedulefield->flid]['data'] = $schedulefield->events; } $data['schedulefields'] = $schedule; } else { $data['schedulefields'] = null; } /* Have to see which method is better, for now we'll use json_encode (remember to use json_decode($array, true)). Alternative method is presented here. The base64_encode method might end up working better for data other than simple text and lists. $revision->data = base64_encode(serialize($record)); To decode: $decode = unserialize(base64_decode(serialize($revision->data))); */ return json_encode($data); }
/** * Get field object for use in controller. * * @param $flid * @return mixed */ public static function getField($flid) { $field = Field::where('flid', '=', $flid)->first(); if (is_null($field)) { $field = Field::where('slug', '=', $flid)->first(); } return $field; }
protected function queryModel() { return Model_Field::where(['id' => $this->modelId])->with('page'); }