event filter wip

This commit is contained in:
salam committed 2025-12-13 16:25:27 +01:00
1 parent abfe5882cb
commit 988a148850
9 files changed
+120 -123

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
<?php
namespace App\Actions;
use App\Models\Multiline;
class MultilineGenerator
{
public static function run()
{
// odds_2ways
// odds_3ways
// odds_dc
// odds_dnb
// odds_ggng
// odds_handicaps
// odds_qualify
// odds_totals
$default = [];
$default[1] = [
'bettypes' => [1, 16, 3, 4, 5],
];
$multilines = Multiline::where('client_id', auth()->user()->client_id)->get();
dd($multilines);
foreach ($slots as $id => $slot) {
$open = true;
foreach ($data as $item) {
if ($slot->bookmaker_id == $item->bookmaker_id) {
$multilines[$id] = $item;
$open = false;
}
}
if ($open) {
$multilines[$id] = $slot;
}
}
return $multilines;
}
}
@@ -20,11 +20,11 @@ class EventResource extends Resource
protected static ?string $navigationLabel = 'Monitor';
protected static ?string $modelLabel = 'Monitor';
protected static ?string $modelLabel = '';
protected static ?string $title = 'Monitor';
protected static ?string $title = '';
protected static ?string $pluralModelLabel = 'Monitor';
protected static ?string $pluralModelLabel = '';
public static function form(Schema $schema): Schema
{
@@ -12,7 +12,10 @@ use Filament\Support\Enums\FontWeight;
use Filament\Support\Enums\IconSize;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
class EventsTable
{
@@ -28,7 +31,7 @@ class EventsTable
->size(IconSize::ExtraLarge)
->icon(fn ($record) => $record->sport->icon)
->tooltip(fn ($record) => $record->id),
TextColumn::make('txodds_id')->searchable()->label('Match Id')->badge()->copyable(),
TextColumn::make('txodds_id')->label('Match Id')->badge()->copyable(),
TextColumn::make('starttime')
->label('Start')
->alignCenter()
@@ -40,14 +43,23 @@ class EventsTable
->label('Event')
->icon(fn ($record) => $record->country->icon)
->description(fn ($record) => $record->competition_group->name),
TextColumn::make('home.name')->alignRight()->searchable(),
TextColumn::make('away.name')->searchable(),
TextColumn::make('home.name')->alignRight(),
TextColumn::make('away.name'),
Odds3Way::make('odds_3way.bookmaker')->label('1X2'),
])
->filters([
//
])
->defaultSort('starttime', 'ASC')
// ->deferFilters(false)
// ->filters([
// SelectFilter::make('sport_id')
// ->label('Sport')
// ->default(1)
// ->selectablePlaceholder(false)
// ->relationship('sport', 'name', fn (Builder $query) => $query->where('is_active', 1))
// ->preload(),
// ], FiltersLayout::AboveContent)
// ->hiddenFilterIndicators()
->persistFiltersInSession()
->recordActions([
// EditAction::make(),
DeleteAction::make()->iconButton(),
@@ -2,9 +2,9 @@
namespace App\Filament\Resources\Multilines\Tables;
use App\Actions\MultilineGenerator;
use App\Filament\Tables\Columns\BookmakerIcon;
use Filament\Actions\Action;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Enums\FiltersLayout;
@@ -53,13 +53,9 @@ class MultilinesTable
->headerActions([
Action::make('generate')
->icon('phosphor-gear-fine')
->requiresConfirmation(),
// EditAction::make()
// ->mutateDataUsing(function (array $data): array {
// $data['client_id'] = auth()->user()->client_id;
// return $data;
// }),
->action(function () {
MultilineGenerator::run();
}),
]);
}
}
+12
View File
@@ -2,10 +2,14 @@
namespace App\Providers;
use App\Filament\Resources\Events\Pages\ListEvents;
use Carbon\Carbon;
use Filament\Support\Colors\Color;
use Filament\Support\Facades\FilamentColor;
use Filament\Support\Facades\FilamentView;
use Filament\View\PanelsRenderHook;
use Illuminate\Support\ServiceProvider;
use Illuminate\View\View;
class AppServiceProvider extends ServiceProvider
{
@@ -22,6 +26,14 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot(): void
{
FilamentView::registerRenderHook(
PanelsRenderHook::RESOURCE_PAGES_LIST_RECORDS_TABLE_BEFORE,
fn (): View => view('filament.hooks.table-bettype-filters'),
scopes: [
ListEvents::class,
]
);
Carbon::setLocale(app()->getLocale());
FilamentColor::register([
@@ -2,7 +2,6 @@
namespace App\Providers\Filament;
use App\Filament\Resources\Events\Pages\ListEvents;
use Awcodes\LightSwitch\Enums\Alignment;
use Awcodes\LightSwitch\LightSwitchPlugin;
use Filament\Actions\Action;
@@ -17,10 +16,8 @@ use Filament\Pages\Dashboard;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Enums\Width;
use Filament\Tables\View\TablesRenderHook;
use Filament\Widgets\AccountWidget;
use Filament\Widgets\FilamentInfoWidget;
use Illuminate\Contracts\View\View;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
@@ -47,13 +44,6 @@ class AdminPanelProvider extends PanelProvider
->databaseNotifications()
->profile(isSimple: false)
->default()
->renderHook(
TablesRenderHook::TOOLBAR_START,
fn (): View => view('filament.mapper.sport-menu'),
ListEvents::class
)
// ->brandLogo(asset('images/nuh-combined.svg'))
// ->darkModeBrandLogo(asset('images/nuh-combined-d.svg'))
->brandLogo(asset('images/nuh-odds.svg'))
->darkModeBrandLogo(asset('images/nuh-odds-d.svg'))
->favicon(asset('images/nuh.svg'))