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');
 }
Example #2
0
 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');
 }
Example #3
0
    // 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'));
 }
Example #5
0
 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);
     }
 }
Example #6
0
 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;
 }
Example #7
0
 /**
     /**
 * 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
     }
 }
Example #8
0
 /**
  * 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);
 }
Example #9
0
 /**
  * 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;
 }
Example #10
0
 protected function queryModel()
 {
     return Model_Field::where(['id' => $this->modelId])->with('page');
 }