Skip to content

Commit b7889bc

Browse files
committed
adds the ability to define bulk actions through a bulkActions() method
1 parent 955bf4f commit b7889bc

File tree

10 files changed

+34
-20
lines changed

10 files changed

+34
-20
lines changed

resources/views/bootstrap-4/includes/bulk-actions.blade.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
</button>
77

88
<div class="dropdown-menu dropdown-menu-right w-100" aria-labelledby="bulkActions">
9-
@foreach($bulkActions as $action => $title)
9+
@foreach($this->bulkActions as $action => $title)
1010
<a
1111
href="#"
12-
wire:click.prevent="{{ $action }}"
13-
wire:key="bulk-action-{{ $action }}"
14-
class="dropdown-item"
12+
wire:click.prevent="{{ $action }}"
13+
wire:key="bulk-action-{{ $action }}"
14+
class="dropdown-item"
1515
>
1616
{{ $title }}
1717
</a>

resources/views/bootstrap-4/includes/bulk-select-row.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@if ($bulkActionsEnabled && count($bulkActions) && (($selectPage && $rows->total() > $rows->count()) || count($selected)))
1+
@if ($bulkActionsEnabled && count($this->bulkActions) && (($selectPage && $rows->total() > $rows->count()) || count($selected)))
22
<x-livewire-tables::bs4.table.row wire:key="row-message">
33
<x-livewire-tables::bs4.table.cell colspan="{{ $colspan }}">
44
@if (count($selected) && !$selectAll && !$selectPage)

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<x-livewire-tables::bs4.table.heading />
55
@endif
66

7-
@if ($bulkActionsEnabled && count($bulkActions))
7+
@if ($bulkActionsEnabled && count($this->bulkActions))
88
<x-livewire-tables::bs4.table.heading>
99
<input
1010
wire:model="selectPage"
@@ -37,7 +37,7 @@
3737
<x-slot name="body">
3838
@php
3939
$colspan = count($columns);
40-
if ($bulkActionsEnabled && count($bulkActions)) $colspan++;
40+
if ($bulkActionsEnabled && count($this->bulkActions)) $colspan++;
4141
if ($reordering) $colspan++;
4242
@endphp
4343

@@ -62,7 +62,7 @@
6262
</x-livewire-tables::bs4.table.cell>
6363
@endif
6464

65-
@if ($bulkActionsEnabled && count($bulkActions))
65+
@if ($bulkActionsEnabled && count($this->bulkActions))
6666
<x-livewire-tables::bs4.table.cell>
6767
<input
6868
wire:model="selected"

resources/views/bootstrap-5/includes/bulk-actions.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</button>
77

88
<div class="dropdown-menu dropdown-menu-end w-100" aria-labelledby="bulkActions">
9-
@foreach($bulkActions as $action => $title)
9+
@foreach($this->bulkActions as $action => $title)
1010
<a
1111
href="#"
1212
wire:click.prevent="{{ $action }}"

resources/views/bootstrap-5/includes/bulk-select-row.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@if ($bulkActionsEnabled && count($bulkActions) && (($selectPage && $rows->total() > $rows->count()) || count($selected)))
1+
@if ($bulkActionsEnabled && count($this->bulkActions) && (($selectPage && $rows->total() > $rows->count()) || count($selected)))
22
<x-livewire-tables::bs5.table.row wire:key="row-message">
33
<x-livewire-tables::bs5.table.cell colspan="{{ $colspan }}">
44
@if (count($selected) && !$selectAll && !$selectPage)

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<x-livewire-tables::bs5.table.heading />
55
@endif
66

7-
@if ($bulkActionsEnabled && count($bulkActions))
7+
@if ($bulkActionsEnabled && count($this->bulkActions))
88
<x-livewire-tables::bs5.table.heading>
99
<input
1010
wire:model="selectPage"
@@ -38,7 +38,7 @@ class="form-check-input"
3838
<x-slot name="body">
3939
@php
4040
$colspan = count($columns);
41-
if ($bulkActionsEnabled && count($bulkActions)) $colspan++;
41+
if ($bulkActionsEnabled && count($this->bulkActions)) $colspan++;
4242
if ($reordering) $colspan++;
4343
@endphp
4444

@@ -63,7 +63,7 @@ class="form-check-input"
6363
</x-livewire-tables::bs5.table.cell>
6464
@endif
6565

66-
@if ($bulkActionsEnabled && count($bulkActions))
66+
@if ($bulkActionsEnabled && count($this->bulkActions))
6767
<x-livewire-tables::bs5.table.cell class="align-middle">
6868
<input
6969
wire:model="selected"

resources/views/tailwind/includes/bulk-actions.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class="origin-top-right absolute right-0 mt-2 w-full md:w-48 rounded-md shadow-l
3939
>
4040
<div class="rounded-md bg-white shadow-xs dark:bg-gray-700 dark:text-white">
4141
<div class="py-1" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
42-
@foreach($bulkActions as $action => $title)
42+
@foreach($this->bulkActions as $action => $title)
4343
<button
4444
wire:click="{{ $action }}"
4545
wire:key="bulk-action-{{ $action }}"

resources/views/tailwind/includes/bulk-select-row.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@if ($bulkActionsEnabled && count($bulkActions) && (($selectPage && $rows->total() > $rows->count()) || count($selected)))
1+
@if ($bulkActionsEnabled && count($this->bulkActions) && (($selectPage && $rows->total() > $rows->count()) || count($selected)))
22
<x-livewire-tables::table.row wire:key="row-message" class="bg-indigo-50 dark:bg-gray-900 dark:text-white">
33
<x-livewire-tables::table.cell :colspan="$colspan">
44
@if (count($selected) && !$selectAll && !$selectPage)

resources/views/tailwind/includes/table.blade.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<x-livewire-tables::table.heading />
55
@endif
66

7-
@if ($bulkActionsEnabled && count($bulkActions))
7+
@if ($bulkActionsEnabled && count($this->bulkActions))
88
<x-livewire-tables::table.heading>
99
<div class="inline-flex rounded-md shadow-sm">
1010
<input
@@ -40,7 +40,7 @@ class="rounded border-gray-300 text-indigo-600 shadow-sm transition duration-150
4040
<x-slot name="body">
4141
@php
4242
$colspan = count($columns);
43-
if ($bulkActionsEnabled && count($bulkActions)) $colspan++;
43+
if ($bulkActionsEnabled && count($this->bulkActions)) $colspan++;
4444
if ($reordering) $colspan++;
4545
@endphp
4646

@@ -71,7 +71,7 @@ class="rounded border-gray-300 text-indigo-600 shadow-sm transition duration-150
7171
</x-livewire-tables::table.cell>
7272
@endif
7373

74-
@if ($bulkActionsEnabled && count($bulkActions))
74+
@if ($bulkActionsEnabled && count($this->bulkActions))
7575
<x-livewire-tables::table.cell>
7676
<div class="inline-flex rounded-md shadow-sm">
7777
<input

src/Traits/WithBulkActions.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ trait WithBulkActions
1515
public bool $selectPage = false;
1616
public bool $selectAll = false;
1717
public $selected = [];
18-
public array $bulkActions = [];
18+
1919
public bool $hideBulkActionsOnEmpty = false;
2020

2121
public function renderingWithBulkActions(): void
@@ -91,12 +91,26 @@ public function getSelectedKeysProperty(): array
9191
return $this->selectedKeys();
9292
}
9393

94+
public function getBulkActionsProperty(): array
95+
{
96+
return $this->bulkActions();
97+
}
98+
99+
public function bulkActions(): array
100+
{
101+
if (property_exists($this, 'bulkActions')) {
102+
return $this->bulkActions;
103+
}
104+
105+
return [];
106+
}
107+
94108
public function getShowBulkActionsDropdownProperty(): bool
95109
{
96110
$showBulkActions = false;
97111

98112
if ($this->bulkActionsEnabled) {
99-
if (count($this->bulkActions)) {
113+
if (count($this->bulkActions())) {
100114
$showBulkActions = true;
101115
}
102116

0 commit comments

Comments
 (0)