Merge pull request #6527 from filamentphp/more-action-group-improvements

More action group improvements
This commit is contained in:
Dan Harrin
2023-05-17 12:20:06 +01:00
committed by GitHub
15 changed files with 95 additions and 80 deletions
@@ -28,10 +28,12 @@ public function table(Table $table): Table
DeleteAction::make(),
// ...
])
->bulkActions([BulkActionGroup::make([
DeleteBulkAction::make(),
// ...
])]);
->bulkActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
// ...
]),
]);
}
```
@@ -28,10 +28,12 @@ public function table(Table $table): Table
ForceDeleteAction::make(),
// ...
])
->bulkActions([BulkActionGroup::make([
ForceDeleteBulkAction::make(),
// ...
])]);
->bulkActions([
BulkActionGroup::make([
ForceDeleteBulkAction::make(),
// ...
]),
]);
}
```
@@ -28,10 +28,12 @@ public function table(Table $table): Table
RestoreAction::make(),
// ...
])
->bulkActions([BulkActionGroup::make([
RestoreBulkAction::make(),
// ...
])]);
->bulkActions([
BulkActionGroup::make([
RestoreBulkAction::make(),
// ...
]),
]);
}
```
@@ -53,13 +53,29 @@
@endforeach
@else
@php
if ($group->isDivided()) {
$actionLists = array_map(
fn ($action): array => [$action],
$group->getActions(),
);
} else {
$actionLists = [$group->getActions()];
$actions = array_filter(
$group->getActions(),
fn ($action): bool => $action->isVisible(),
);
$actionLists = [];
$actionList = [];
foreach ($actions as $action) {
if ($action instanceof \Filament\Actions\ActionGroup && (! $action->hasDropdown())) {
if (count($actionList)) {
$actionLists[] = $actionList;
$actionList = [];
}
$actionLists[] = $action->getActions();
} else {
$actionList[] = $action;
}
}
if (count($actionList)) {
$actionLists[] = $actionList;
}
@endphp
@@ -88,9 +104,7 @@
@foreach ($actionLists as $actions)
<x-filament::dropdown.list>
@foreach ($actions as $action)
@if ($action->isVisible())
{{ $action }}
@endif
{{ $action }}
@endforeach
</x-filament::dropdown.list>
@endforeach
-1
View File
@@ -9,7 +9,6 @@ use Livewire\Component;
class ActionGroup extends ViewComponent implements HasLivewire
{
use Concerns\CanBeDivided;
use Concerns\CanBeHidden {
isHidden as baseIsHidden;
}
@@ -1,22 +0,0 @@
<?php
namespace Filament\Actions\Concerns;
use Closure;
trait CanBeDivided
{
protected bool | Closure $isDivided = false;
public function divided(bool | Closure $condition = true): static
{
$this->isDivided = $condition;
return $this;
}
public function isDivided(): bool
{
return $this->evaluate($this->isDivided);
}
}
@@ -168,9 +168,11 @@ public static function table(Table $table): Table
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
])]);
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
```
@@ -43,12 +43,14 @@ public static function table(Table $table): Table
Tables\Actions\RestoreAction::make(),
// ...
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\ForceDeleteBulkAction::make(),
Tables\Actions\RestoreBulkAction::make(),
// ...
])]);
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\ForceDeleteBulkAction::make(),
Tables\Actions\RestoreBulkAction::make(),
// ...
]),
]);
}
public static function getEloquentQuery(): Builder
@@ -248,10 +248,12 @@ public function table(Table $table): Table
// ...
Tables\Actions\DetachAction::make(),
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
// ...
Tables\Actions\DetachBulkAction::make(),
])]);
->bulkActions([
Tables\Actions\BulkActionGroup::make([
// ...
Tables\Actions\DetachBulkAction::make(),
]),
]);
}
```
@@ -338,10 +340,12 @@ public function table(Table $table): Table
// ...
Tables\Actions\DissociateAction::make(),
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
// ...
Tables\Actions\DissociateBulkAction::make(),
])]);
->bulkActions([
Tables\Actions\BulkActionGroup::make([
// ...
Tables\Actions\DissociateBulkAction::make(),
]),
]);
}
```
@@ -426,12 +430,14 @@ public function table(Table $table): Table
Tables\Actions\RestoreAction::make(),
// ...
])
->bulkActions([BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\ForceDeleteBulkAction::make(),
Tables\Actions\RestoreBulkAction::make(),
// ...
])]);
->bulkActions([
BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\ForceDeleteBulkAction::make(),
Tables\Actions\RestoreBulkAction::make(),
// ...
]),
]);
}
protected function getTableQuery(): Builder
@@ -151,7 +151,7 @@ class MakeRelationManagerCommand extends Command
'recordTitleAttribute' => $recordTitleAttribute,
'relationship' => $relationship,
'tableActions' => $this->indentString($tableActions, 4),
'tableBulkActions' => $this->indentString($tableBulkActions, 4),
'tableBulkActions' => $this->indentString($tableBulkActions, 5),
'tableFilters' => $this->indentString(
$this->option('soft-deletes') ? 'Tables\Filters\TrashedFilter::make()' : '//',
4,
@@ -181,7 +181,7 @@ class MakeResourceCommand extends Command
'resource' => "{$namespace}\\{$resourceClass}",
'resourceClass' => $resourceClass,
'tableActions' => $this->indentString($tableActions, 4),
'tableBulkActions' => $this->indentString($tableBulkActions, 4),
'tableBulkActions' => $this->indentString($tableBulkActions, 5),
'tableColumns' => $this->indentString($this->option('generate') ? $this->getResourceTableColumns(
'App\Models' . ($modelNamespace !== '' ? "\\{$modelNamespace}" : '') . '\\' . $modelClass,
) : '//', 4),
+4 -2
View File
@@ -41,8 +41,10 @@ class {{ managerClass }} extends RelationManager
->actions([
{{ tableActions }}
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
->bulkActions([
Tables\Actions\BulkActionGroup::make([
{{ tableBulkActions }}
])]);
]),
]);
}{{ eloquentQuery }}
}
+4 -2
View File
@@ -39,9 +39,11 @@ class {{ resourceClass }} extends Resource
->actions([
{{ tableActions }}
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
->bulkActions([
Tables\Actions\BulkActionGroup::make([
{{ tableBulkActions }}
])]);
]),
]);
}
{{ relations }}
public static function getPages(): array
+5 -3
View File
@@ -134,9 +134,11 @@ public function table(Table $table): Table
})
->visible(fn (Post $record): bool => $record->is_featured),
])
->bulkActions([BulkActionGroup::make([
DeleteBulkAction::make(),
])]);
->bulkActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
```
+5 -3
View File
@@ -28,9 +28,11 @@ class {{ class }} extends Component implements HasTable
->actions([
//
])
->bulkActions([Tables\Actions\BulkActionGroup::make([
//
])]);
->bulkActions([
Tables\Actions\BulkActionGroup::make([
//
]),
]);
}
public function render(): View