Skip to content

Commit b2807c5

Browse files
authored
5.0.2 (#104)
* Fixed wrong `form-select` class uses for Bootstrap 4 template selects: replaced them by `custom-select` * Fixed Column action still displays original column value with ->when(false) : #103
1 parent af3f086 commit b2807c5

File tree

10 files changed

+289
-18
lines changed

10 files changed

+289
-18
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## [5.0.2](https://github.com/Okipa/laravel-table/compare/5.0.1...5.0.2)
4+
5+
2022-10-07
6+
7+
* Fixed wrong `form-select` class uses for Bootstrap 4 template selects: replaced them by `custom-select`
8+
* Fixed Column action still displays original column value with ->when(false) : #103
9+
310
## [5.0.1](https://github.com/Okipa/laravel-table/compare/5.0.0...5.0.1)
411

512
2022-09-26

resources/views/bootstrap-4/filter.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div wire:key="{{ Str::of($filter->identifier)->snake('-')->slug() }}" class="ml-3 mt-2">
2-
<select wire:model="selectedFilters.{{ $filter->identifier }}" {{ $attributes->class(['form-select', ...$class]) }}>
2+
<select wire:model="selectedFilters.{{ $filter->identifier }}" {{ $attributes->class(['custom-select', ...$class]) }}>
33
<option wire:key="{{ Str::of($filter->identifier)->snake('-')->slug() }}-option-placeholder" value="" selected{!! $multiple ? ' disabled' : null !!}>{{ $label }}</option>
44
@foreach($options as $optionValue => $optionLabel)
55
<option wire:key="{{ Str::of($filter->identifier)->snake('-')->slug() }}-option-{{ Str::of($optionValue)->snake('-')->slug() }}" value="{{ $optionValue }}">{{ $optionLabel }}</option>

resources/views/bootstrap-4/table.blade.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class="btn btn-sm btn-link text-secondary p-0"
9393
{!! config('laravel-table.icon.rows_number') !!}
9494
</span>
9595
</div>
96-
<select wire:change="changeNumberOfRowsPerPage($event.target.value)" class="form-select" {!! (new \Illuminate\View\ComponentAttributeBag())->merge([
96+
<select wire:change="changeNumberOfRowsPerPage($event.target.value)" class="custom-select" {!! (new \Illuminate\View\ComponentAttributeBag())->merge([
9797
'placeholder' => __('Number of rows per page'),
9898
'aria-label' => __('Number of rows per page'),
9999
'aria-describedby' => 'rows-number-per-page-icon',
@@ -196,11 +196,11 @@ class="d-flex align-items-center"
196196
{{-- Row columns values --}}
197197
@foreach($columns as $column)
198198
@if($loop->first)
199-
<th wire:key="cell-{{ $column->getAttribute() }}-{{ $model->getKey() }}"{!! $orderColumn ? ' wire:sortable.handle style="cursor: move;"' : null !!} class="align-middle" scope="row">
199+
<th wire:key="cell-{{ Str::of($column->getAttribute())->snake('-')->slug() }}-{{ $model->getKey() }}"{!! $orderColumn ? ' wire:sortable.handle style="cursor: move;"' : null !!} class="align-middle" scope="row">
200200
{!! $orderColumn ? '<span class="mr-2">' . config('laravel-table.icon.drag_drop') . '</span>' : null !!}{{ $column->getValue($model, $tableColumnActionsArray) }}
201201
</th>
202202
@else
203-
<td wire:key="cell-{{ $column->getAttribute() }}-{{ $model->getKey() }}" class="align-middle">
203+
<td wire:key="cell-{{ Str::of($column->getAttribute())->snake('-')->slug() }}-{{ $model->getKey() }}" class="align-middle">
204204
{{ $column->getValue($model, $tableColumnActionsArray) }}
205205
</td>
206206
@endif

resources/views/bootstrap-5/table.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,11 @@ class="d-flex align-items-center"
188188
{{-- Row columns values --}}
189189
@foreach($columns as $column)
190190
@if($loop->first)
191-
<th wire:key="cell-{{ $column->getAttribute() }}-{{ $model->getKey() }}"{!! $orderColumn ? ' wire:sortable.handle style="cursor: move;"' : null !!} class="align-middle" scope="row">
191+
<th wire:key="cell-{{ Str::of($column->getAttribute())->snake('-')->slug() }}-{{ $model->getKey() }}"{!! $orderColumn ? ' wire:sortable.handle style="cursor: move;"' : null !!} class="align-middle" scope="row">
192192
{!! $orderColumn ? '<span class="me-2">' . config('laravel-table.icon.drag_drop') . '</span>' : null !!}{{ $column->getValue($model, $tableColumnActionsArray) }}
193193
</th>
194194
@else
195-
<td wire:key="cell-{{ $column->getAttribute() }}-{{ $model->getKey() }}" class="align-middle">
195+
<td wire:key="cell-{{ Str::of($column->getAttribute())->snake('-')->slug() }}-{{ $model->getKey() }}" class="align-middle">
196196
{{ $column->getValue($model, $tableColumnActionsArray) }}
197197
</td>
198198
@endif

src/Livewire/Table.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,9 @@ public function rowAction(string $identifier, string $modelKey, bool $requiresCo
297297
}
298298
$rowActionArray = collect($rowActionsArray)->where('identifier', $identifier)->first();
299299
$rowActionInstance = AbstractRowAction::make($rowActionArray);
300+
if (! $rowActionInstance->isAllowed()) {
301+
return null;
302+
}
300303
$model = app($rowActionArray['modelClass'])->findOrFail($modelKey);
301304
if ($requiresConfirmation) {
302305
return $this->emit(
@@ -322,6 +325,9 @@ public function columnAction(string $identifier, string $modelKey, bool $require
322325
return null;
323326
}
324327
$columnActionInstance = AbstractColumnAction::make($columnActionArray);
328+
if (! $columnActionInstance->isAllowed()) {
329+
return null;
330+
}
325331
$model = app($columnActionArray['modelClass'])->findOrFail($modelKey);
326332
if ($requiresConfirmation) {
327333
return $this->emit(

src/Table.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,9 +454,6 @@ public function generateColumnActionsArray(): array
454454
->filter();
455455
foreach ($columnActions as $attribute => $columnAction) {
456456
$columnAction->setup($model, $attribute);
457-
if (! $columnAction->isAllowed()) {
458-
continue;
459-
}
460457
$tableColumnActionsArray[] = json_decode(json_encode(
461458
$columnAction,
462459
JSON_THROW_ON_ERROR

tests/Unit/Bootstrap4/ColumnActionTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ protected function columns(): array
5050
->assertSeeHtmlInOrder([
5151
'<tbody>',
5252
'<tr wire:key="row-' . $users->first()->id . '" class="border-bottom">',
53+
'<th wire:key="cell-name-' . $users->first()->id . '" class="align-middle" scope="row">',
54+
$users->first()->name,
55+
'</th>',
56+
'<td wire:key="cell-email-verified-at-' . $users->first()->id . '" class="align-middle">',
5357
'<a wire:key="column-action-email-verified-at-' . $users->first()->id . '"',
5458
' wire:click.prevent="columnAction(\'email_verified_at\', \'' . $users->first()->id . '\', 1)"',
5559
' class="link-success p-1"',
@@ -58,6 +62,8 @@ protected function columns(): array
5862
' data-toggle="tooltip">',
5963
'email-verified-icon',
6064
'</a>',
65+
'</td>',
66+
'<td wire:key="cell-active-' . $users->first()->id . '" class="align-middle">',
6167
'<a wire:key="column-action-active-' . $users->first()->id . '"',
6268
' wire:click.prevent="columnAction(\'active\', \'' . $users->first()->id . '\', 0)"',
6369
' class="link-success p-1"',
@@ -66,8 +72,13 @@ protected function columns(): array
6672
' data-toggle="tooltip">',
6773
'toggle-on-icon',
6874
'</a>',
75+
'</td>',
6976
'</tr>',
7077
'<tr wire:key="row-' . $users->last()->id . '" class="border-bottom">',
78+
'<th wire:key="cell-name-' . $users->last()->id . '" class="align-middle" scope="row">',
79+
$users->last()->name,
80+
'</th>',
81+
'<td wire:key="cell-email-verified-at-' . $users->last()->id . '" class="align-middle">',
7182
'<a wire:key="column-action-email-verified-at-' . $users->last()->id . '"',
7283
' wire:click.prevent="columnAction(\'email_verified_at\', \'' . $users->last()->id . '\', 1)"',
7384
' class="link-danger p-1"',
@@ -76,6 +87,8 @@ protected function columns(): array
7687
' data-toggle="tooltip">',
7788
'email-unverified-icon',
7889
'</a>',
90+
'</td>',
91+
'<td wire:key="cell-active-' . $users->last()->id . '" class="align-middle">',
7992
'<a wire:key="column-action-active-' . $users->last()->id . '"',
8093
' wire:click.prevent="columnAction(\'active\', \'' . $users->last()->id . '\', 0)"',
8194
' class="link-danger p-1"',
@@ -84,6 +97,7 @@ protected function columns(): array
8497
' data-toggle="tooltip">',
8598
'toggle-off-icon',
8699
'</a>',
100+
'</td>',
87101
'</tr>',
88102
'</tbody>',
89103
])

tests/Unit/Bootstrap4/TableFiltersTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected function columns(): array
6666
'<div wire:ignore>',
6767
'<div wire:key="filter-value-email" class="ml-3 mt-2">',
6868
'<select wire:model="selectedFilters.filter_value_email"',
69-
' class="form-select"',
69+
' class="custom-select"',
7070
' placeholder="Email"',
7171
' aria-label="Email">',
7272
'<option wire:key="filter-value-email-option-placeholder" value="" selected disabled>Email</option>',
@@ -86,7 +86,7 @@ protected function columns(): array
8686
'<div wire:ignore>',
8787
'<div wire:key="filter-null-email-verified-at" class="ml-3 mt-2">',
8888
'<select wire:model="selectedFilters.filter_null_email_verified_at"',
89-
' class="form-select"',
89+
' class="custom-select"',
9090
' placeholder="Email Verified"',
9191
' aria-label="Email Verified">',
9292
'<option wire:key="filter-null-email-verified-at-option-placeholder" value="" selected>Email Verified</option>',
@@ -99,7 +99,7 @@ protected function columns(): array
9999
'<div wire:ignore>',
100100
'<div wire:key="filter-relationship-companies" class="ml-3 mt-2">',
101101
'<select wire:model="selectedFilters.filter_relationship_companies"',
102-
' class="form-select"',
102+
' class="custom-select"',
103103
' placeholder="Companies"',
104104
' aria-label="Companies">',
105105
'<option wire:key="filter-relationship-companies-option-placeholder" value="" selected>Companies</option>',
@@ -119,7 +119,7 @@ protected function columns(): array
119119
'<div wire:ignore>',
120120
'<div wire:key="filter-relationship-categories" class="ml-3 mt-2">',
121121
'<select wire:model="selectedFilters.filter_relationship_categories"',
122-
' class="form-select"',
122+
' class="custom-select"',
123123
' placeholder="Categories"',
124124
' aria-label="Categories">',
125125
'<option wire:key="filter-relationship-categories-option-placeholder" value="" selected disabled>Categories</option>',
@@ -139,7 +139,7 @@ protected function columns(): array
139139
'<div wire:ignore>',
140140
'<div wire:key="filter-boolean-active" class="ml-3 mt-2">',
141141
'<select wire:model="selectedFilters.filter_boolean_active"',
142-
' class="form-select"',
142+
' class="custom-select"',
143143
' placeholder="Active"',
144144
' aria-label="Active">',
145145
'<option wire:key="filter-boolean-active-option-placeholder" value="" selected>Active</option>',
@@ -362,7 +362,7 @@ protected function columns(): array
362362
'<div wire:ignore>',
363363
'<div wire:key="filter-boolean-active" class="ml-3 mt-2">',
364364
'<select wire:model="selectedFilters.filter_boolean_active"',
365-
' class="form-select"',
365+
' class="custom-select"',
366366
' placeholder="Active"',
367367
' aria-label="Active"',
368368
' data-selector="data-selector">',

0 commit comments

Comments
 (0)