favorits ok

This commit is contained in:
salam committed 2026-01-13 12:14:33 +01:00
1 parent 6cf075709e
commit 5ec3e9ef7c
6 files changed
+130 -3

No files matched your search

@@ -57,7 +57,8 @@ class EventResource extends Resource
->with('competition_group')
->with('country')
->with('home')
->with('away');
->with('away')
->with('event_user_star');
if (in_array('odds_2ways', EventsTable::$bettype_settings)) {
$query->with('odds_2ways.bookmaker');
@@ -19,6 +19,7 @@ use App\Filament\Tables\Columns\MatchIds;
use App\Models\BettypeUser;
use App\Models\Country;
use App\Models\Event;
use App\Models\EventUserStar;
use App\Models\MultilineClient;
use CodeWithKyrian\FilamentDateRange\Forms\Components\DateRangePicker;
use Filament\Actions\Action;
@@ -28,6 +29,7 @@ use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Toggle;
use Filament\Schemas\Components\Utilities\Get;
use Filament\Support\Enums\FontWeight;
use Filament\Support\Enums\VerticalAlignment;
@@ -47,6 +49,10 @@ class EventsTable
public static $multiline_gettype = [];
protected $listeners = [
'example' => '$refresh',
];
public static function load_multiline_bookmaker()
{
$res = MultilineClient::with('multiline_setting')
@@ -262,6 +268,12 @@ class EventsTable
->hiddenLabel()
->label('')
->live(),
Toggle::make('stars_status')
->hiddenLabel()
->onIcon('phosphor-star-fill')
->offIcon('phosphor-star')
->offColor('gray')
->live(),
Action::make('resetAction')
->hiddenLabel()
->color('primary')
@@ -275,6 +287,10 @@ class EventsTable
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['stars_status'],
fn (Builder $query) => $query->whereHas('event_user_star')
)
->when(
$data['country_id'],
fn (Builder $query, $country_id) => $query->where('country_id', $country_id)
@@ -305,12 +321,35 @@ class EventsTable
}
);
})
->columns(19)->columnSpan(19),
->columns(20)->columnSpan(20),
], layout: FiltersLayout::AboveContent)
->filtersFormColumns(6)
->deferFilters(false)
->persistFiltersInSession()
->recordActions([
Action::make('star')
->iconButton()
// ->color('gray')
->icon(function ($record) {
if (isset($record->event_user_star->id)) {
return 'phosphor-star-fill';
} else {
// dd($record->event_user_stars);
return 'phosphor-star';
}
})
->tooltip('Add to favorits')
->action(function ($record) {
$res = EventUserStar::where('event_id', $record->id)
->where('user_id', auth()->user()->id)
->first();
if ($res) {
EventUserStar::find($res->id)->delete();
} else {
EventUserStar::insert(['event_id' => $record->id, 'user_id' => auth()->user()->id]);
}
}),
ActionGroup::make([
// EditAction::make(),
DeleteAction::make()->visible(fn () => auth()->user()->hasRole('super_admin')),