From 6450539b076ec5918c3f2c47f512900f799fdb73 Mon Sep 17 00:00:00 2001 From: Johan Montenij Date: Wed, 21 Jun 2023 15:59:02 +0200 Subject: [PATCH 1/2] Disable rowLink/rowModal/rowSlideover for specific columns --- src/Table/Column.php | 3 +++ src/Table/HasColumns.php | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/Table/Column.php b/src/Table/Column.php index 4777950b..7111444d 100644 --- a/src/Table/Column.php +++ b/src/Table/Column.php @@ -30,6 +30,7 @@ public function __construct( public array|string|null $classes = null, public Closure|null $as = null, public string $alignment = 'left', + public bool $clickable = true, ) { if (is_array($classes)) { $classes = Arr::flatten($classes); @@ -57,6 +58,7 @@ public function clone(): static $this->classes, $this->as, $this->alignment, + $this->clickable, ); } @@ -76,6 +78,7 @@ public function toArray() 'sorted' => $this->sorted, 'highlight' => $this->highlight, 'alignment' => $this->alignment, + 'clickable' => $this->clickable, ]; } diff --git a/src/Table/HasColumns.php b/src/Table/HasColumns.php index 4524b1a9..a1ed393d 100644 --- a/src/Table/HasColumns.php +++ b/src/Table/HasColumns.php @@ -58,6 +58,7 @@ public function column( array|string|null $classes = null, callable|null $as = null, string $alignment = 'left', + bool $clickable = true, ): self { $key = $key !== null ? $key : Str::kebab($label); $label = $label !== null ? $label : Str::headline(str_replace('.', ' ', $key)); @@ -86,6 +87,7 @@ public function column( classes: $classes, as: $as, alignment: $alignment, + clickable: $clickable, ))->values(); if (!$searchable) { From b199956992e19457ea2e35861f31521678d4cbd0 Mon Sep 17 00:00:00 2001 From: Johan Montenij Date: Wed, 21 Jun 2023 16:01:44 +0200 Subject: [PATCH 2/2] Disable rowLink/rowModal/rowSlideover for specific columns --- resources/views/table/body.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/table/body.blade.php b/resources/views/table/body.blade.php index 97667b3a..73ca4411 100644 --- a/resources/views/table/body.blade.php +++ b/resources/views/table/body.blade.php @@ -25,11 +25,11 @@ class="rounded border-gray-300 text-indigo-600 shadow-sm focus:border-indigo-300 @foreach($table->columns() as $column) rowLinks->has($itemKey)) + @if($table->rowLinks->has($itemKey) && $column->clickable) @click="(event) => table.visit(@js($table->rowLinks->get($itemKey)), @js($table->rowLinkType), event)" @endif v-show="table.columnIsVisible(@js($column->key))" - class="whitespace-nowrap text-sm @if($loop->first && $hasBulkActions) pr-6 @else px-6 @endif py-4 @if($column->highlight) text-gray-900 font-medium @else text-gray-500 @endif @if($table->rowLinks->has($itemKey)) cursor-pointer @endif {{ $column->classes }}" + class="whitespace-nowrap text-sm @if($loop->first && $hasBulkActions) pr-6 @else px-6 @endif py-4 @if($column->highlight) text-gray-900 font-medium @else text-gray-500 @endif @if($table->rowLinks->has($itemKey) && $column->clickable) cursor-pointer @endif {{ $column->classes }}" >
@isset(${'spladeTableCell' . $column->keyHash()})