From 635e86938b1662dff2892aa7a197dbe1c98efe57 Mon Sep 17 00:00:00 2001 From: salam Date: Thu, 18 Jun 2026 14:38:43 +0200 Subject: [PATCH] wip --- app/Filament/Pages/Statistic.php | 6 ++- app/Filament/Widgets/Data/LoadEvents.php | 1 + app/Filament/Widgets/StatsMedianAverage.php | 41 +++++++++++---------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/app/Filament/Pages/Statistic.php b/app/Filament/Pages/Statistic.php index 9c1876fb..690cd5e7 100644 --- a/app/Filament/Pages/Statistic.php +++ b/app/Filament/Pages/Statistic.php @@ -137,7 +137,8 @@ class Statistic extends BaseDashboard 'all' => 'All', 'home' => 'Home', 'away' => 'Away', - ]), + ]) + ->live(), Select::make('statistic_type') ->hiddenLabel() ->placeholder('Statistic Type') @@ -153,7 +154,8 @@ class Statistic extends BaseDashboard 'crd' => 'Cards', 'snt' => 'Shots On Target', 'tsh' => 'Total Shots', - ]), + ]) + ->live(), Select::make('similar_past_matches') ->hiddenLabel() ->placeholder('Similar Past Matches') diff --git a/app/Filament/Widgets/Data/LoadEvents.php b/app/Filament/Widgets/Data/LoadEvents.php index c60c42b6..45d57a5c 100644 --- a/app/Filament/Widgets/Data/LoadEvents.php +++ b/app/Filament/Widgets/Data/LoadEvents.php @@ -661,6 +661,7 @@ class LoadEvents 'average_league_a' => $average_league_a, ]; } + // dd($data); } } diff --git a/app/Filament/Widgets/StatsMedianAverage.php b/app/Filament/Widgets/StatsMedianAverage.php index cc4e814c..22b88254 100644 --- a/app/Filament/Widgets/StatsMedianAverage.php +++ b/app/Filament/Widgets/StatsMedianAverage.php @@ -74,8 +74,6 @@ class StatsMedianAverage extends StatsOverviewWidget $win = $data['results']['w'] ? number_format(Round::odd($total_home / $data['results']['w']), 2) : 0; $draw = $data['results']['d'] ? number_format(Round::odd($total_home / $data['results']['d']), 2) : 0; $lost = $data['results']['l'] ? number_format(Round::odd($total_home / $data['results']['l']), 2) : 0; - - // dd($win, $draw, $lost); } else { return []; } @@ -91,33 +89,36 @@ class StatsMedianAverage extends StatsOverviewWidget $max_boxes = 4; - $boxes = []; - $boxes[] = Stat::make('Number', new HtmlString('
' . $total_home . '
'))->description('Events')->extraAttributes(['x-init' => "animate('number-of-events', $total_home, 0)"]); - $boxes[] = Stat::make('Average ' . $statistic_type, self::template('avhome', 'avaway', $home_team, $away_team))->description('Team ' . $team_position)->extraAttributes(['x-init' => "animate('avhome', $value_home); animate('avaway', $value_away)"]); foreach ($data['datasets'] as $value) { if ($value['label'] == "Average Team") { - $av_home = $value['average_team_h'] ?? 0; - $av_away = $value['average_team_a'] ?? 0; - $boxes[] = Stat::make('Average ' . $statistic_type, self::template('av_team_home', 'av_team_away', 'Home', 'Away'))->description('Team Season')->extraAttributes(['x-init' => "animate('av_team_home', $av_home); animate('av_team_away', $av_away)"]); + $average_team_h = $value['average_team_h'] ?? 0; + $average_team_a = $value['average_team_a'] ?? 0; $max_boxes++; } if ($value['label'] == "Average League") { - $av_home = $value['average_league_h'] ?? 0; - $av_away = $value['average_league_a'] ?? 0; - $boxes[] = Stat::make('Average ' . $statistic_type, self::template('av_league_home', 'av_league_away', 'Home', 'Away'))->description('League Season')->extraAttributes(['x-init' => "animate('av_league_home', $av_home); animate('av_league_away', $av_away)"]); + $average_league_h = $value['average_league_h'] ?? 0; + $average_league_a = $value['average_league_a'] ?? 0; $max_boxes++; } } - $boxes[] = Stat::make('Median ' . $statistic_type, self::template('mehome', 'meaway', $home_team, $away_team))->description($team_position)->extraAttributes(['x-init' => "animate('mehome', $median_home); animate('meaway', $median_away, 0)"]); + + $boxes = []; + $boxes[] = Stat::make('Number', new HtmlString('
' . $total_home . '
'))->description('Events')->extraAttributes(['x-init' => "animate('number-of-events', $total_home, 0)"]); + $boxes[] = Stat::make('Average ' . $statistic_type, self::template('avhome', 'avaway', $home_team, $away_team))->description('Team ' . $team_position)->extraAttributes(['x-init' => "animate('avhome', $value_home); animate('avaway', $value_away)"]); + if(isset($average_team_h)){ + $boxes[] = Stat::make('Average ' . $statistic_type, self::template('av_team_home', 'av_team_away', 'Home', 'Away', $average_team_h, $average_team_a))->description('Team Season')->extraAttributes(['x-init' => "animate('av_team_home', $average_team_h); animate('av_team_away', $average_team_a)"]); + } + if(isset($average_team_a)){ + $boxes[] = Stat::make('Average ' . $statistic_type, self::template('av_league_home', 'av_league_away', 'Home', 'Away', $average_league_h, $average_league_a))->description('League Season')->extraAttributes(['x-init' => "animate('av_league_home', $average_league_h); animate('av_league_away', $average_league_a)"]); + } + $boxes[] = Stat::make('Median ' . $statistic_type, self::template('mehome', 'meaway', $home_team, $away_team, $median_home, $median_away))->description($team_position)->extraAttributes(['x-init' => "animate('mehome', $median_home); animate('meaway', $median_away, 0)"]); $boxes[] = Stat::make('Odds', self::templateOdds($data, $win, $draw, $lost))->description($team_position)->extraAttributes(['x-init' => "animate('mehome', $median_home); animate('meaway', $median_away, 0)"]); - // $boxes[] = Stat::make($data['similar_past_matches'] != 'none' ? '1' : 'Win: ' . $data['results']['w'], new HtmlString('
' . $win . '
'))->extraAttributes(['x-init' => "animate('number-of-win', $win, 1)"]); - // $boxes[] = Stat::make($data['similar_past_matches'] != 'none' ? 'X' : 'Draw: ' . $data['results']['d'], new HtmlString('
' . $draw . '
'))->extraAttributes(['x-init' => "animate('number-of-draw', $draw, 1)"]); - // $boxes[] = Stat::make($data['similar_past_matches'] != 'none' ? '2' : 'Lost: ' . $data['results']['l'], new HtmlString('
' . $lost . '
'))->extraAttributes(['x-init' => "animate('number-of-lost', $lost, 1)"]); - $this->columns = [ 'default' => 1, - 'sm' => 3, + 'sm' => 2, + 'md' => 3, + 'lg' => 4, 'xl' => $max_boxes, ]; @@ -146,11 +147,11 @@ class StatsMedianAverage extends StatsOverviewWidget '); } - protected function template(string $home_id, string $away_id, string $home_name, string $away_name): HtmlString + protected function template($home_id, $away_id, $home_name, $away_name, $val_home =0, $val_away =0): HtmlString { return new HtmlString('
- 0 - 0 + '.$val_home.' + '.$val_away.' ' . $home_name . ' ' . $away_name . '
');