From f90ea011cb00cec87871a38d1ad220b798d5f232 Mon Sep 17 00:00:00 2001 From: Bryan Meurisse Date: Thu, 25 Jul 2024 08:48:07 -0400 Subject: [PATCH] fix Input old --- src/CrudController.php | 65 ++++++++++++++++++++----------------- src/FieldTypes/Date.php | 2 +- src/FieldTypes/Email.php | 2 +- src/FieldTypes/Number.php | 2 +- src/FieldTypes/Select.php | 2 +- src/FieldTypes/Text.php | 3 +- src/FieldTypes/Textarea.php | 2 +- 7 files changed, 42 insertions(+), 36 deletions(-) diff --git a/src/CrudController.php b/src/CrudController.php index a6ddee1..1d9b740 100644 --- a/src/CrudController.php +++ b/src/CrudController.php @@ -59,9 +59,11 @@ class CrudController extends Controller public function __construct($entity, $config = []) { + $this->entity = $entity; - $config = count($config) ? $config : config('crud.'.$this->route); + $config = count($config) ? $config : config('crud.' . $this->route); + if (is_array($config)) { foreach ($config as $key => $value) { @@ -71,19 +73,19 @@ public function __construct($entity, $config = []) $this->actions = [ 'details' => function ($row, $route) { - return ' + return ' '; }, 'edit' => function ($row, $route) { - return ' + return ' '; }, 'delete' => function ($row, $route) { - return ' + onclick="return confirm(\'' . trans('eliurkis::crud.confirmation_delete') . '\');"> '; }, @@ -227,10 +229,10 @@ public function store(Request $request) DB::commit(); - event($this->route.'.store', [$row, $mediaFiles]); + event($this->route . '.store', [$row, $mediaFiles]); return redirect() - ->route($this->route.'.index') + ->route($this->route . '.index') ->with('success', isset($this->textsGeneral['save_action']) ? $this->textsGeneral['save_action'] : trans('eliurkis::crud.save_action')); @@ -238,6 +240,7 @@ public function store(Request $request) public function edit($id) { + if (!$this->entityInstance) { $this->entityInstance = $this->entity->findOrFail($id); } @@ -285,10 +288,10 @@ public function update(Request $request, $id) DB::commit(); - event($this->route.'.update', [$row, $mediaFiles]); + event($this->route . '.update', [$row, $mediaFiles]); return redirect() - ->route($this->route.'.index', $this->getParamsFilters($row)) + ->route($this->route . '.index', $this->getParamsFilters($row)) ->with('success', isset($this->textsGeneral['save_action']) ? $this->textsGeneral['save_action'] : trans('eliurkis::crud.save_action')); @@ -300,10 +303,10 @@ public function destroy($id) $row = $this->entity->findOrFail($id); $row->delete(); - event($this->route.'.destroy', [$row]); + event($this->route . '.destroy', [$row]); } catch (ModelNotFoundException $e) { return redirect() - ->route($this->route.'.index') + ->route($this->route . '.index') ->with('error', __('The element that you are trying to delete does not exist')); } catch (\Exception $e) { \Log::error($e); @@ -312,12 +315,12 @@ public function destroy($id) } return redirect() - ->route($this->route.'.index') + ->route($this->route . '.index') ->with('error', __('An error occurred, try again')); } return redirect() - ->route($this->route.'.index') + ->route($this->route . '.index') ->with('success', isset($this->textsGeneral['delete_action']) ? $this->textsGeneral['delete_action'] : trans('eliurkis::crud.delete_action')); @@ -388,8 +391,8 @@ protected function htmlFilters() if (isset($urlParams['filter'][$filter])) { unset($urlParams['filter'][$filter]); } - $this->fields[$filter]['attributes']['data-filter-url'] = route($this->route.'.index', $urlParams) - .(count($urlParams) ? '&' : '?'); + $this->fields[$filter]['attributes']['data-filter-url'] = route($this->route . '.index', $urlParams) + . (count($urlParams) ? '&' : '?'); // Create array $this->action = 'list'; @@ -414,7 +417,7 @@ protected function paginate($entity, $request) if ($request->get('filter')) { foreach ($request->get('filter') as $field => $value) { - $rows->appends(['filter['.$field.']' => $value]); + $rows->appends(['filter[' . $field . ']' => $value]); } } @@ -434,7 +437,7 @@ protected function search($entity, $request) $entity = $entity->where(function (Builder $query) use ($request, $searchableCols) { foreach ($searchableCols as $field) { - $query->orWhere($field, 'like', '%'.$request->get('q').'%'); + $query->orWhere($field, 'like', '%' . $request->get('q') . '%'); } }); @@ -506,8 +509,8 @@ protected function prepareLinks() $links = ['index', 'create', 'store']; foreach ($links as $link) { - if (!isset($this->links[$link]) && Route::has($this->route.'.'.$link)) { - $this->links[$link] = route($this->route.'.'.$link); + if (!isset($this->links[$link]) && Route::has($this->route . '.' . $link)) { + $this->links[$link] = route($this->route . '.' . $link); } } @@ -582,15 +585,17 @@ protected function prepareRelationalFields($name) protected function prepareFields() { + + foreach ($this->fields as $name => $properties) { $this->fields[$name]['html'] = $this->prepareField($name, $properties); $this->fields[$name]['value'] = $this->entityInstance->$name ?? null; $this->fields[$name]['value_text'] = $this->prepareFieldShow($name, $properties); } - + return $this->fields; } - + protected function prepareFieldShow($name, $properties = []) { // Init @@ -608,7 +613,8 @@ protected function prepareFieldShow($name, $properties = []) if ($this->entityInstance) { if (($properties['type'] === 'date' || $properties['type'] === 'datetime') && - $this->entityInstance->$name != '') { + $this->entityInstance->$name != '' + ) { $fieldValue = $this->entityInstance->$name; if (!is_object($fieldValue)) { @@ -621,12 +627,12 @@ protected function prepareFieldShow($name, $properties = []) } if (substr($properties['type'], 0, 4) === 'file' && $this->entityInstance->getMedia($name)->last()) { - $value = ''.( - isset($this->fields[$name]['link_name']) + $value = '' . ( + isset($this->fields[$name]['link_name']) ? $this->fields[$name]['link_name'] : 'download' - ).''; + ) . ''; } if (isset($config['entity'])) { @@ -657,12 +663,13 @@ protected function prepareField($name, $properties = []) $value = $this->entityInstance ? isset($properties['value_alias']) - ? $this->entityInstance->{$properties['value_alias']} - : $this->entityInstance->$name + ? $this->entityInstance->{$properties['value_alias']} + : $this->entityInstance->$name : ($this->fields[$name]['default_value'] ?? null); // Define field type class namespace - $className = Str::studly($properties['type']); + $className = '\Eliurkis\Crud\FieldTypes\\'.Str::studly($properties['type']); + if (!class_exists($className)) { return; } diff --git a/src/FieldTypes/Date.php b/src/FieldTypes/Date.php index 32d373a..96bf33d 100644 --- a/src/FieldTypes/Date.php +++ b/src/FieldTypes/Date.php @@ -12,7 +12,7 @@ public static function prepare($name, $value = null, $properties = []) return '
' . Html::text($name) - ->value(Input::old($name, $value)) + ->value(old($name, $value)) ->attributes($properties['attributes'] ?? []) ->toHtml() . '
'; diff --git a/src/FieldTypes/Email.php b/src/FieldTypes/Email.php index 5985d9d..591e4b1 100644 --- a/src/FieldTypes/Email.php +++ b/src/FieldTypes/Email.php @@ -10,7 +10,7 @@ class Email public static function prepare($name, $value = null, $properties = []) { return Html::email($name) - ->value(Input::old($name, $value)) + ->value(old($name, $value)) ->attributes($properties['attributes'] ?? []); } } \ No newline at end of file diff --git a/src/FieldTypes/Number.php b/src/FieldTypes/Number.php index 8fc80da..bc094cd 100644 --- a/src/FieldTypes/Number.php +++ b/src/FieldTypes/Number.php @@ -10,7 +10,7 @@ class Number public static function prepare($name, $value = null, $properties = []) { return Html::input('number', $name) - ->value(Input::old($name, $value)) + ->value(old($name, $value)) ->attributes($properties['attributes'] ?? []); } } \ No newline at end of file diff --git a/src/FieldTypes/Select.php b/src/FieldTypes/Select.php index 64a00aa..aeee669 100644 --- a/src/FieldTypes/Select.php +++ b/src/FieldTypes/Select.php @@ -10,7 +10,7 @@ class Select public static function prepare($name, $options = [], $value = null, $properties = []) { return Html::select($name, $options) - ->value(Input::old($name, $value)) + ->value(old($name, $value)) ->attributes($properties['attributes'] ?? []); } } \ No newline at end of file diff --git a/src/FieldTypes/Text.php b/src/FieldTypes/Text.php index c901118..6e50fb3 100644 --- a/src/FieldTypes/Text.php +++ b/src/FieldTypes/Text.php @@ -2,7 +2,6 @@ namespace Eliurkis\Crud\FieldTypes; -use Illuminate\Support\Facades\Input; use Spatie\Html\Facades\Html; class Text @@ -10,7 +9,7 @@ class Text public static function prepare($name, $value = null, $properties = []) { return Html::text($name) - ->value(Input::old($name, $value)) + ->value(old($name, $value)) ->attributes($properties['attributes'] ?? []); } } \ No newline at end of file diff --git a/src/FieldTypes/Textarea.php b/src/FieldTypes/Textarea.php index b18239e..b98b1d8 100644 --- a/src/FieldTypes/Textarea.php +++ b/src/FieldTypes/Textarea.php @@ -10,7 +10,7 @@ class Textarea public static function prepare($name, $value = null, $properties = []) { return Html::textarea($name) - ->value(Input::old($name, $value)) + ->value(old($name, $value)) ->attributes($properties['attributes']); } } \ No newline at end of file