From 19d733e61c897417d9572a458a7badf29abc1748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=2E=20Nagy=20Gerg=C5=91?= Date: Tue, 28 May 2024 09:37:25 +0200 Subject: [PATCH] wip --- resources/views/fields/date.blade.php | 28 +++++++++++++++++++++++++++ src/Fields/Date.php | 5 +++++ src/Fields/Relation.php | 8 ++++++-- src/Resources/Resource.php | 7 +++---- 4 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 resources/views/fields/date.blade.php diff --git a/resources/views/fields/date.blade.php b/resources/views/fields/date.blade.php new file mode 100644 index 00000000..bf329c8a --- /dev/null +++ b/resources/views/fields/date.blade.php @@ -0,0 +1,28 @@ +
+ +
+ @if($prefix) +
{!! $prefix !!}
+ @endif + + @if($suffix) +
{!! $suffix !!}
+ @endif +
+ + + + @if($invalid) + {!! $error !!} + @endif + @if($help) + {!! $help !!} + @endif +
diff --git a/src/Fields/Date.php b/src/Fields/Date.php index ced795d9..1be5354e 100644 --- a/src/Fields/Date.php +++ b/src/Fields/Date.php @@ -13,6 +13,11 @@ class Date extends Field { + /** + * The Blade template. + */ + protected string $template = 'root::fields.date'; + /** * The date format. */ diff --git a/src/Fields/Relation.php b/src/Fields/Relation.php index dd41c6bc..e32ada2a 100644 --- a/src/Fields/Relation.php +++ b/src/Fields/Relation.php @@ -209,6 +209,10 @@ public function asSubResource(bool $value = true): static { $this->asSubResource = $value; + $this->format(function (Request $request, Model $model): ?int { + return $model->getAttribute(sprintf('%s_count', $this->getRelationName())); + }); + return $this; } @@ -615,8 +619,6 @@ public function handleFormRequest(Request $request, Model $model): void $model->save(); - $this->saved($request, $model); - if (in_array(HasRootEvents::class, class_uses_recursive($model))) { $model->recordRootEvent( $model->wasRecentlyCreated ? 'Created' : 'Updated', @@ -624,6 +626,8 @@ public function handleFormRequest(Request $request, Model $model): void ); } + $this->saved($request, $model); + DB::commit(); } catch (Throwable $exception) { report($exception); diff --git a/src/Resources/Resource.php b/src/Resources/Resource.php index 32e7f671..b7a1f806 100644 --- a/src/Resources/Resource.php +++ b/src/Resources/Resource.php @@ -422,7 +422,6 @@ public function mapModel(Request $request, Model $model): array 'model' => $model, 'abilities' => $this->mapModelAbilities($request, $model), 'fields' => $this->resolveFields($request) - ->subResource(false) ->authorized($request, $model) ->visible('index') ->mapToDisplay($request, $model), @@ -448,8 +447,6 @@ public function handleFormRequest(Request $request, Model $model): void $model->save(); - $this->saved($request, $model); - if (in_array(HasRootEvents::class, class_uses_recursive($model))) { $model->recordRootEvent( $model->wasRecentlyCreated ? 'Created' : 'Updated', @@ -457,6 +454,8 @@ public function handleFormRequest(Request $request, Model $model): void ); } + $this->saved($request, $model); + DB::commit(); } catch (Throwable $exception) { report($exception); @@ -575,7 +574,7 @@ public function toIndex(Request $request): array 'filters' => $this->resolveFilters($request) ->authorized($request) ->renderable() - ->map(function (RenderableFilter $filter) use ($request, $model): array { + ->map(static function (RenderableFilter $filter) use ($request, $model): array { return $filter->toField()->toInput($request, $model); }) ->all(),