From dd06cd801cd8dc96621e15187a1ecada3b1dd3a4 Mon Sep 17 00:00:00 2001 From: Simon Barrett Date: Wed, 6 Nov 2024 14:27:46 +0000 Subject: [PATCH] :sparkles: add actions to table builder --- resources/views/components/actions.blade.php | 2 +- resources/views/table.blade.php | 65 +++++++++++++++++++- src/TableBuilder.php | 6 ++ 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/resources/views/components/actions.blade.php b/resources/views/components/actions.blade.php index aeeba56..52078b6 100644 --- a/resources/views/components/actions.blade.php +++ b/resources/views/components/actions.blade.php @@ -70,7 +70,7 @@ class="flex items-center gap-1 w-full first-of-type:rounded-t-md last-of-type:ro @else + + @else + You have selected all {{ $this->rows->total() }} {{ Str::of('row')->plural(count($selectedRows)) }}. + @endif + + + @endif + @foreach ($this->rows as $row) @if($this->rowPreview($row)) @@ -88,6 +138,19 @@ 'hover:bg-gray-50 cursor-pointer' => $this->isClickable(), ])> + @if($this->areActionsVisible() && $selectable) + +
+ + +
+ + @endif + @foreach ($this->columns() as $column) @if(!$column->hidden()) diff --git a/src/TableBuilder.php b/src/TableBuilder.php index 40e5d47..06c3541 100755 --- a/src/TableBuilder.php +++ b/src/TableBuilder.php @@ -4,6 +4,7 @@ namespace ACTTraining\QueryBuilder; +use ACTTraining\QueryBuilder\Support\Concerns\WithActions; use ACTTraining\QueryBuilder\Support\Concerns\WithColumns; use ACTTraining\QueryBuilder\Support\Concerns\WithFilters; use ACTTraining\QueryBuilder\Support\Concerns\WithIdentifier; @@ -13,6 +14,7 @@ use ACTTraining\QueryBuilder\Support\Concerns\WithRowClick; use ACTTraining\QueryBuilder\Support\Concerns\WithRowInjection; use ACTTraining\QueryBuilder\Support\Concerns\WithSearch; +use ACTTraining\QueryBuilder\Support\Concerns\WithSelecting; use ACTTraining\QueryBuilder\Support\Concerns\WithSorting; use ACTTraining\QueryBuilder\Support\Concerns\WithViews; use Illuminate\Contracts\View\Factory; @@ -27,6 +29,7 @@ abstract class TableBuilder extends Component { + use WithActions; use WithColumns; use WithFilters; use WithIdentifier; @@ -36,11 +39,14 @@ abstract class TableBuilder extends Component use WithRowClick; use WithRowInjection; use WithSearch; + use WithSelecting; use WithSorting; use WithViews; protected string $model = Model::class; + public array $rowOptions = [10, 25, 50]; + protected $listeners = [ 'refreshTable' => '$refresh', ];