striped() ->poll('10s') ->columns([ TextColumn::make('id')->badge()->alignCenter(), TextColumn::make('provider.name')->badge() ->color(fn ($record): string => match ($record->provider_id) { 1 => 'danger', 2 => 'success', default => 'warning', }), SelectColumn::make('name') ->options([ 'Fixtures' => 'Fixtures', 'Odds' => 'Odds', 'Willhill' => 'Willhill', 'Bwin' => 'Bwin', 'Bet365' => 'Bet365', 'Betfair' => 'Betfair', ]), TextColumn::make('sport.name')->label('Sport'), TextColumn::make('days_from')->label('From'), TextColumn::make('days_to')->label('To'), TextInputColumn::make('sleep')->width('2rem'), TextColumn::make('runtime')->label('Run Time'), TextInputColumn::make('commandline_options')->width('2rem'), // TextColumn::make('maxsconds')->label('Max Time'), // IconColumn::make('is_cron')->boolean()->label('Cron')->falseColor('gray'), ToggleColumn::make('use_lastcall')->label('Lastcall'), ToggleColumn::make('is_cron')->label('Cron'), ToggleColumn::make('is_active')->label('Active'), ]) ->filters([ SelectFilter::make('provider_id') ->default(1) ->relationship('provider', 'name') ->label('Provider'), TernaryFilter::make('is_cron'), TernaryFilter::make('is_active'), ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ EditAction::make()->hiddenLabel(), ]) ->toolbarActions([ BulkActionGroup::make([ BulkAction::make('Switch On') ->icon('phosphor-play') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { Supervisor::where('id', '=', $record->id) ->update( ['is_active' => 1] ); } }), BulkAction::make('Switch Off') ->icon('phosphor-stop') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { Supervisor::where('id', '=', $record->id) ->update( ['is_active' => 0] ); } }), DeleteBulkAction::make(), ]), ]); } }