From 00f31c98bb96cdb4e32d56664dbaa1bb3ba5826e Mon Sep 17 00:00:00 2001 From: Dan Pock Date: Tue, 20 Apr 2021 10:15:45 -0400 Subject: [PATCH 1/6] Add a trait for inline(row) Fields to alternate to column This allows the checkbox and toggle, which default to being inside the prefix, to render as columns. --- .../views/components/checkbox.blade.php | 4 ++++ .../views/components/toggle.blade.php | 4 ++++ packages/forms/src/Components/Checkbox.php | 1 + .../Concerns/CanAlternateToColumnLayout.php | 22 +++++++++++++++++++ packages/forms/src/Components/Toggle.php | 1 + 5 files changed, 32 insertions(+) create mode 100644 packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php diff --git a/packages/forms/resources/views/components/checkbox.blade.php b/packages/forms/resources/views/components/checkbox.blade.php index ed52084d33..711255d05f 100644 --- a/packages/forms/resources/views/components/checkbox.blade.php +++ b/packages/forms/resources/views/components/checkbox.blade.php @@ -7,7 +7,9 @@ :label="$formComponent->getLabel()" :required="$formComponent->isRequired()" > + @if(!$formComponent->isColumnLayout()) + @endif isAutofocused() ? 'autofocus' : null !!} {!! $formComponent->isDisabled() ? 'disabled' : null !!} @@ -18,5 +20,7 @@ class="rounded text-primary-600 shadow-sm focus:border-primary-700 focus:ring focus:ring-blue-200 focus:ring-opacity-50 {{ $errors->has($formComponent->getName()) ? 'border-danger-600 ' : 'border-gray-300' }}" {!! Filament\format_attributes($formComponent->getExtraAttributes()) !!} /> + @if(!$formComponent->isColumnLayout()) + @endif diff --git a/packages/forms/resources/views/components/toggle.blade.php b/packages/forms/resources/views/components/toggle.blade.php index 123cf4fd4b..132659d8d4 100644 --- a/packages/forms/resources/views/components/toggle.blade.php +++ b/packages/forms/resources/views/components/toggle.blade.php @@ -7,7 +7,9 @@ :label="$formComponent->getLabel()" :required="$formComponent->isRequired()" > + @if(!$formComponent->isColumnLayout()) + @endif + @if(!$formComponent->isColumnLayout()) + @endif diff --git a/packages/forms/src/Components/Checkbox.php b/packages/forms/src/Components/Checkbox.php index 9f871ba6df..419bfad4c3 100644 --- a/packages/forms/src/Components/Checkbox.php +++ b/packages/forms/src/Components/Checkbox.php @@ -5,6 +5,7 @@ namespace Filament\Forms\Components; class Checkbox extends Field { use Concerns\CanBeAutofocused; + use Concerns\CanAlternateToColumnLayout; protected function setUp() { diff --git a/packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php b/packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php new file mode 100644 index 0000000000..1d789c1605 --- /dev/null +++ b/packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php @@ -0,0 +1,22 @@ +configure(function () { + $this->columnLayout = true; + }); + + return $this; + } + + public function isColumnLayout() + { + return $this->columnLayout; + } +} diff --git a/packages/forms/src/Components/Toggle.php b/packages/forms/src/Components/Toggle.php index 1479a7d545..ec7c4ab59c 100644 --- a/packages/forms/src/Components/Toggle.php +++ b/packages/forms/src/Components/Toggle.php @@ -8,6 +8,7 @@ use Filament\Forms\Components\Field; class Toggle extends Field { use Concerns\CanBeAutofocused; + use Concerns\CanAlternateToColumnLayout; protected $onIcon; From 80c67f04741d11e5b9229897232e04f9720b3842 Mon Sep 17 00:00:00 2001 From: Dan Pock Date: Tue, 20 Apr 2021 15:29:43 -0400 Subject: [PATCH 2/6] Refactor trait name and methods --- .../views/components/checkbox.blade.php | 4 +-- .../views/components/toggle.blade.php | 4 +-- packages/forms/src/Components/Checkbox.php | 2 +- .../Concerns/CanAlternateLayoutDirection.php | 31 +++++++++++++++++++ .../Concerns/CanAlternateToColumnLayout.php | 22 ------------- packages/forms/src/Components/Toggle.php | 2 +- 6 files changed, 37 insertions(+), 28 deletions(-) create mode 100644 packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php delete mode 100644 packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php diff --git a/packages/forms/resources/views/components/checkbox.blade.php b/packages/forms/resources/views/components/checkbox.blade.php index 711255d05f..8d1cae2409 100644 --- a/packages/forms/resources/views/components/checkbox.blade.php +++ b/packages/forms/resources/views/components/checkbox.blade.php @@ -7,7 +7,7 @@ :label="$formComponent->getLabel()" :required="$formComponent->isRequired()" > - @if(!$formComponent->isColumnLayout()) + @if($formComponent->isInlineLayout()) @endif getExtraAttributes()) !!} /> - @if(!$formComponent->isColumnLayout()) + @if($formComponent->isInlineLayout()) @endif diff --git a/packages/forms/resources/views/components/toggle.blade.php b/packages/forms/resources/views/components/toggle.blade.php index 132659d8d4..91d96e92ef 100644 --- a/packages/forms/resources/views/components/toggle.blade.php +++ b/packages/forms/resources/views/components/toggle.blade.php @@ -7,7 +7,7 @@ :label="$formComponent->getLabel()" :required="$formComponent->isRequired()" > - @if(!$formComponent->isColumnLayout()) + @if($formComponent->isInlineLayout()) @endif - @if(!$formComponent->isColumnLayout()) + @if($formComponent->isInlineLayout()) @endif diff --git a/packages/forms/src/Components/Checkbox.php b/packages/forms/src/Components/Checkbox.php index 419bfad4c3..cc411c50d5 100644 --- a/packages/forms/src/Components/Checkbox.php +++ b/packages/forms/src/Components/Checkbox.php @@ -5,7 +5,7 @@ namespace Filament\Forms\Components; class Checkbox extends Field { use Concerns\CanBeAutofocused; - use Concerns\CanAlternateToColumnLayout; + use Concerns\CanAlternateLayoutDirection; protected function setUp() { diff --git a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php new file mode 100644 index 0000000000..9f4f8edd53 --- /dev/null +++ b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php @@ -0,0 +1,31 @@ +configure(function () { + $this->inlineLayout = true; + }); + + return $this; + } + + public function stackedLayout() + { + $this->configure(function () { + $this->inlineLayout = false; + }); + + return $this; + } + + public function isInlineLayout() + { + return $this->inlineLayout; + } +} diff --git a/packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php b/packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php deleted file mode 100644 index 1d789c1605..0000000000 --- a/packages/forms/src/Components/Concerns/CanAlternateToColumnLayout.php +++ /dev/null @@ -1,22 +0,0 @@ -configure(function () { - $this->columnLayout = true; - }); - - return $this; - } - - public function isColumnLayout() - { - return $this->columnLayout; - } -} diff --git a/packages/forms/src/Components/Toggle.php b/packages/forms/src/Components/Toggle.php index ec7c4ab59c..1f2e868f40 100644 --- a/packages/forms/src/Components/Toggle.php +++ b/packages/forms/src/Components/Toggle.php @@ -8,7 +8,7 @@ use Filament\Forms\Components\Field; class Toggle extends Field { use Concerns\CanBeAutofocused; - use Concerns\CanAlternateToColumnLayout; + use Concerns\CanAlternateLayoutDirection; protected $onIcon; From 4faddc87d2c2fba321984ff549f6d44a8c5727ad Mon Sep 17 00:00:00 2001 From: Dan Pock Date: Tue, 20 Apr 2021 15:31:01 -0400 Subject: [PATCH 3/6] tweak trait property name too --- .../Concerns/CanAlternateLayoutDirection.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php index 9f4f8edd53..c6d7ea97c5 100644 --- a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php +++ b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php @@ -4,12 +4,12 @@ namespace Filament\Forms\Components\Concerns; trait CanAlternateLayoutDirection { - protected $inlineLayout = true; + protected $isInlineLayout = true; - public function inlinelLayout() + public function inlineLayout() { $this->configure(function () { - $this->inlineLayout = true; + $this->isInlineLayout = true; }); return $this; @@ -18,7 +18,7 @@ trait CanAlternateLayoutDirection public function stackedLayout() { $this->configure(function () { - $this->inlineLayout = false; + $this->isInlineLayout = false; }); return $this; @@ -26,6 +26,6 @@ trait CanAlternateLayoutDirection public function isInlineLayout() { - return $this->inlineLayout; + return $this->isInlineLayout; } } From 031ec0aed9b6f7d5bf86d1b9007c19c93cea11a5 Mon Sep 17 00:00:00 2001 From: Dan Pock Date: Tue, 20 Apr 2021 15:39:01 -0400 Subject: [PATCH 4/6] Adjust method names and return type --- .../src/Components/Concerns/CanAlternateLayoutDirection.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php index c6d7ea97c5..ab97749cd4 100644 --- a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php +++ b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php @@ -6,7 +6,7 @@ trait CanAlternateLayoutDirection { protected $isInlineLayout = true; - public function inlineLayout() + public function inline() { $this->configure(function () { $this->isInlineLayout = true; @@ -15,7 +15,7 @@ trait CanAlternateLayoutDirection return $this; } - public function stackedLayout() + public function stacked() { $this->configure(function () { $this->isInlineLayout = false; @@ -24,7 +24,7 @@ trait CanAlternateLayoutDirection return $this; } - public function isInlineLayout() + public function isInlineLayout(): bool { return $this->isInlineLayout; } From 2e5ad84d93c57a55002c5bc81a6d30c7d2e1360f Mon Sep 17 00:00:00 2001 From: Dan Pock Date: Tue, 20 Apr 2021 15:57:28 -0400 Subject: [PATCH 5/6] have trait default to match most components --- packages/forms/src/Components/Checkbox.php | 2 +- .../src/Components/Concerns/CanAlternateLayoutDirection.php | 2 +- packages/forms/src/Components/Toggle.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/forms/src/Components/Checkbox.php b/packages/forms/src/Components/Checkbox.php index cc411c50d5..e53bc562ca 100644 --- a/packages/forms/src/Components/Checkbox.php +++ b/packages/forms/src/Components/Checkbox.php @@ -9,6 +9,6 @@ class Checkbox extends Field protected function setUp() { - $this->default(false); + $this->default(false)->inline(); } } diff --git a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php index ab97749cd4..a6dfe74655 100644 --- a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php +++ b/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php @@ -4,7 +4,7 @@ namespace Filament\Forms\Components\Concerns; trait CanAlternateLayoutDirection { - protected $isInlineLayout = true; + protected $isInlineLayout = false; public function inline() { diff --git a/packages/forms/src/Components/Toggle.php b/packages/forms/src/Components/Toggle.php index 1f2e868f40..d488800248 100644 --- a/packages/forms/src/Components/Toggle.php +++ b/packages/forms/src/Components/Toggle.php @@ -16,7 +16,7 @@ class Toggle extends Field protected function setUp() { - $this->default(false); + $this->default(false)->inline(); } public function onIcon($icon) From e91cf1e7409621526cfcdbc8d947e71128010f99 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Fri, 23 Apr 2021 23:35:27 +0100 Subject: [PATCH 6/6] wip --- .../resources/views/components/checkbox.blade.php | 8 ++++---- .../resources/views/components/toggle.blade.php | 8 ++++---- packages/forms/src/Components/Checkbox.php | 6 ++++-- ...nAlternateLayoutDirection.php => CanBeInline.php} | 12 ++++++------ packages/forms/src/Components/Toggle.php | 6 ++++-- .../Forms/Components/Concerns/CanBeInline.php | 8 ++++++++ 6 files changed, 30 insertions(+), 18 deletions(-) rename packages/forms/src/Components/Concerns/{CanAlternateLayoutDirection.php => CanBeInline.php} (55%) create mode 100644 src/Resources/Forms/Components/Concerns/CanBeInline.php diff --git a/packages/forms/resources/views/components/checkbox.blade.php b/packages/forms/resources/views/components/checkbox.blade.php index 8d1cae2409..1a27e06dd4 100644 --- a/packages/forms/resources/views/components/checkbox.blade.php +++ b/packages/forms/resources/views/components/checkbox.blade.php @@ -7,8 +7,8 @@ :label="$formComponent->getLabel()" :required="$formComponent->isRequired()" > - @if($formComponent->isInlineLayout()) - + @if ($formComponent->isInline()) + @endif isAutofocused() ? 'autofocus' : null !!} @@ -20,7 +20,7 @@ class="rounded text-primary-600 shadow-sm focus:border-primary-700 focus:ring focus:ring-blue-200 focus:ring-opacity-50 {{ $errors->has($formComponent->getName()) ? 'border-danger-600 ' : 'border-gray-300' }}" {!! Filament\format_attributes($formComponent->getExtraAttributes()) !!} /> - @if($formComponent->isInlineLayout()) - + @if ($formComponent->isInline()) + @endif diff --git a/packages/forms/resources/views/components/toggle.blade.php b/packages/forms/resources/views/components/toggle.blade.php index 91d96e92ef..5eedbe0042 100644 --- a/packages/forms/resources/views/components/toggle.blade.php +++ b/packages/forms/resources/views/components/toggle.blade.php @@ -7,8 +7,8 @@ :label="$formComponent->getLabel()" :required="$formComponent->isRequired()" > - @if($formComponent->isInlineLayout()) - + @if ($formComponent->isInline()) + @endif - @if($formComponent->isInlineLayout()) - + @if ($formComponent->isInline()) + @endif diff --git a/packages/forms/src/Components/Checkbox.php b/packages/forms/src/Components/Checkbox.php index e53bc562ca..8b30ad1484 100644 --- a/packages/forms/src/Components/Checkbox.php +++ b/packages/forms/src/Components/Checkbox.php @@ -5,10 +5,12 @@ namespace Filament\Forms\Components; class Checkbox extends Field { use Concerns\CanBeAutofocused; - use Concerns\CanAlternateLayoutDirection; + use Concerns\CanBeInline; protected function setUp() { - $this->default(false)->inline(); + $this->default(false); + + $this->inline(); } } diff --git a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php b/packages/forms/src/Components/Concerns/CanBeInline.php similarity index 55% rename from packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php rename to packages/forms/src/Components/Concerns/CanBeInline.php index a6dfe74655..d8bddd91df 100644 --- a/packages/forms/src/Components/Concerns/CanAlternateLayoutDirection.php +++ b/packages/forms/src/Components/Concerns/CanBeInline.php @@ -2,14 +2,14 @@ namespace Filament\Forms\Components\Concerns; -trait CanAlternateLayoutDirection +trait CanBeInline { - protected $isInlineLayout = false; + protected $isInline = false; public function inline() { $this->configure(function () { - $this->isInlineLayout = true; + $this->isInline = true; }); return $this; @@ -18,14 +18,14 @@ trait CanAlternateLayoutDirection public function stacked() { $this->configure(function () { - $this->isInlineLayout = false; + $this->isInline = false; }); return $this; } - public function isInlineLayout(): bool + public function isInline() { - return $this->isInlineLayout; + return $this->isInline; } } diff --git a/packages/forms/src/Components/Toggle.php b/packages/forms/src/Components/Toggle.php index d488800248..9c33a3b197 100644 --- a/packages/forms/src/Components/Toggle.php +++ b/packages/forms/src/Components/Toggle.php @@ -8,7 +8,7 @@ use Filament\Forms\Components\Field; class Toggle extends Field { use Concerns\CanBeAutofocused; - use Concerns\CanAlternateLayoutDirection; + use Concerns\CanBeInline; protected $onIcon; @@ -16,7 +16,9 @@ class Toggle extends Field protected function setUp() { - $this->default(false)->inline(); + $this->default(false); + + $this->inline(); } public function onIcon($icon) diff --git a/src/Resources/Forms/Components/Concerns/CanBeInline.php b/src/Resources/Forms/Components/Concerns/CanBeInline.php new file mode 100644 index 0000000000..bdf6860ad8 --- /dev/null +++ b/src/Resources/Forms/Components/Concerns/CanBeInline.php @@ -0,0 +1,8 @@ +