Example #1
0
 public function handle()
 {
     $script = '';
     foreach ($this->table->hasHasManyRelationList() as $relation) {
         $fromField = Field::find($relation['from_field_id']);
         $toModel = Table::find($relation['to_model_id']);
         $script .= $this->tab1 . 'public function ' . $relation['methodName'] . '(Request $request, ' . $this->table->model . ' $' . $this->table->variable . ')' . "\n";
         $script .= $this->tab1 . '{' . "\n";
         $script .= $this->tab2;
         $script .= '$' . $toModel->variablePlural . ' = $' . $this->table->variable . '->' . $relation['methodName'] . ';' . "\n";
         if ($toModel->hasBelongsToRelation()) {
             $script .= $this->tab2;
             $script .= '$' . $toModel->variablePlural . ' -> load(';
             foreach ($toModel->belongsToRelationList() as $relation) {
                 $script .= '\'' . $relation['methodName'] . '\', ';
             }
             $script = trim($script);
             $script = rtrim($script, ',');
             $script .= ');';
         }
         $script .= "\n";
         $script .= $this->tab2 . 'return response([\'data\' => $' . $toModel->variablePlural . ', \'status\' => \'success\', \'message\'=>\'\']);' . "\n" . "\n";
         $script .= $this->tab1 . '}' . "\n\n";
     }
     return $script;
 }
Example #2
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update(Request $request, $field_obj)
 {
     $field = Field::find($field_obj->id);
     $field->student_label = $request->get('student_label');
     $field->save();
     return redirect()->back();
 }
Example #3
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($field, Request $request)
 {
     $field = Field::find($field->id);
     $field->category_label = $request->get('field');
     $field->save();
     $field->touch();
     return redirect()->back();
 }
 public function processReportFields()
 {
     foreach ($this->reportFields as $report_field) {
         $report_field->field = Field::find($report_field->fieldId);
         $report_field->data = $this->processReportField($report_field);
     }
     return $this->reportFields;
 }
Example #5
0
 public function getModfield($id)
 {
     $field = Field::find($id);
     $request = InterRequest::find($field->requestid);
     $data = $this->LoadDataByID($request->id);
     for ($i = 0; $i < sizeof($data); $i++) {
         unset($data[$i][strtolower($field->name)]);
     }
     $arr = array();
     $number = 0;
     $arr[$number++] = array_keys($data[0]);
     foreach ($data as $value) {
         $arr[$number++] = array_values($value);
     }
     $field->delete();
     if (!$field->trashed()) {
         return $this->getRequest($request->id);
     }
     $this->SaveData($request->id, $arr);
     return $this->getRequest($request->id);
 }
Example #6
0
 public function handle()
 {
     $script = '<?php' . "\n\n";
     $script .= "Route::group(['prefix'=>'api/" . $this->devis->app_name . "'], function () {" . "\n";
     foreach ($this->devis->tables as $table) {
         if ($table->model != '') {
             $script .= "\t" . 'Route::resource("' . $table->name . '", "' . $table->controllerRouteApiClass() . '");' . "\n";
         }
         if ($table->hasHasBelongsToRelation()) {
             $script .= "\t" . 'Route::get("' . $table->name . '/{' . $table->variable . '}/showWithRelations", "' . $table->controllerRouteApiClass() . '@showWithRelations");' . "\n";
         }
         foreach ($table->hasHasManyRelationList() as $relation) {
             // var_dump($relation);
             $fromField = Field::find($relation['from_field_id']);
             $fromModel = Table::find($relation['model_id']);
             $toModel = Table::find($relation['to_model_id']);
             $script .= "\t\t" . 'Route::get("' . $table->name . '/{' . $fromModel->variable . '}/' . $relation['methodName'] . '", "' . $table->controllerRouteApiClass() . '@' . $relation['methodName'] . '");' . "\n";
         }
         if ($this->getSpecialVueComponentList($table)) {
             $script .= "\n\n";
             $script .= "//get Special Vue Component";
             $script .= "\n";
             foreach ($this->getSpecialVueComponentList($table) as $specialView) {
                 $specialView = '\\Organit\\bootstrapping\\Vue\\MiddlesepcialComponentViews\\' . $this->devis->app_name . '\\' . $specialView;
                 $script .= "\t\t" . (new $specialView($this->devis, $table))->CoreSpecialCompo()->RoutePHPLine();
                 $script .= "\n";
             }
         }
         $script .= "\n\n";
     }
     $script .= "});";
     $this->createFile('../app/Http/' . $this->devis->app_name . '_api.php', $this->devis->app_name, $script);
     echo "<h1>-->Copier dans app\\Providers\\RouteServiceProvider.php</h1>";
     echo "<pre>";
     echo "\n        require app_path('Http/" . $this->devis->app_name . "_routes.php');\n        require app_path('Http/" . $this->devis->app_name . "_api.php');";
     echo "</pre>";
     echo '<a href="/' . $this->devis->app_name . '">Test Route</a>';
 }
Example #7
0
                                                @if(isset($relation->pivot->laravel_name) && in_array($relation->pivot->laravel_name , ['hasMany', 'MorphToMany' ]))
                                                    <?php 
$related_table = \App\Field::find($relation->pivot->to_field_id)->table()->first();
?>
                                                    <a href="{{route('admin.devis.{devis}.admin.table.edit', [$devis->id, $related_table->id])}}"><h3>{{$related_table->name }}</h3></a>
                                                    {{$relation->pivot->to_field_id}} -
                                                    {{\App\Field::find($relation->pivot->to_field_id)->name }} <span style="color:#ccc">(<i>{{App\Field::find($relation->pivot->to_field_id)->type->name }}</i>)</span>


                                                    <b>{{\App\Field::find($relation->pivot->to_field_id)->table->first()->name }}</b><br>
                                                    <i>{{\App\Field::find($relation->pivot->to_field_id)->name }}</i>
                                                @elseif($relation->pivot->laravel_name == 'belongsToMany')
                                                    <?php 
// dd(\App\Field::find($relation->pivot->on_field_id)->table->get());
$related_table = \App\Table::find($relation->pivot->to_model);
$related_field = \App\Field::find($relation->pivot->on_field_id);
?>
                                                    <a href="{{route('admin.devis.{devis}.admin.table.edit', [$devis->id, $related_table->id])}}"><h3>{{$related_table->name }}</h3></a>
                                                    {{-- {{dd($related_fields->)}} --}}
                                                    {{$related_field->id}} -
                                                    {{$related_field->name }} <span style="color:#ccc">(<i>{{$related_field->type->name }}</i>)</span>

                                                @endif
                                            </div>
                                            <div class="col-md-1">

                                                {!! Form::open([
                                                    'method'=>'DELETE',
                                                    'route' => ['admin.devis.{devis}.relation.delete', $devis->id,$relation->pivot->from_field_id ,$relation->pivot->to_field_id],
                                                    'style' => 'display:inline'
                                                ]) !!}
 public function edit_announcement($id)
 {
     $fields = Field::orderBy('name')->lists('name', 'id');
     $terms = Term::lists('name', 'id');
     $municipalities = Municipality::lists('name', 'id');
     $regions = Region::lists('name', 'id');
     $type = array(0 => 'ვატარებ', 1 => 'ვეძებ');
     $quarter = Quarter::all()->lists('name', 'id');
     $months = Month::all()->lists('name', 'id');
     $select = DB::select(' SELECT trainings.id, field_training.field_id, term_training.term_id, municipality_training.municipality_id, month_training.month_id
                             FROM trainings
                             JOIN field_training ON trainings.id = field_training.training_id
                             JOIN term_training ON trainings.id = term_training.training_id
                             JOIN municipality_training ON trainings.id = municipality_training.training_id
                             JOIN month_training ON trainings.id = month_training.training_id
                             where trainings.id = ' . $id . '
                             group by trainings.id
                ');
     $select = $select[0];
     $training_filtered = new \stdClass();
     $training_instance = Training::find($select->id);
     $training_field = Field::find($select->field_id);
     $training_municipality = Municipality::find($select->municipality_id);
     $training_months = DB::select('SELECT months.name FROM month_training JOIN months ON months.id = month_training.month_id WHERE training_id = ' . $training_instance->id);
     $training_terms = DB::select('SELECT terms.name FROM term_training JOIN terms ON terms.id = term_training.term_id WHERE training_id = ' . $training_instance->id);
     foreach ($training_months as $month) {
         $training_months_array[] = $month->name;
     }
     foreach ($training_terms as $term) {
         $training_terms_array[] = $term->name;
     }
     $training_filtered->id = $training_instance->id;
     $training_filtered->header = $training_instance->name;
     $training_filtered->description = $training_instance->description;
     $training_filtered->file = $training_instance->file;
     $training_filtered->link = $training_instance->link;
     $training_filtered->field['name'] = $training_field->name;
     $training_filtered->field['id'] = $training_field->id;
     $training_filtered->months = $training_months_array;
     $training_filtered->terms = $training_terms_array;
     $training_filtered->municipality['name'] = $training_municipality->name;
     $training_filtered->municipality['id'] = $training_municipality->id;
     $training_filtered->region = $training_municipality->region_id;
     $training_filtered->isAdmin = Auth::check();
     return view('edit.edit_announcement', ['fields' => $fields, 'terms' => $terms, 'regions' => $regions, 'municipalities' => $municipalities, 'quarter' => $quarter, 'month' => $months, 'type' => $type, 'training' => $training_filtered]);
 }
Example #9
0
 /**
  *
  * 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'));
 }
Example #10
0
 public function handle()
 {
     // dd('<-----FORM------->',$this->devis, $this->table ,$this->view);
     $viewScript = "@extends('layouts." . $this->table->the_namespace->theme->name . "')" . "\n\n";
     $viewScript .= "@section('menu')" . "\n";
     $viewScript .= $this->tab1 . "@include('" . $this->devis->app_name . "." . $this->table->the_namespace->name . "/" . $this->menuFileNameUsed() . "')" . "\n";
     $viewScript .= "@endsection" . "\n";
     $basePath = $this->table->devis->app_name . '.' . $this->table->the_namespace->name . "." . $this->table->variable;
     if ($this->table->the_namespace->name == 'Web') {
         $basePath = $this->table->devis->app_name . "." . $this->table->variable;
     }
     $viewScript .= "\n@section('content')\n    <h1>" . $this->title . "</h1>\n    <a href='{{ route('" . $basePath . ".create') }}' class='btn btn-success btn-sm'><i class='fa fa-plus'></i> Create</a>\n" . "\n\n";
     $primary = '';
     if ($this->table->getPrimaries()->first()) {
         // dd($primary, )
         $primary = $this->table->getPrimaries()->first()->name;
         # code...
     } else {
         $viewScript .= "\n        <div class='alert alert-error'>PAs de primary yey sur cette table - - les liens edt et create ne fonctionne pas</div>\n\n        ";
     }
     $viewScript .= "\n<div class='table-responsive'>\n <table class='table table-striped table-bordered table-hover dataTables-example' data-toggle='table' data-search='true' data-show-columns='true' data-pagination='true' data-height='750'>\n  <thead>\n    <tr>\n        <th>Actions</th>";
     foreach ($this->table->fields()->where('is_on_index_view', 1)->orderBy('order', 'asc')->get() as $field) {
         $viewScript .= "\n            <th>" . $field->label . "</th>";
     }
     $viewScript .= "\n    </tr>\n</thead>\n<tbody>\n    @forelse(\$" . $this->table->variablePlural . " as \$" . $this->table->variable . ")\n<tr>\n\n\n\n            <td>\n\n            {{--\n                <a href='{{ route('" . $basePath . ".edit', [\$" . $this->table->variable . "->" . $primary . "]) }}'><i class='fa fa-edit'></i></a>\n                <a href='{{ route('" . $basePath . ".delete', [\$" . $this->table->variable . "->" . $primary . "]) }}'><i class='fa fa-times'></i></a>\n            --}}\n\n                <a href='{{ route('" . $basePath . ".edit', [\$" . $this->table->variable . "->" . $primary . "]) }}'><i class='fa fa-edit'></i></a>\n                {!! Form::open([\n                    'method'=>'DELETE',\n                    'route' => ['" . $basePath . ".destroy', \$" . $this->table->variable . "->" . $primary . "],\n                    'style' => 'display:inline'\n                ]) !!}\n                    {!! Form::submit('Delete', ['class' => 'btn btn-danger btn-xs', 'onclick'=>'return confirm()']) !!}\n                {!! Form::close() !!}\n\n\n            </td>\n";
     foreach ($this->table->fields()->where('is_on_index_view', 1)->orderBy('order', 'asc')->get() as $field) {
         $hasBelongsToRelation = false;
         // echo "--------------------------------------------<br>";
         // echo "<h1>".$field->name."</h1>";
         // echo "hasBelongsToRelation -->$hasBelongsToRelation";
         foreach ($field->relations()->get() as $key => $relation) {
             if (in_array($relation->pivot->laravel_name, ['belongsTo'])) {
                 $hasBelongsToRelation = true;
                 $fromField = Field::find($relation->pivot->from_field_id);
                 $toField = Field::find($relation->pivot->to_field_id);
                 $toModel = $toField->table;
                 $defaultFieldName = strtolower(snake_case($toModel->model)) . '_id';
                 if ($fromField->name == $defaultFieldName) {
                     if ($toModel->variable == 'update') {
                         $functionNamne = 'updat';
                     } else {
                         $functionNamne = $toModel->variable;
                     }
                 } else {
                     $functionNamne = camel_case($fromField->name);
                 }
                 $viewScript .= $this->tab3 . "<td>";
                 foreach ($toModel->fields()->where('is_on_foreign_label', 1)->get() as $fieldLabel) {
                     // $viewScript.='789';
                     $viewScript .= "{{ \$" . $this->table->variable . "->" . $functionNamne . "->" . $fieldLabel->name . " or ''}} ";
                 }
                 $viewScript .= "</td> " . "\n";
             }
         }
         // echo "hasBelongsToRelation2 -->$hasBelongsToRelation";
         if ($this->table->name == 'accounts') {
             // var_dump('---->',$field->name);
         }
         if (!$hasBelongsToRelation) {
             //$viewScript.="<td>";
             if ($field->type->name == 'text') {
                 // str_limit('The PHP framework for web artisans.', 7);
                 $viewScript .= $this->tab3 . "<td>{{ str_limit(\$" . $this->table->variable . "->" . $field->name . ", 7)}}</td> " . "\n";
             } else {
                 $viewScript .= $this->tab3 . "<td>{{ \$" . $this->table->variable . "->" . $field->name . "}}</td> " . "\n";
             }
         }
         // $viewScript.=
     }
     $viewScript .= "\n            <!--<td>\n                {{ \$" . $this->table->variable . "->" . $field->name . " }}\n            </td>-->\n</tr>\n\n    @empty\n\n            <tr><td>No data yet ...</td><tr>\n\n    @endforelse\n    </tbody>\n</table>\n</div>\n";
     $viewScript .= "\n@endsection\n";
     $this->createFile('../resources/views/' . $this->devis->app_name . '/' . $this->table->the_namespace->name . '/' . $this->table->model . '/' . $this->view . '.blade.php', $this->devis->app_name, $viewScript);
 }
Example #11
0
 public function create_belongsTo_relation_with(Request $request, Table $toModel)
 {
     $model = $this;
     $from_field_name = snake_case($toModel->model) . '_id';
     if ($request->has('from_field_id') && $request->from_field_id != '') {
         $from_field_name = Field::find($request->from_field_id)->name;
     }
     //dd($model);
     // $from_field_name = snake_case($toModel->model).'_id';
     $to_field_name = 'id';
     if ($toModel->hasPrimaries()) {
         $to_field_name = $toModel->getPrimaries()->first()->name;
     }
     // old --- $to_field_name = 'id';
     $field = $model->findOrCreate(['name' => $from_field_name, 'is_unsigned' => true, 'field_type_id' => 1]);
     $toField = $toModel->findOrCreate(['name' => $to_field_name, 'is_primary' => true, 'is_incrementable' => true, 'field_type_id' => 1]);
     // if ( !  $field->has_relation($toField)) {
     $field->relations()->attach($toField, ['from_field_name' => $field->name, 'to_field_name' => $toField->name, 'laravel_name' => $request->laravel_name, 'pivot_table_name' => '']);
     // }
     // else {
     // Flash::error('A relation Already exists beetween this 2 fields');
     // return false;
     // }
     $toField->relations()->attach($field, ['from_field_name' => $toField->name, 'to_field_name' => $field->name, 'laravel_name' => 'hasMany', 'pivot_table_name' => '']);
     // if ( !  $toField->has_relation($field)) {
     // }
     // else {
     //     Flash::error('A relation Already exists beetween this 2 fields');
     //     return false;
     // }
 }
Example #12
0
 /**
  * Remove metadata from a field
  *
  * @param  int  $pid, int $fid, Request $request
  * @return Response
  */
 public function destroy($pid, $fid, Request $request)
 {
     $meta = Field::find($request->input('flid'))->metadata()->first();
     if ($meta !== null) {
         $meta->delete();
     }
     flash()->overlay('The field\'s metadata was deleted', 'Success!');
     return response()->json('deleted');
 }
Example #13
0
 public function handle()
 {
     $script = '';
     //$script.= "{{ $".$this->relation['to_model']." }} "."\n";
     $related_table = Table::find($this->relation['to_model_id']);
     $basePath = $related_table->devis->app_name . '.' . $related_table->the_namespace->name . "." . $related_table->variable;
     if ($related_table->the_namespace->name == 'Web') {
         $basePath = $related_table->devis->app_name . "." . $related_table->variable;
     }
     $primary = '';
     if ($related_table->getPrimaries()->first()) {
         $primary = $related_table->getPrimaries()->first()->name;
     } else {
         $script .= "\n            <div class='alert alert-error'>Pas de primary yey sur cette table - - les liens edt et create ne fonctionne pas</div>\n            ";
     }
     // $script.= "
     //     <h1>Liste</h1>
     //     <a href='{{ route('".$basePath.".create') }}' class='btn btn-success btn-sm'><i class='fa fa-plus'></i> Create a ".$related_table->model."</a>
     // "."\n\n";
     $script .= "\n        <!-- Button trigger modal -->\n        <button type='button' class='btn btn-success  btn-sm' data-toggle='modal' data-target='#Modal_" . $this->relation['methodName'] . "'>\n         <i class='fa fa-plus'></i> Add a " . $related_table->model . "\n        </button>" . "\n\n";
     $script .= "\n        <div class='table-responsive'>\n         <table class='table table-striped table-bordered table-hover dataTables-example' data-toggle='table' data-search='true' data-show-columns='true' data-pagination='true' data-height='750'>\n          <thead>\n            <tr>\n                <th>Actions</th>";
     foreach ($related_table->fields()->where('is_on_index_view', 1)->orderBy('order', 'asc')->get() as $field) {
         $script .= "\n                    <th>" . $field->label . "</th>";
     }
     $script .= "\n            </tr>\n        </thead>\n        <tbody>\n            @forelse(\$" . $this->table->variable . "->" . $this->relation['methodName'] . " as \$" . $related_table->variable . ")\n        <tr>\n                    <td>\n                        <a href='{{ route('" . $basePath . ".edit', [\$" . $related_table->variable . "->" . $primary . "]) }}'><i class='fa fa-edit'></i></a>\n                        {!! Form::open([\n                            'method'=>'DELETE',\n                            'route' => ['" . $basePath . ".destroy', \$" . $related_table->variable . "->" . $primary . "],\n                            'style' => 'display:inline'\n                        ]) !!}\n                            {!! Form::submit('Delete', ['class' => 'btn btn-danger btn-xs', 'onclick'=>'return confirm()']) !!}\n                        {!! Form::close() !!}\n                    </td>\n        ";
     foreach ($related_table->fields()->where('is_on_index_view', 1)->orderBy('order', 'asc')->get() as $field) {
         $hasBelongsToRelation = false;
         foreach ($field->relations()->get() as $key => $relation) {
             if (in_array($relation->pivot->laravel_name, ['belongsTo'])) {
                 $hasBelongsToRelation = true;
                 $fromField = Field::find($relation->pivot->from_field_id);
                 $toField = Field::find($relation->pivot->to_field_id);
                 $toModel = $toField->table;
                 $defaultFieldName = strtolower(snake_case($toModel->model)) . '_id';
                 if ($fromField->name == $defaultFieldName) {
                     if ($toModel->variable == 'update') {
                         $functionNamne = 'updat';
                     } else {
                         $functionNamne = $toModel->variable;
                     }
                 } else {
                     $functionNamne = camel_case($fromField->name);
                 }
                 $script .= "<td>";
                 foreach ($toModel->fields()->where('is_on_foreign_label', 1)->get() as $fieldLabel) {
                     $script .= "{{ \$" . $related_table->variable . "->" . $functionNamne . "->" . $fieldLabel->name . "}} ";
                 }
                 $script .= "</td> " . "\n";
             }
         }
         if (!$hasBelongsToRelation) {
             if ($field->type->name == 'text') {
                 $script .= "<td>{{ str_limit(\$" . $related_table->variable . "->" . $field->name . ", 7)}}</td> " . "\n";
             } else {
                 $script .= "<td>{{ \$" . $related_table->variable . "->" . $field->name . "}}</td> " . "\n";
             }
         }
     }
     $script .= "\n        </tr>\n            @empty\n                    <tr><td>No data yet ...</td><tr>\n            @endforelse\n            </tbody>\n        </table>\n        </div>\n\n\n\n\n\n        <div class='modal fade' id='Modal_" . $this->relation['methodName'] . "' tabindex='-1' role='dialog' aria-labelledby='myModalLabel'>\n          <div class='modal-dialog modal-lg' role='document'>\n            <div class='modal-content'>\n              <div class='modal-header'>\n                <button type='button' class='close' data-dismiss='modal' aria-label='Close'><span aria-hidden='true'>&times;</span></button>\n                <h4 class='modal-title' id='myModalLabel'>Add a " . $related_table->model . "</h4>\n              </div>\n              <div class='modal-body'>\n\n                @include('" . $related_table->viewPathInController() . ".form', [ 'foreign_key' => '" . $this->relation['to_field'] . "', '" . $this->relation['to_field'] . "' => \$" . $this->table->variable . ", 'primary'=>'" . $related_table->getPrimaries()->first()->name . "', 'form_name'=>'" . $relation['methodName'] . "' ])\n\n              </div>\n              <div class='modal-footer'>\n                <button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>\n                <!--<button type='button' class='btn btn-primary'>Save changes</button>-->\n              </div>\n            </div>\n          </div>\n        </div>\n\n\n\n\n\n        ";
     return $script;
 }
Example #14
0
 /**
  * Dynamically generate our validator based on rules in each field
  * @param  [type] $request [description]
  * @return [type]          [description]
  */
 public function validateInputs($request)
 {
     $inputs = $request->all();
     // We don't need the CSRF token, so drop it
     unset($inputs['_token']);
     $validator_rules = [];
     foreach ($inputs as $key => $input) {
         $field = Field::find($key);
         if (!$field) {
             continue;
         }
         $rules = !empty($field->getRules()) ? $field->getRules() : [];
         $fieldRules = [];
         foreach ($rules as $rule => $enabled) {
             if ($enabled) {
                 $fieldRules[] = $rule;
             }
         }
         if (!empty($fieldRules)) {
             $fieldRules = implode('|', $fieldRules);
             $validator_rules[$field->id] = $fieldRules;
         }
     }
     $validator = Validator::make($request->all(), $validator_rules);
     return $validator;
 }
Example #15
0
 public function testRelations()
 {
     foreach ($this->tables()->where('model', '<>', '')->get() as $a => $table) {
         echo '<h5>&nbsp;&nbsp;&nbsp;&nbsp;<i style="color:green">></i> Preparing files for table <u style="color:#15c">';
         echo $table->name;
         echo '</u></h5>';
         $modelScript = '<?php' . "\n\n";
         $modelScript .= 'namespace ' . $table->modelNamespace() . ';' . "\n\n";
         $modelScript .= 'use Illuminate\\Database\\Eloquent\\Model;' . "\n\n";
         $useList = [];
         // if($table->name == 'users'){
         foreach ($table->fields as $field) {
             // echo $field->name.'<br>';
             foreach ($field->relations as $relation) {
                 // echo "<h1>".$relation->pivot->laravel_name."</h1>";
                 if ($relation->pivot->laravel_name == 'belongsToMany') {
                     $related_table = \App\Table::find($relation->pivot->to_model);
                     // $related_field = \App\Field::find($relation->pivot->on_field_id);
                     // $useList[]=$related_table->modelNamespaceClass();
                 } else {
                     $related_table = Field::find($relation->pivot->to_field_id)->table;
                 }
                 $useList[] = $related_table->modelNamespaceClass();
                 // echo $relation->table->modelNamespaceClass();
             }
         }
         // dd('class=>',$table->modelNamespaceClass(), 'uses=>', $useList);
         // }
         // var_dump($this->renderUsesStatements($useList));
         var_dump($useList);
         $modelScript .= 'class ' . $table->model . ' extends Model' . "\n";
         $modelScript .= '{' . "\n\n";
         // $modelScript.="\t TESTSTSTSTS";
         $modelScript .= $this->tab1 . 'protected $guarded = [];' . "\n";
         $modelScript .= $this->tab1 . 'protected $table = "' . $table->tablename . '";' . "\n";
         $modelScript .= "\n";
         foreach ($table->fields as $field) {
             foreach ($field->relations as $relation) {
                 if (isset($relation->name)) {
                     $related_table = Field::find($relation->pivot->to_field_id)->table()->first();
                     if ($relation->pivot->laravel_name == 'morphedByMany') {
                         $modelScript .= $this->tab1 . 'public function ' . $related_table->variablePlural . '() {' . "\n";
                         $relation->pivot->to_field_id = Field::find($relation->pivot->to_field_id)->name;
                         $modelScript .= $this->tab2 . 'return $this->morphedByMany(' . $related_table->modelNamespaceClass() . '::class);' . "\n";
                         $modelScript .= $this->tab1 . '}' . "\n";
                     }
                     if ($relation->pivot->laravel_name == 'belongsTo') {
                         $modelScript .= $this->tab1 . 'public function ' . $related_table->variable . '() {' . "\n";
                         $relation->pivot->to_field_id = Field::find($relation->pivot->to_field_id)->name;
                         $modelScript .= $this->tab2 . 'return $this->belongsTo(' . $related_table->modelNamespaceClass() . '::class);' . "\n";
                         $modelScript .= $this->tab1 . '}' . "\n";
                     }
                     if ($relation->pivot->laravel_name == 'hasMany') {
                         $modelScript .= $this->tab1 . 'public function ' . $related_table->variablePlural . '() {' . "\n";
                         $relation->pivot->to_field_id = Field::find($relation->pivot->to_field_id)->name;
                         $modelScript .= $this->tab2 . 'return $this->hasMany(' . $related_table->modelNamespaceClass() . '::class);' . "\n";
                         $modelScript .= $this->tab1 . '}' . "\n";
                     }
                     // var_dump($relation->name);
                 }
             }
         }
         $modelScript .= "\n\n";
         $modelScript .= '}' . "\n\n";
         // $modelScript='';
         // echo "------>";
         // if ($table->name == 'users') {
         //     dd($modelScript);
         // }
     }
     //dd('stop script model');
 }
Example #16
0
 public function handle()
 {
     // dd('<-----FORM------->',$this->devis, $this->table ,$this->view);
     var_dump('***********************************************************************************************************');
     var_dump($this->table->name);
     $viewScript = "@extends('layouts." . $this->table->the_namespace->theme->name . "')" . "\n\n";
     $viewScript .= "@section('menu')" . "\n";
     $viewScript .= $this->tab1 . "@include('" . $this->devis->app_name . "." . $this->space->name . "/" . $this->menuFileNameUsed() . "')" . "\n";
     $viewScript .= "@endsection" . "\n";
     $viewScript .= "\n\n";
     $viewScript .= "@section('content')" . "\n";
     $viewScript .= '<h1>' . $this->title . '</h1>';
     $viewScript .= "\n";
     $viewScript .= "\n";
     $hasHasManyRelation = false;
     $relatedHasManyModel = [];
     foreach ($this->table->fields as $field) {
         foreach ($field->relations as $relation) {
             var_dump($relation->pivot->laravel_name);
             if (in_array($relation->pivot->laravel_name, ['hasMany', 'belongsToMany', 'morphToMany'])) {
                 $hasHasManyRelation = true;
                 var_dump('HM');
                 $related_table = Field::find($relation->pivot->to_field_id)->table;
                 $relatedHasManyModel[] = $relation;
                 echo "related";
                 var_dump($related_table->name);
             }
         }
     }
     $viewScript .= "\n";
     if (!empty($relatedHasManyModel)) {
         // if ($hasHasManyRelation) {
         $viewScript .= "\n    <div>\n\n  <!-- Nav tabs -->\n  <ul class='nav nav-tabs' role='tablist'>\n    <li role='presentation' class='active'><a href='#general' aria-controls='general' role='tab' data-toggle='tab'>General</a></li>" . "\n";
         foreach ($relatedHasManyModel as $key => $relatedModel) {
             $viewScript .= "<li role='presentation'><a href='#" . $relatedModel->name . "' aria-controls='" . $relatedModel->name . "' role='tab' data-toggle='tab'>" . $relatedModel->name . "</a></li>" . "\n";
         }
         $viewScript .= "\n  </ul>\n\n  <!-- Tab panes -->\n  <div class='tab-content'>\n    <div role='tabpanel' class='tab-pane fade in active' id='general'>@include('" . $this->table->viewPathInController() . ".form')</div>" . "\n";
         //foreach ($relatedHasManyModel as $key => $relatedModel) {
         foreach ($this->table->fields as $field) {
             foreach ($field->relations as $relation) {
                 if (in_array($relation->pivot->laravel_name, ['belongsToMany', 'morphedByMany', 'morphToMany'])) {
                     $related_table = \App\Table::find($relation->pivot->to_model);
                 }
                 if (in_array($relation->pivot->laravel_name, ['hasMany', 'belongsTo'])) {
                     $related_table = Field::find($relation->pivot->to_field_id)->table;
                 }
                 $fromField = Field::find($relation->pivot->from_field_id);
                 $toField = Field::find($relation->pivot->to_field_id);
                 $toModel = $toField->table;
                 if ($field->relations()->where('from_field_id', $fromField->id)->wherePivot('laravel_name', 'hasMany')->count() > 1) {
                     $functionNamne = $related_table->variablePlural . '_' . $toField->name;
                     $functionNamne = ends_with($functionNamne, '_id') ? substr($functionNamne, 0, -3) : $functionNamne;
                     $functionNamne = camel_case($functionNamne);
                 } else {
                     $functionNamne = $related_table->variablePlural;
                 }
                 if (in_array($relation->pivot->laravel_name, ['hasMany', 'belongsToMany', 'morphToMany'])) {
                     $viewScript .= "<div role='tabpanel' class='tab-pane fade' id='" . $functionNamne . "'>\n                                    @forelse(\$" . $this->table->variable . "->" . $functionNamne . " as \$" . $relatedModel->variable . ")\n                                    {{ \$" . $relatedModel->variable . " }}\n                                    @empty\n                                    No " . $relatedModel->name . " Yet\n                                    @endforelse\n                                </div>" . "\n\n";
                 }
             }
         }
         //}
         $viewScript .= "\n\n  </div>\n\n</div>\n    ";
     } else {
         $viewScript .= $this->tab1 . "@include('" . $this->table->viewPathInController() . ".form')";
     }
     //$viewScript.= $this->tab1.'<h1>'.$this->view.'</h1>';
     $viewScript .= "\n";
     $viewScript .= "\n";
     $viewScript .= "@endsection";
     // $viewScript.="\n\n";
     $this->createFile('../resources/views/' . $this->devis->app_name . '/' . $this->table->the_namespace->name . '/' . $this->table->model . '/' . $this->view . '.blade.php', $this->devis->app_name, $viewScript);
 }
Example #17
0
 public function delete_relation(Devis $devis, $from_field_id, $to_field_id)
 {
     $fromField = Field::find($from_field_id);
     $toField = Field::find($to_field_id);
     //dd($fromField->relations()->where('to_field_id', $to_field_id)->get());
     $laravel_name = $fromField->relations()->where('to_field_id', $to_field_id)->first()->pivot->laravel_name;
     if (in_array($laravel_name, ['belongsToMany'])) {
         $pivot_table_id = $fromField->relations()->where('to_field_id', $to_field_id)->first()->pivot->pivot_table_id;
     }
     $message = '';
     if ($fromField->relations()->detach($toField)) {
         if (in_array($laravel_name, ['belongsToMany'])) {
             //$pivot_table_id = $fromField->relations()->where('to_field_id', $to_field_id)->first()->pivot->pivot_table_id;
             DB::table('relationships')->where('on_field_id', $from_field_id)->where('pivot_table_id', $pivot_table_id)->delete();
             //suppression de la pivot_table
             Table::find($pivot_table_id)->remove();
         }
         if (in_array($laravel_name, ['hasMany', 'belongsTo'])) {
             $pivot_table_id = $toField->relations()->detach($fromField);
         }
         $message .= 'relationhip has been removed';
         if (!$fromField->is_primary) {
             // $fromField->delete();
             // $message.= 'the field <b>'.$fromField.'</b> has been removed. <br>';
         }
         if (!$toField->is_primary) {
             // $toField->delete();
             // $message.= 'the field <b>'.$toField.'</b> has been removed. <br>';
         }
     }
     if ($message) {
         Flash::success($message);
     } else {
         Flash::error('relation not found. Probably already deleted.');
     }
     return redirect()->back();
 }
Example #18
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     return response()->json(Field::find($id));
 }
Example #19
0
 public function formTtpe(Field $field)
 {
     $toReturn = "\n\n        <div class='form-group @if (\$errors->has('" . $field->name . "')) has-error  @endif'>\n        {!!Form::label('" . $field->name . "', '{$field->label}', array('class' => 'control-label '));!!}\n        <div class=''> " . "\n";
     $has_relation = false;
     foreach ($field->relations as $relation) {
         if (in_array($relation->pivot->laravel_name, ['belongsTo'])) {
             $has_relation = true;
             $related_model = \App\Field::find($relation->pivot->to_field_id)->table;
             $basePath = $related_model->devis->app_name . '.' . $related_model->the_namespace->name . "." . $related_model->variable;
             if ($this->table->the_namespace->name == 'Web') {
                 $basePath = $related_model->devis->app_name . "." . $related_model->variable;
             }
             $toReturn .= "{!! Form::select('" . $field->name . "', \$" . $related_model->variablePlural . ", null, ['class'=>'form-control " . $field->name . "']) !!}" . "\n";
             $toReturn .= "<a target='_blank' class='pull-right btn btn-sm btn-success' href='{{route('" . $basePath . ".create')}}'><i class='fa fa-plus'></i> Create a " . $related_model->variable . "</a>" . "\n";
             // $toReturn.="<script>
             //     $('select[name=".$field->name."]').select2({
             //         placeholder: '".$field->placeholder."',
             //         allowClear: true
             //     });
             // </script>"."\n";
         } elseif ($relation->pivot->laravel_name == 'belongsToMany') {
             $has_relation = true;
             $related_model = \App\Table::find($relation->pivot->to_model);
         }
     }
     if (!$has_relation) {
         $toReturn .= "\t\t";
         switch ($field->type->name) {
             case 'integer':
                 $toReturn .= "{!! Form::number('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'string':
                 $toReturn .= "{!! Form::text('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'password':
                 $toReturn .= "{!! Form::password('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'email':
                 $toReturn .= "{!! Form::email('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'dateTime':
                 $toReturn .= "{!! Form::date('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control datepicker', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'datetime':
                 $toReturn .= "{!! Form::date('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control datepicker', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'time':
                 $toReturn .= "{!! Form::date('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control datepicker', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'text':
                 $toReturn .= "{!! Form::textarea('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'mediumtext':
                 $toReturn .= "{!! Form::textarea('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'longtext':
                 $toReturn .= "{!! Form::textarea('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'binary':
                 $toReturn .= "{!! Form::textarea('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'decimal':
                 $toReturn .= "{!! Form::number('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'bigint':
                 $toReturn .= "{!! Form::number('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control ', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             case 'boolean':
                 $toReturn .= "<label class='radio-inline'>{!! Form::radio('" . $field->name . "', 1, ['class' => '']) !!} @lang('core.yes')</label>" . "\n";
                 $toReturn .= "<label class='radio-inline'>{!! Form::radio('" . $field->name . "', 0, ['class' => '']) !!} @lang('core.no')</label>" . "\n";
                 break;
             case 'date':
                 $toReturn .= "{!! Form::date('" . $field->name . "', Input::old('" . $field->name . "') ,  ['class' => 'form-control datepicker', 'placeholder'=>'" . $field->placeholder . "']) !!}" . "\n";
                 break;
             default:
                 # code...
                 break;
         }
     }
     $toReturn .= " </div><p class='text-danger'>@if (\$errors->has('" . $field->name . "')) <span class='error'>{{ \$errors->first('" . $field->name . "') }}</span> @endif</p></div> " . "\n\n";
     return $toReturn;
 }
Example #20
0
 public function handle()
 {
     foreach ($this->devis->tables()->where('model', '<>', '')->get() as $a => $table) {
         // echo '<h5>&nbsp;&nbsp;&nbsp;&nbsp;<i style="color:green">></i> Preparing files for table <u style="color:#15c">';
         // echo $table->name;
         // echo '</u></h5>';
         $script = '<?php' . "\n\n";
         // dd($table->modelNamespace());
         $script .= 'namespace ' . $table->modelNamespace() . ';' . "\n\n";
         $script .= 'use Illuminate\\Database\\Eloquent\\Model;' . "\n\n";
         $useList = [];
         // if($table->name == 'users'){
         foreach ($table->fields as $field) {
             // echo $field->name.'<br>';
             foreach ($field->relations as $relation) {
                 if (in_array($relation->pivot->laravel_name, ['belongsToMany', 'morphedByMany', 'morphToMany'])) {
                     $related_table = \App\Table::find($relation->pivot->to_model);
                 }
                 if (in_array($relation->pivot->laravel_name, ['hasMany', 'belongsTo'])) {
                     $related_table = Field::find($relation->pivot->to_field_id)->table;
                 }
                 $useList[] = $related_table->modelNamespaceClass();
                 // echo $relation->table->modelNamespaceClass();
             }
         }
         // dd('class=>',$table->modelNamespaceClass(), 'uses=>', $useList);
         // }
         // var_dump($this->renderUsesStatements($useList));
         $script .= $this->renderUsesStatements($useList);
         $script .= 'class ' . $table->model . ' extends Model' . "\n";
         $script .= '{' . "\n\n";
         $script .= $this->tab1 . 'protected $guarded = [];' . "\n";
         $script .= $this->tab1 . 'protected $table = "' . $table->tablename . '";' . "\n";
         $dateFields = $table->fields->whereIn('field_type_id', [5, 6, 14]);
         // dd($dateFields->count());
         if ($dateFields->count() > 0) {
             $script .= $this->tab1 . 'protected $dates = [';
             foreach ($dateFields as $dateField) {
                 $script .= '\'' . $dateField->name . '\'' . ',';
             }
             $script = rtrim($script, ',');
             $script .= '];' . "\n";
         }
         //var_dump($table->getPrimaries()->count() > 0);
         if ($table->getPrimaries()->count() > 0) {
             if ($table->getPrimaries()->first()->name != 'id' && $table->getPrimaries()->count() == 1) {
                 $script .= $this->tab1 . 'protected $primaryKey = "' . $table->getPrimaries()->first()->name . '";' . "\n";
             }
         }
         $script .= "\n";
         foreach ($table->relationship() as $relation) {
             if ($relation['laravel_name'] == 'belongsTo') {
                 $defaultFieldName = strtolower(snake_case($relation['to_model'])) . '_id';
                 $script .= $this->tab1 . 'public function ' . $relation['methodName'] . '() {' . "\n";
                 $script .= $this->tab2 . 'return $this->belongsTo(' . $relation['to_model'] . '::class';
                 $showfirstArg = false;
                 if ($relation['from_field'] != $defaultFieldName) {
                     $showfirstArg = true;
                     $script .= ', "' . $relation['from_field'] . '"';
                 }
                 if ($relation['to_field'] != 'id') {
                     if (!$showfirstArg) {
                         $script .= ', "' . $relation['from_field'] . '"';
                     }
                     $script .= ', "' . $relation['to_field'] . '"';
                 }
                 $script .= ');' . "\n";
                 $script .= $this->tab1 . '}' . "\n";
             }
             if ($relation['laravel_name'] == 'hasMany') {
                 $defaultFieldName = strtolower(snake_case($relation['model'])) . '_id';
                 $script .= $this->tab1 . 'public function ' . $relation['methodName'] . '() {' . "\n";
                 $script .= $this->tab2 . 'return $this->hasMany(' . $relation['to_model'] . '::class';
                 $showfirstArg = false;
                 if ($relation['to_field'] != $defaultFieldName) {
                     $showfirstArg = true;
                     $script .= ', "' . $relation['to_field'] . '"';
                 }
                 if ($relation['from_field'] != 'id') {
                     if (!$showfirstArg) {
                         $script .= ', "' . $relation['to_field'] . '"';
                     }
                     $script .= ', "' . $relation['from_field'] . '"';
                 }
                 $script .= ');' . "\n";
                 $script .= $this->tab1 . '}' . "\n";
             }
             if ($relation['laravel_name'] == 'belongsToMany') {
                 /*
                  **  defaultPivotTableName
                  */
                 $array = array($relation['model'], $relation['to_model']);
                 sort($array);
                 $defaultPivotTableName = $this->devis->prefix() . strtolower($array[0] . '_' . $array[1]);
                 //end defaultPivotTableName
                 $script .= $this->tab1 . 'public function ' . $relation['methodName'] . '() {' . "\n";
                 //$relation->pivot->to_field_id = Field::find($relation->pivot->to_field_id)->name;
                 $script .= $this->tab2 . 'return $this->belongsToMany(' . $relation['to_model'] . '::class';
                 // $prefixNull=false;
                 // if ($this->devis->prefix() == '') {
                 //     $prefixNull=true;
                 //     // $script.=', "'.$this->devis->prefix().$relation['pivot_table'].'"';
                 // }else{
                 //     $prefixNull=false;
                 //
                 // }
                 $prefixNull = false;
                 if ($this->devis->prefix() == '') {
                     $prefixNull = true;
                 }
                 if ($this->devis->prefix() . $relation['pivot_table'] != $defaultPivotTableName || !$prefixNull) {
                     $script .= ', "' . $this->devis->prefix() . $relation['pivot_table'] . '"';
                 }
                 $script .= ');' . "\n";
                 $script .= $this->tab1 . '}' . "\n";
             }
         }
         $script .= "\n\n";
         /*
          **  specials methods fom the database class methods
          */
         foreach ($table->methods as $method) {
             // if ($method->isValidPHP()) {
             $script .= $this->tab1 . 'public function ' . $method->name . ' () {' . "\n";
             $script .= $this->tab2 . $method->content . "\n";
             $script .= $this->tab1 . "}\n\n";
             // }
         }
         $script .= "\n\n";
         $script .= '}' . "\n\n";
         // $script='';
         // echo "------>";
         // var_dump('../app/Models/'.$this->devis->app_name.'/'.$table->the_namespace->name.'/'.$table->model.'.php',$this->devis->app_name,$script);
         $this->createFile('../app/Models/' . $this->devis->app_name . '/' . $table->the_namespace->name . '/' . $table->model . '.php', $this->devis->app_name, $script, true);
         // die('++');
         //dd('123');
         // if ($table->name == 'users') {
         //     dd($script);
         // }
     }
     //dd('stop script model');
 }
 public function get_seek_announcements(Request $request)
 {
     $field_search = input::get('field');
     $term_search = input::get('term');
     $region_search = input::get('region');
     $municipalities_search = input::get('municipalities');
     if ($field_search == '0' || empty($field_search)) {
         $fields_all = Field::all(['id']);
         foreach ($fields_all as $field) {
             $fields[] = $field->id;
         }
     } else {
         $fields[] = $field_search;
     }
     if ($term_search == '0' || empty($term_search)) {
         $terms_all = Term::all(['id']);
         foreach ($terms_all as $term) {
             $terms[] = $term->id;
         }
     } else {
         $terms[] = $term_search;
     }
     if ($municipalities_search[0] == '0' || empty($municipalities_search)) {
         if ($region_search != '0' && !empty($region_search)) {
             $any_municipality = Region::find($region_search)->get_municipalities()->get();
         } else {
             $any_municipality = Municipality::all(['id']);
         }
         foreach ($any_municipality as $instance) {
             $municipality_id[] = $instance->id;
         }
     } else {
         $municipality_id = $municipalities_search;
     }
     $select = DB::select(' SELECT seek_trainings.id, field_seek_training.field_id, municipality_seek_training.municipality_id
                             FROM seek_trainings
                             JOIN field_seek_training ON seek_trainings.id = field_seek_training.seek_training_id
                             JOIN municipality_seek_training ON seek_trainings.id = municipality_seek_training.seek_training_id
                             WHERE field_seek_training.field_id in(' . implode(',', $fields) . ')
                             AND municipality_seek_training.municipality_id in (' . implode(',', $municipality_id) . ')
                             group by seek_trainings.id
                         ');
     foreach ($select as $instance) {
         $seek_training_filtered = new \stdClass();
         $seek_training_instance = SeekTraining::find($instance->id);
         $seek_training_field = Field::find($instance->field_id);
         $seek_training_municipality = Municipality::find($instance->municipality_id);
         $training_terms = DB::select('SELECT terms.name FROM seek_training_term JOIN terms ON terms.id = seek_training_term.term_id WHERE seek_training_id = ' . $instance->id);
         $seek_training_terms_array = [];
         foreach ($training_terms as $term) {
             $seek_training_terms_array[] = $term->name;
         }
         $seek_training_filtered->id = $seek_training_instance->id;
         $seek_training_filtered->header = $seek_training_instance->name;
         $seek_training_filtered->description = $seek_training_instance->description;
         $seek_training_filtered->file = $seek_training_instance->file;
         $seek_training_filtered->link = $seek_training_instance->link;
         $seek_training_filtered->per = $seek_training_instance->per;
         $seek_training_filtered->terms = implode(',', $seek_training_terms_array);
         $seek_training_filtered->contact = $seek_training_instance->contact;
         $seek_training_filtered->quantity = $seek_training_instance->quantity;
         $seek_training_filtered->field = $seek_training_field->name;
         $seek_training_filtered->municipality = $seek_training_municipality->name;
         $seek_training_filtered->isAdmin = !(!Auth::user() || Auth::user()->role == 100);
         $seek_training_filtered_array[] = $seek_training_filtered;
         unset($seek_training_filtered);
         unset($seek_training_months_array);
         unset($seek_training_terms_array);
     }
     return response(json_encode($seek_training_filtered_array), 200)->header('Content-Type', 'application/json');
 }
Example #22
0
 public function handle()
 {
     $this->initializeMigrationsArray();
     // $this->sortMigrationArray();
     foreach ($this->migrationsArray as $key => $table) {
         // foreach ($this->devis->tables as $key=>$table) {
         // $table=Table::find($table_id);
         // echo '<h5>&nbsp;&nbsp;&nbsp;&nbsp;<i style="color:green">></i> Preparing files for table <u style="color:#15c">';
         // echo $table->name;
         // echo '</u></h5>';
         /*
          **  migrations
          */
         // $migrationScript = 'sdfsdfsdf '."\n";
         // $migrationScript.= 'sdfsdfsdf \n';
         $migrationScript = '<?php' . "\n\n";
         $migrationScript .= 'use Illuminate\\Database\\Schema\\Blueprint;' . "\n";
         $migrationScript .= 'use Illuminate\\Database\\Migrations\\Migration;' . "\n\n";
         $migrationClassName = $table->model == '' ? camel_case($table->name) : camel_case($table->model);
         $migrationScript .= 'class Create' . $this->devis->app_name . ucfirst($migrationClassName) . 'Table extends Migration' . "\n";
         $migrationScript .= '{' . "\n";
         $migrationScript .= "\t" . 'public function up()' . "\n";
         $migrationScript .= "\t" . '{' . "\n";
         $migrationScript .= "\t\t" . 'if( ! Schema::hasTable("' . $table->tableName . '")) {' . "\n";
         $migrationScript .= "\t\t\t" . 'Schema::create("' . $table->tableName . '", function (Blueprint $table) {' . "\n";
         foreach ($table->fields as $field) {
             if ($field->type->name) {
                 // $migrationScript.= "\t\t\t".'$table->'.$this->typeLaravelMethod($field).'("'.$field->name.'");'."\n"; //work
                 $onTable = '';
                 $referencesKey = '';
                 $has_constraint = false;
                 foreach ($field->relations()->get() as $key => $relation) {
                     if (in_array($relation->pivot->laravel_name, ['belongsTo'])) {
                         $has_constraint = true;
                         $onTable = Field::find($relation->pivot->to_field_id)->table->name;
                         $referencesKey = Field::find($relation->pivot->to_field_id)->name;
                     } else {
                         if (in_array($relation->pivot->laravel_name, ['belongsToMany'])) {
                             if ($field->is_incrementable) {
                                 $has_constraint = false;
                             } else {
                                 $has_constraint = true;
                             }
                         }
                     }
                     if ($has_constraint) {
                         if ($key == 0) {
                             $migrationScript .= "\t\t\t\t" . '$table->' . $this->typeLaravelMethod($field) . '(' . $this->fieldsArguments($field) . ')->unsigned();' . "\n";
                         }
                         $migrationScript .= "\t\t\t\t" . "//\$" . "table->foreign('" . $field->name . "')->references('" . $referencesKey . "')->on('" . $onTable . "');" . "\n\n";
                     }
                 }
                 if (!$has_constraint) {
                     //la table pivot d'un belongs to Many n'est pas spécifiée dans les relations. Allos la chercher
                     if ($table->getPrimaries()->count() > 1) {
                         $onTable = \DB::table('relationships')->where('laravel_name', 'belongsToMany')->where('to_field_id', $field->id)->where('pivot_table_name', $table->name)->first();
                         $onTable = $onTable;
                         if ($onTable) {
                             $field_a = Field::find($onTable->from_field_id);
                             $onTable = $field_a->table;
                             $referencesKey = $field_a->name;
                             $migrationScript .= "\t\t\t\t" . '$table->' . $this->typeLaravelMethod($field) . '(' . $this->fieldsArguments($field) . ')->unsigned();' . "\n";
                             $migrationScript .= "\t\t\t\t" . "//\$" . "table->foreign('" . $field->name . "')->references('" . $referencesKey . "')->on('" . $onTable->name . "');" . "\n\n";
                         } else {
                             $migrationScript .= "\t\t\t\t" . '$table->' . $this->typeLaravelMethod($field) . '(' . $this->fieldsArguments($field) . ');' . "\n";
                         }
                     } else {
                         $migrationScript .= "\t\t\t\t" . '$table->' . $this->typeLaravelMethod($field) . '(' . $this->fieldsArguments($field) . ');' . "\n";
                     }
                 }
             }
         }
         $migrationScript .= "\t\t\t\t" . '$table->timestamps();' . "\n";
         $migrationScript .= "\t\t\t" . '});' . "\n";
         $migrationScript .= "\t\t" . '}//endif' . "\n";
         //endif
         $migrationScript .= "\t" . '}' . "\n\n\n";
         //$migrationScript.='}'."\n";
         $migrationScript .= "\t" . 'public function down()' . "\n";
         $migrationScript .= "\t" . '{' . "\n";
         $migrationScript .= "\t\t" . 'if( Schema::hasTable("' . $table->tableName . '")) {' . "\n";
         $migrationScript .= "\t\t\t" . 'Schema::drop("' . $table->tableName . '");' . "\n";
         $migrationScript .= "\t\t" . '}' . "\n";
         $migrationScript .= "\t" . '}' . "\n";
         $migrationScript .= '}' . "\n\n\n";
         $order = $key;
         $nbOf0 = 6 - strlen($order);
         $zeros = '';
         for ($i = 0; $i < $nbOf0; $i++) {
             $zeros .= '0';
         }
         $order = $zeros . $order;
         $migrationTableName = $table->model == '' ? snake_case($table->name) : snake_case($table->model);
         //$migrationClassName= $table->model==''? camel_case($table->name):camel_case($table->model);
         // if ($table->name == 'contact_vehicle') {
         //     dd($migrationTableName);
         // }
         $migrationFileName = Carbon::now()->format('Y_m_d') . '_' . $order . '_create_' . $this->devis->app_name . '_' . $migrationTableName . '_table.php';
         $this->createFile('../database/migrations/' . $this->devis->app_name . '/' . $migrationFileName, $this->devis->app_name, $migrationScript, true);
     }
     echo "<div style='color:white; background-color:blue; padding:15px'>";
     echo "php artisan migrate --path=/database/migrations/" . $this->devis->app_name;
     echo "</div>";
     echo "<div style='color:white; background-color:purple; padding:15px'>";
     echo "<p>to seed a specific file<p>";
     echo "<h1>php artisan db:seed --class=MiddleDataBatch1Seeder</h1>";
     echo "</div>";
     \Artisan::call('migrate', array('--path' => '/database/migrations/' . $this->devis->app_name));
     // die('+++++++++++++qsdqsdqsdss++++++++++');
 }
Example #23
0
 public function handle()
 {
     foreach ($this->devis->tables()->where('model', '<>', '')->get() as $a => $table) {
         // echo '<h5>&nbsp;&nbsp;&nbsp;&nbsp;<i style="color:green">></i> Preparing UnitTest for table <u style="color:#15c">';
         // echo $table->name;
         // echo '</u></h5>';
         $modelScript = '<?php' . "\n\n";
         //
         // $modelScript.='namespace '.$table->modelNamespace().';'."\n\n";
         //
         // $modelScript.='use Illuminate\Database\Eloquent\Model;'."\n\n";
         $useList = [];
         // if($table->name == 'users'){
         foreach ($table->fields as $field) {
             // echo $field->name.'<br>';
             foreach ($field->relations as $relation) {
                 if (in_array($relation->pivot->laravel_name, ['belongsToMany', 'morphedByMany', 'morphToMany'])) {
                     $related_table = \App\Table::find($relation->pivot->to_model);
                 }
                 if (in_array($relation->pivot->laravel_name, ['hasMany', 'belongsTo'])) {
                     $related_table = Field::find($relation->pivot->to_field_id)->table;
                 }
                 $useList[] = $related_table->modelNamespaceClass();
                 // echo $relation->table->modelNamespaceClass();
             }
         }
         // dd('class=>',$table->modelNamespaceClass(), 'uses=>', $useList);
         // }
         // var_dump($this->renderUsesStatements($useList));
         $modelScript .= $this->renderUsesStatements($useList);
         $modelScript .= 'class ' . $table->model . ' extends Model' . "\n";
         $modelScript .= '{' . "\n\n";
         $modelScript .= $this->tab1 . 'protected $guarded = [];' . "\n";
         $modelScript .= $this->tab1 . 'protected $table = "' . $table->tablename . '";' . "\n";
         $modelScript .= "\n";
         foreach ($table->relationship() as $relation) {
             if ($relation['laravel_name'] == 'belongsTo') {
                 $defaultFieldName = strtolower(snake_case($relation['to_model'])) . '_id';
                 $modelScript .= $this->tab1 . 'public function ' . $relation['methodName'] . '() {' . "\n";
                 $modelScript .= $this->tab2 . 'return $this->belongsTo(' . $relation['to_model'] . '::class';
                 $showfirstArg = false;
                 if ($relation['from_field'] != $defaultFieldName) {
                     $showfirstArg = true;
                     $modelScript .= ', "' . $relation['from_field'] . '"';
                 }
                 if ($relation['to_field'] != 'id') {
                     if (!$showfirstArg) {
                         $modelScript .= ', "' . $relation['from_field'] . '"';
                     }
                     $modelScript .= ', "' . $relation['to_field'] . '"';
                 }
                 $modelScript .= ');' . "\n";
                 $modelScript .= $this->tab1 . '}' . "\n";
             }
             if ($relation['laravel_name'] == 'hasMany') {
                 $defaultFieldName = strtolower(snake_case($relation['model'])) . '_id';
                 $modelScript .= $this->tab1 . 'public function ' . $relation['methodName'] . '() {' . "\n";
                 $modelScript .= $this->tab2 . 'return $this->hasMany(' . $relation['to_model'] . '::class';
                 if ($relation['to_field'] != $defaultFieldName) {
                     $modelScript .= ', "' . $relation['from_field'] . '"';
                 }
                 if ($relation['from_field'] != 'id') {
                     $modelScript .= ', "' . $relation['to_field'] . '"';
                 }
                 $modelScript .= ');' . "\n";
                 $modelScript .= $this->tab1 . '}' . "\n";
             }
             if ($relation['laravel_name'] == 'belongsToMany') {
                 # code...
             }
         }
         $modelScript .= "\n\n";
         $modelScript .= '}' . "\n\n";
         // $modelScript='';
         // echo "------>";
         // var_dump('../app/Models/'.$this->devis->app_name.'/'.$table->the_namespace->name.'/'.$table->model.'.php',$this->devis->app_name,$modelScript);
         $this->createFile('../app/Models/' . $this->devis->app_name . '/' . $table->the_namespace->name . '/' . $table->model . '.php', $this->devis->app_name, $modelScript, true);
         // die('++');
         //dd('123');
         // if ($table->name == 'users') {
         //     dd($modelScript);
         // }
     }
     //dd('stop script model');
 }
    public function handle()
    {
        //
        $script = '

                <style>

                </style>



                <template>

                <h1>' . $this->table->model . '  Index</h1>

                    Mettre ici : <br>
                    - menu des relations à plusieurs<br>
                    - menu des specialcompo
                    - acces a list
                    - acces a create
                    <br>
                    <br>
                    et le router-view


                    ';
        $hasHasManyRelation = false;
        $ManyRelationQuantity_sup_4 = false;
        /*
                                    if ($table->hasHasManyRelation()) {
                                        $hasHasManyRelation = true;
                                        hasHasManyRelationList()->count();
                                    }
                                    $hasSpecialVueComponent = false;
                                    if ($this->getSpecialVueComponentList($table)) {
                                        $hasSpecialVueComponent = true;
                                    }
                                    ////
                                    if (!$hasHasManyRelation && !$hasSpecialVueComponent) { //C
                                        # code...
                                    }
        */
        $script = '








                            <template>


                            <div class=row>
                            <h1>Index <b>{{object.name}}</b></h1>
                            <!--<ui-icon-button icon="navigate_before" @click.prevent="goBack" tooltip="Go back" type="primary" color="default" class="pull-left" ></ui-icon-button>-->
                            </div>
                            ' . "\n";
        if ($this->table->hasHasManyRelation()) {
            $script .= '
                                <div class="tabbable">
                                    <ul class="nav nav-pills nav-stacked col-md-3">
                                        <li class="active"><a href="#general" data-toggle="tab">General</a></li>
                                        ';
            if ($this->getSpecialVueComponentList($this->table)) {
                foreach ($this->getSpecialVueComponentList($this->table) as $specialView) {
                    $script .= '<li><a href="#' . $specialView . '" data-toggle="tab">' . $specialView . '</a></li>';
                }
            } else {
                foreach ($this->table->hasHasManyRelationList() as $relation) {
                    $script .= '<li class=""><a href="#' . $relation['methodName'] . '" data-toggle="tab">' . $relation['methodName'] . '</a></li>';
                }
            }
            $script .= '
                                    </ul>
                                    <div class="tab-content col-md-8">
                                        <div class="tab-pane fade in active" id="general">
                                        ';
            if ($this->table->name == 'vehicles') {
                $script .= '
                                            <div>
                                                    <!-- Nav tabs -->
                                                    <ul class="nav nav-tabs" role="tablist">
                                                    <li role="presentation" class="active"><a href="#form" aria-controls="home" role="tab" data-toggle="tab">' . $this->table->model . ' form</a></li>
                                                    ';
                foreach ($this->table->hasHasManyRelationList() as $relation) {
                    $script .= '<li><a href="#' . $relation['methodName'] . '" role="tab" data-toggle="tab">' . $relation['methodName'] . '</a></li>';
                }
                $script .= '
                                                    </ul>

                                                    <!-- Tab panes -->
                                                    <div class="tab-content">
                                                    <div role="tabpanel" class="tab-pane active" id="form">
                                                         <' . $this->table->VueTag('form') . ' :created-object.sync="created' . $this->table->model . '" ></' . $this->table->VueTag('form') . '>
                                                    </div>
                                                    ';
                foreach ($this->table->hasHasManyRelationList() as $relation) {
                    $related_model = \App\Table::find($relation['to_model_id']);
                    $fromField = \App\Field::find($relation['from_field_id']);
                    $script .= '
                                                               <div class="tab-pane fade in" id="' . $relation['methodName'] . '">
                                                                  <' . $related_model->VueTag('list', $relation['methodName']) . ' :from-id="getId" :url="getUrl(\'' . $relation['methodName'] . '\')"></' . $related_model->VueTag('list', $relation['methodName']) . '>
                                                               </div>';
                    $script .= '' . "\n";
                }
                $script .= '
                                                    </div>

                                                    </div>
                                            ';
            } else {
                $script .= ' <' . $this->table->VueTag('form') . ' :created-object.sync="created' . $this->table->model . '" ></' . $this->table->VueTag('form') . '> ';
            }
            $script .= '
                                        </div>
                                        ';
            if ($this->getSpecialVueComponentList($this->table)) {
                foreach ($this->getSpecialVueComponentList($this->table) as $specialView) {
                    $script .= '
                                            <div class="tab-pane fade in" id="' . $specialView . '">
                                                <' . $this->table->VueTag('', $specialView) . ' :' . $this->table->variable . '="object"></' . $this->table->VueTag('', $specialView) . '>

                                             </div>
                                            ';
                }
            } else {
                foreach ($this->table->hasHasManyRelationList() as $relation) {
                    $related_model = \App\Table::find($relation['to_model_id']);
                    $fromField = \App\Field::find($relation['from_field_id']);
                    $script .= '
                                                       <div class="tab-pane fade in" id="' . $relation['methodName'] . '">
                                                          <' . $related_model->VueTag('list', $relation['methodName']) . ' :from-id="getId()" :url="getUrl(\'' . $relation['methodName'] . '\')"></' . $related_model->VueTag('list', $relation['methodName']) . '>
                                                       </div>';
                    ///api/'.$this->devis->app_name.'/'.$this->table->name.'//'.strtolower($relation['methodName']).'
                    $script .= '' . "\n";
                    // $script.=$this->tab1.'import '.$related_model->vueComponentName('list') . ' from \'' . $this->table->vueComponentRelativePathTo($related_model, 'list').'\''."\n";
                }
            }
            $script .= '
                                    </div><!--tab content-->
                                </div>
                                ';
        } else {
            //doesn't have has many relation
            //-->load the form
            $script .= '<router-view></router-view>
                                #98789444da9 --> router-view -> Afficher le formulaire #98789444da9
                                ';
        }
        if ($this->table->name == 'vehicles') {
            $script .= '
                                        <h3>Financials</h3>

                                        <graph-line2></graph-line2>
                                        <h4>Actual</h4>

                                        <h4>Budget</h4>


                                        <h3>Cash fLOW FORECAST</h3>
                                        <graph-line1></graph-line1>


                                        ' . "\n\n";
        }
        $script .= '</template>' . "\n\n";
        $script .= "\n\n";
        $script .= '<script>' . "\n\n";
        $components = [];
        $script .= $this->tab1 . 'import ' . $this->table->vueComponentName('form') . ' from \'' . $this->table->vueComponentRelativePathTo($this->table, 'form') . '\'' . "\n";
        $components[] = $this->table->vueComponentName('form');
        $relationToModel = [];
        /*
         **  ajout des composant des relations
         */
        foreach ($this->table->hasHasManyRelationList() as $relation) {
            $related_model = \App\Table::find($relation['to_model_id']);
            $fromField = \App\Field::find($relation['from_field_id']);
            $componentName = $related_model->vueComponentName('list', $relation['methodName']);
            $path = $this->table->vueComponentRelativePathTo($related_model, 'list');
            // $relationToModel[]=$related_model->name;
            $components[] = $componentName;
            $script .= 'import ' . $componentName . ' from \'' . $path . '\'' . "\n";
            //$script.=$this->tab1.'import '.$related_model->vueComponentName('list') . ' from \'' . $this->table->vueComponentRelativePathTo($related_model, 'list').'\''."\n";
        }
        /*
         ** Ajout des special components
         */
        if ($this->getSpecialVueComponentList($this->table)) {
            foreach ($this->getSpecialVueComponentList($this->table) as $specialView) {
                $componentName = $this->table->vueComponentName('', $specialView);
                $path = $this->table->vueComponentRelativePathTo($this->table, $specialView);
                $components[] = $componentName;
                $script .= 'import ' . $componentName . ' from \'' . $path . '\'' . "\n";
            }
        }
        $script .= '


                            export default {
                                components: {' . "\n";
        foreach ($components as $component) {
            $script .= $this->tab4 . $component . ', ' . "\n";
        }
        $script .= '
                                },

                                props :{

                                },

                                ready () {
                                    this.fetchObject()
                                },
                                watch: {
                                    // \'object.crm_app.activity_id\': function (val, oldVal) {
                                    //     console.log(`value changed from ${oldVal} to ${val}`)
                                    // },


                                },

                                data(){
                                    return {

                                        object:{},
                                        ';
        $components = [];
        foreach ($this->table->relationship() as $relation) {
            if (in_array($relation['laravel_name'], ['belongsTo']) && !in_array($relation['to_model_id'], $components)) {
                $script .= '';
                $related_model = \App\Table::find($relation['to_model_id']);
                $components[] = $relation['to_model_id'];
                $script .= '
                                        showForm_' . $related_model->variable . ' : false,' . "\n";
                $script .= '
                                        created' . $related_model->model . ' : {},' . "\n";
                $script .= '
                                        ' . $related_model->model . 'List:[],' . "\n";
            }
        }
        $script .= '

                                    };
                                },

                                filters:{

                                },
                                computed : {
                                    getId(){
                                        return this.$route.params.' . strtolower(snake_case($this->table->model)) . '_id' . '
                                    }

                                },

                                methods: {
                                    fetchObject () {
                                        this.$http.get(\'/api/' . $this->devis->app_name . '/' . $this->table->name . '/\'+this.$route.params.' . strtolower(snake_case($this->table->model)) . '_id' . ').then(function (response) {
                                                  this.object = response.data.data
                                                  this.loading=false

                                              }, function (response) {
                                                  // error callback
                                              });
                                    },
                                    goBack(){
                                        this.$route.router.go(window.history.back())
                                    },
                                    getUrl(methodName){
                                        id = this.$route.params.' . strtolower(snake_case($this->table->model)) . '_id' . '
                                        return \'api/' . $this->devis->app_name . '/' . $this->table->name . '/\'+id+\'/\'+methodName
                                    },
                                    getId(){
                                        return this.$route.params.' . strtolower(snake_case($this->table->model)) . '_id' . '
                                    }
                                },
                            }

                            ';
        // dd($script);
        $script .= '</script>' . "\n\n";
        $script .= '<style>' . "\n\n";
        $script .= '</style>' . "\n\n";
        // File::put('uploads/bootstrapping/'.$this->devis->app_name.'/vue_components/'.$this->table->model.'/list.vue',$script);
        $this->createFile($this->path(), $this->devis->app_name, $script);
    }
Example #25
0
Route::get('api/table/{table}/getHasManyRelations', function (App\Table $table) {
    // http://organit.app/api/table/1/fields
    return $table->hasHasManyRelationList();
});
Route::get('/api/allotments/{allotement}/allotmentFieldList', function (App\Allotment $allotement) {
    // http://organit.app/api/table/1/fields
    return $allotement->allotmentFields->load('allotment', 'field');
});
Route::post('api/table/createAllotmentOnTable/{table}/{raw}/{record}', function (App\Table $table, App\Raw $raw, App\Record $record) {
    // http://organit.app/api/table/1/fields
    // $aa = $record->record->records()->get();
    // $field = \App\Field::find($record->field_id);
    foreach ($raw->records as $record) {
        $field = Field::find($record->field_id);
        if (Field::find($record->field_id)->name == 'slug') {
            $slugField = Field::find($record->field_id);
            continue;
        }
    }
    // dd($slugField);
    $slugRecord = Record::where('raw_id', $raw->id)->where('field_id', $slugField->id)->first();
    $slugValue = $slugRecord->value;
    // dd($slugValue);
    $allotement = App\Allotment::create(['table_id' => $table->id, 'raw_id' => $raw->id, 'record_id' => $slugRecord->id]);
    return $allotement;
    // dd($aa);
    // dd($table->name, $record);
});
Route::get('api/table/{table}/records', function (App\Table $table) {
    // http://organit.app/api/table/1/fields
    $class = $table->modelNamespaceClass();
Example #26
0
 public function handle()
 {
     $fakerScript = '<?php' . "\n\n";
     foreach ($this->devis->tables()->where('model', '<>', '')->get() as $table) {
         // var_dump('------------------------',$table->name);
         // echo '<h5>&nbsp;&nbsp;&nbsp;&nbsp;<i style="color:green">></i> Preparing faker class for model <u style="color:#15c">';
         // echo $table->name;
         // echo '</u></h5>';
         if ($table->hasFixedRecords()) {
             $class = $table->modelNamespaceClass();
             if (Schema::hasTable($table->TableName)) {
                 $class::truncate();
             }
             foreach ($table->raws as $raw) {
                 $recordList = [];
                 foreach ($raw->records as $record) {
                     $recordList[$record->field->name] = $record->value;
                 }
                 $class::create($recordList);
             }
             continue;
         }
         //endif ($table->hasFixedRecords())
         $fakerScript .= '$factory->define(' . $table->modelNamespace() . '\\' . $table->model . '::class, function (Faker\\Generator $faker) {' . "\n";
         $fakerScript .= "\t" . '$faker = Faker\\Factory::create("fr_FR");' . "\n";
         $fakerScript .= "\t" . 'return [' . "\n";
         foreach ($table->fields as $field) {
             if ($field->is_incrementable) {
                 continue;
             }
             $hasRelation = false;
             foreach ($field->relations as $relation) {
                 if (in_array($relation->pivot->laravel_name, ['hasMany', 'belongsTo'])) {
                     $hasRelation = true;
                     $related_table = Field::find($relation->pivot->to_field_id)->table;
                     $toField = Field::find($relation->pivot->to_field_id);
                 }
                 // if ($related_table->name == 'vehicle_types') {
                 //     $fakerScript.="\t\t". '---->"'.$related_table->hasFixedRecords()."\n";
                 //     # code...
                 // }
                 if ($related_table->hasFixedRecords()) {
                     //dd($table->name,'123',$field->name);
                     // $fakerScript.="\t\t". '"'.$field->name.'" => $faker->'.$toField->randomFixedRecord()."\n";
                     $fakerScript .= "\t\t" . '"' . $field->name . '" => $faker->randomElement($array = ' . $toField->randomFixedRecord() . '),' . "\n";
                 } else {
                     $fakerScript .= "\t\t" . '"' . $field->name . '" => function () {' . "\n";
                     $fakerScript .= "\t\t\t" . 'return factory(';
                     $fakerScript .= $related_table->modelNamespaceClass() . '::class';
                     $fakerScript .= ')->create()->';
                     //$fakerScript.='id';
                     $fakerScript .= $related_table->getPrimaries()->first()->name;
                     $fakerScript .= ';' . "\n";
                     $fakerScript .= "\t\t" . '},' . "\n";
                 }
             }
             if (!$hasRelation) {
                 $fakerScript .= "\t\t" . '"' . $field->name . '" => ' . $this->fakerMethod($field) . ',' . "\n";
             }
         }
         $fakerScript .= "\t" . '];' . "\n";
         $fakerScript .= '});' . "\n";
         $fakerScript .= "\n\n";
     }
     //File::put('uploads/bootstrapping/'.$this->devis->app_name.'/ModelFactory/ModelFactory.php',$fakerScript);
     $this->createFile('../database/factories/' . $this->devis->app_name . '_factory.php', $this->devis->app_name, $fakerScript);
     foreach ($this->devis->tables()->where('model', '<>', '')->get() as $table) {
         if ($table->hasFixedRecords()) {
             continue;
         }
         if (Schema::hasTable($table->tablename)) {
             // dd($table->modelNamespaceClass());
             factory($table->modelNamespaceClass())->create();
             // factory(\App\Models\Middle\Web\Provider::class)->create();
             // echo "string";
         }
     }
     // '../database/factories/'.$this->app_name.'_factory.php',
 }
Example #27
0
    public function VueformType(Field $field)
    {
        $asterix = '';
        if ($field->isRequired()) {
            $asterix = '<span class="text-danger">*</span>';
        }
        $toReturn = '

            <div class="form-group ' . $field->name . '">
                <div class="col-md-12 col-sm-12 ">
                <label for="' . $field->name . '" class="col-sm-2 control-label">' . $field->label . ' ' . $asterix . '</label>
                <div class="col-sm-10 "> ' . "\n";
        $has_relation = false;
        foreach ($field->relations as $relation) {
            if (in_array($relation->pivot->laravel_name, ['belongsTo'])) {
                $has_relation = true;
                $related_model = \App\Field::find($relation->pivot->to_field_id)->table;
                $toReturn .= '

                    <div v-if="!showForm_' . $related_model->variable . '">
                        <select v-model="object.' . $field->name . '" class="form-control" ' . $field->vueValidateField() . '>
                            <option v-for="' . $related_model->model . ' in ' . $related_model->model . 'List" :value="' . $related_model->model . '.' . $related_model->primary() . '"> ';
                foreach ($related_model->fields()->where('is_on_foreign_label', 1)->orderBy('order', 'asc')->get() as $foreignLabel) {
                    $toReturn .= '
                                    {{ ' . $related_model->model . '.' . $foreignLabel->name . ' }} ';
                }
                $toReturn .= '
                            </option>
                        </select>
                        ';
                if ($field->hasValidation()) {
                    $toReturn .= '
                        <div class="errors">
                            ' . $field->vueValidationErrors() . '
                        </div>
                    </div>' . "\n";
                }
                $toReturn .= '
                        <div v-else>
                            <input type="text" v-model="created' . $related_model->model . '.' . $related_model->primary() . '"  v-validate:' . $field->vueValidationVariable() . '="{required:true}">
                        </div>';
                // $toReturn.="<a target='_blank' class='pull-right btn btn-sm btn-success' href='{{route('".$basePath.".create')}}'><i class='fa fa-plus'></i> Create a ".$related_model->variable."</a>"."\n";
                $toReturn .= '
                    <ui-icon-button v-if="!showForm_' . $related_model->variable . '" icon="add" @click.prevent="showForm_' . $related_model->variable . '= ! showForm_' . $related_model->variable . ', this.object.' . $related_model->variable . '_id=\'\'" tooltip="Add" type="normal" color="primary" class="pull-right" ></ui-icon-button>

                    <ui-icon-button v-if="showForm_' . $related_model->variable . '" icon="remove" @click.prevent="showForm_' . $related_model->variable . '= ! showForm_' . $related_model->variable . '" tooltip="cancel" type="normal" color="default" class="pull-right" ></ui-icon-button>

                    <div class="well" v-if="showForm_' . $related_model->variable . '">

                        <div v-if="created' . $related_model->model . '.' . $related_model->primary() . '">' . "\n";
                $toReturn .= $this->tab7 . '<b>';
                foreach ($related_model->fields()->where('is_on_foreign_label', 1)->orderBy('order', 'asc')->get() as $foreignLabel) {
                    $toReturn .= '
                                {{ created' . $related_model->model . '.' . $foreignLabel->name . ' }} ';
                }
                $toReturn .= '
                            </b>

                        </div>
                        <div v-else>
                            <' . $related_model->VueTag('form') . ' force-mode="create" :created-object.sync="created' . $related_model->model . '" ></' . $related_model->VueTag('form') . '>
                        </div>
                    </div>
                    ' . "\n";
                //:created-id.sync="object[\''.$field->name.'\']"
            } elseif ($relation->pivot->laravel_name == 'belongsToMany') {
                $has_relation = true;
                $related_model = \App\Table::find($relation->pivot->to_model);
            }
        }
        if (!$has_relation) {
            $toReturn .= "\t\t";
            switch ($field->type->name) {
                case 'integer':
                case 'decimal':
                case 'bigint':
                    $toReturn .= '
                    <input type="number" class="form-control" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'string':
                    $toReturn .= '
                    <input type="text" class="form-control" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'password':
                    $toReturn .= '
                    <input type="password" class="form-control" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'email':
                    $toReturn .= '
                    <input type="email" class="form-control" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'currency':
                    $toReturn .= '<input type="date" class="form-control datepicker" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                <div class="errors">
                    ' . $field->vueValidationErrors() . '
                </div>' . "\n";
                    }
                    break;
                case 'dateTime':
                case 'datetime':
                case 'time':
                case 'date':
                    $toReturn .= '<input type="date" class="form-control datepicker" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'text':
                case 'mediumtext':
                case 'longtext':
                    $toReturn .= '
                    <textarea class="form-control" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '></textarea>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'binary':
                    $toReturn .= '
                    <textarea class="form-control" v-model="object.' . $field->name . '" placeholder="' . $field->placeholder . '" ' . $field->vueValidateField() . '></textarea>' . "\n";
                    if ($field->hasValidation()) {
                        $toReturn .= '
                    <div class="errors">
                        ' . $field->vueValidationErrors() . '
                    </div>' . "\n";
                    }
                    break;
                case 'boolean':
                    $toReturn .= '
                    <!--
                    <label class="radio-inline">
                        <input v-model="object.' . $field->name . '" type="radio" value="1"> Yes
                    </label>
                    <label class="radio-inline">
                        <input v-model="object.' . $field->name . '" type="radio" value="0"> No
                    </label>-->

                    <ui-switch :value.sync="object.' . $field->name . '" label="" ></ui-switch>
                        ';
                    break;
            }
        }
        // $toReturn.=" </div><p class='text-danger'>@if (\$errors->has('".$field->name."')) <span class='error'>{{ \$errors->first('".$field->name."') }}</span> @endif</p></div> "."\n\n";
        $toReturn .= '
                </div>
            </div>
        </div>
    ' . "\n\n";
        return $toReturn;
    }