From e1a54d1bd25ae5999c8b66bf23eb20ec4feec5ad Mon Sep 17 00:00:00 2001 From: LT Date: Fri, 8 Jul 2022 12:26:11 +0300 Subject: [PATCH] added full page fields view to hasOne/hasMany relationships --- .../components/field-container.blade.php | 2 +- resources/views/fields/has-many.blade.php | 2 +- resources/views/fields/has-one.blade.php | 2 +- .../views/fields/shared/full-fields.blade.php | 66 +++++++++++++++++++ src/Traits/Fields/WithFieldsTrait.php | 14 ++++ 5 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 resources/views/fields/shared/full-fields.blade.php diff --git a/resources/views/components/field-container.blade.php b/resources/views/components/field-container.blade.php index bd7a61933..4375efc10 100644 --- a/resources/views/components/field-container.blade.php +++ b/resources/views/components/field-container.blade.php @@ -1,7 +1,7 @@ @if($field->isHidden()) {{ $slot }} @else -
showWhenState ? "x-show='".$field->showWhenField." == ".$field->showWhenValue ."'" : ''!!} +
showWhenState ? "x-show='".$field->showWhenField." == `".$field->showWhenValue ."`'" : ''!!} class="border-b border-whiteblue dark:border-dark px-10 py-5" >
diff --git a/resources/views/fields/has-many.blade.php b/resources/views/fields/has-many.blade.php index aca014ead..2814021ff 100644 --- a/resources/views/fields/has-many.blade.php +++ b/resources/views/fields/has-many.blade.php @@ -1,4 +1,4 @@ -@include('moonshine::fields.shared.table-fields', [ +@include('moonshine::fields.shared.'.($field->isFullPage() ? 'full' : 'table').'-fields', [ 'field' => $field, 'resource' => $resource, 'item' => $item, diff --git a/resources/views/fields/has-one.blade.php b/resources/views/fields/has-one.blade.php index 45168928e..7b51861c4 100644 --- a/resources/views/fields/has-one.blade.php +++ b/resources/views/fields/has-one.blade.php @@ -1,4 +1,4 @@ -@include('moonshine::fields.shared.table-fields', [ +@include('moonshine::fields.shared.'.($field->isFullPage() ? 'full' : 'table').'-fields', [ 'field' => $field, 'resource' => $resource, 'item' => $item, diff --git a/resources/views/fields/shared/full-fields.blade.php b/resources/views/fields/shared/full-fields.blade.php new file mode 100644 index 000000000..6404a3253 --- /dev/null +++ b/resources/views/fields/shared/full-fields.blade.php @@ -0,0 +1,66 @@ +
+ + + @if(!method_exists($field, 'isRelationToOne') || !$field->isRelationToOne()) +
+ + @else + +
+ @endif +
+ + \ No newline at end of file diff --git a/src/Traits/Fields/WithFieldsTrait.php b/src/Traits/Fields/WithFieldsTrait.php index 525866478..3fdbeeb3b 100644 --- a/src/Traits/Fields/WithFieldsTrait.php +++ b/src/Traits/Fields/WithFieldsTrait.php @@ -18,6 +18,20 @@ trait WithFieldsTrait protected array $fields = []; + protected bool $fullPage = false; + + public function fullPage(): static + { + $this->fullPage = true; + + return $this; + } + + public function isFullPage(): bool + { + return $this->fullPage; + } + public function getFields(): array { return collect($this->fields)->map(function ($field) {