Guest User

Untitled

a guest
Feb 22nd, 2026
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.11 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Livewire\Punishment;
  4.  
  5. use App\Models\Core\Punishment\Utils\PunishmentTemplate;
  6. use Filament\Actions\Action;
  7. use Filament\Actions\Concerns\InteractsWithActions;
  8. use Filament\Actions\Contracts\HasActions;
  9. use Filament\Schemas\Concerns\InteractsWithSchemas;
  10. use Filament\Schemas\Contracts\HasSchemas;
  11. use Filament\Tables\Columns\TextColumn;
  12. use Filament\Tables\Concerns\InteractsWithTable;
  13. use Filament\Tables\Contracts\HasTable;
  14. use Filament\Tables\Grouping\Group;
  15. use Filament\Tables\Table;
  16. use Illuminate\Contracts\View\View;
  17. use Livewire\Component;
  18.  
  19. class TemplateTable extends Component implements HasTable, HasActions, HasSchemas
  20. {
  21.     use InteractsWithActions;
  22.     use InteractsWithTable;
  23.     use InteractsWithSchemas;
  24.  
  25.     public function table(Table $table): Table
  26.     {
  27.         return $table
  28.             ->query(PunishmentTemplate::query()->orderBy("category"))
  29.             ->defaultGroup(Group::make("category")
  30.                 ->getTitleFromRecordUsing(fn(PunishmentTemplate $record) => strtoupper($record->category))
  31.                 ->titlePrefixedWithLabel(false)
  32.                 ->collapsible()
  33.             )
  34.             ->columns([
  35.                 TextColumn::make("name")
  36.                     ->label("Name"),
  37.                 TextColumn::make("description")
  38.                     ->label("Beschreibung")
  39.                     ->wrap(),
  40.                 TextColumn::make("punishment_type")
  41.                     ->label("Strafart"),
  42.                 TextColumn::make("duration")
  43.                     ->label("Dauer")
  44.                     ->formatStateUsing(fn(PunishmentTemplate $record) => $record->formatDuration())
  45.             ])
  46.             ->recordActions([
  47.                 Action::make("select")
  48.                     ->label("Auswählen")
  49.                     ->action(function (PunishmentTemplate $record) {
  50.                         $this->dispatch("template-selected", templateId: $record->id);
  51.                     })
  52.             ])
  53.             ->paginated(false);
  54.     }
  55.  
  56.     public function render(): View
  57.     {
  58.         return view('filament.modals.template-table');
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment