poll('5s') ->columns([ TextColumn::make('filename') ->label('Fájlnév') ->searchable() ->sortable(), TextColumn::make('supplier.name') ->label('Beszállító') ->searchable() ->sortable(), TextColumn::make('status') ->label('Státusz') ->badge() ->formatStateUsing(fn (PricelistFileStatusEnum $state): string => $state->label()) ->color(fn (PricelistFileStatusEnum $state): string => match ($state) { PricelistFileStatusEnum::todo => 'gray', PricelistFileStatusEnum::inprogress => 'info', PricelistFileStatusEnum::done => 'success', PricelistFileStatusEnum::fail => 'danger', PricelistFileStatusEnum::waiting_for_approval => 'primary', PricelistFileStatusEnum::closed => 'warning', }) ->sortable(), TextColumn::make('processing_current_step') ->label('Aktuális lépés') ->placeholder('Nincs adat'), TextColumn::make('processing_current_step_percentage') ->label('Készültség') ->suffix('%') ->alignCenter(), TextColumn::make('created_at') ->label('Feltöltve') ->dateTime('Y.m.d H:i') ->sortable(), ]) ->filters([ TrashedFilter::make(), ]) ->recordActions([ ViewAction::make(), EditAction::make() ->visible(fn ($record) => $record->status === PricelistFileStatusEnum::fail), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ForceDeleteBulkAction::make(), RestoreBulkAction::make(), ]), ]); } }