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 => $state->color()) ->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() // Ha a végrehajtás már elindult, az újratöltés (és a vele járó // teljes lánc-újraindítás) duplikált termékeket/árakat okozna. ->visible(fn ($record) => $record->status === PricelistFileStatusEnum::fail && ! $record->hasExecutionStarted()), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ForceDeleteBulkAction::make(), RestoreBulkAction::make(), ]), ]); } }