mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
Merge pull request #6527 from filamentphp/more-action-group-improvements
More action group improvements
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -41,8 +41,10 @@ class {{ managerClass }} extends RelationManager
|
||||
->actions([
|
||||
{{ tableActions }}
|
||||
])
|
||||
->bulkActions([Tables\Actions\BulkActionGroup::make([
|
||||
->bulkActions([
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
{{ tableBulkActions }}
|
||||
])]);
|
||||
]),
|
||||
]);
|
||||
}{{ eloquentQuery }}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user