popup and grapper wip
This commit is contained in:
1 parent
a3c9f16550
commit
c9588f39b6
18 files changed
+656
-156248
No files matched your search
@@ -5,6 +5,7 @@ namespace App\Console\Commands\Grapper;
|
||||
use App\Console\Commands\Grapper\Betsapi\Bwin;
|
||||
use App\Console\Commands\Grapper\Betsapi\Fixtures;
|
||||
use App\Console\Commands\Grapper\Betsapi\Odds;
|
||||
use App\Console\Commands\Grapper\Betsapi\Willhill;
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Utilities\Notice;
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ class Bwin
|
||||
|
||||
$sportmap = Sport::map('bwin');
|
||||
|
||||
$sportmap = [4];
|
||||
|
||||
$total = 1;
|
||||
foreach ($sportmap as $sport_id => $bwin_sport_id) {
|
||||
|
||||
@@ -25,28 +27,32 @@ class Bwin
|
||||
/**
|
||||
* BWIN ODDS & BETRADAR ID (per page)
|
||||
*/
|
||||
$url = 'https://api.b365api.com/v1/bwin/prematch?token='.config('env.betsapi_token').'&page=###page###&sport_id='.$bwin_sport_id;
|
||||
$base_url = 'https://api.b365api.com/v1/bwin/prematch?token='.config('env.betsapi_token').'&skip_markets=1&page=###page###&sport_id='.$bwin_sport_id;
|
||||
|
||||
while ($page <= $total) {
|
||||
|
||||
$url = str_replace('###page###', $page, $url);
|
||||
$url = str_replace('###page###', $page, $base_url);
|
||||
|
||||
$data = Curl::load($url);
|
||||
|
||||
$page++;
|
||||
|
||||
$total = round($data['pager']['total'] / $data['pager']['per_page']);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note("Page: $page \nTotal: $total");
|
||||
}
|
||||
|
||||
$page++;
|
||||
|
||||
if (isset($data['results'])) {
|
||||
foreach ($data['results'] as $event) {
|
||||
|
||||
$bwin_id = $event['Id'];
|
||||
$betsapi_id = $event['our_event_id'] ?? 0;
|
||||
$betradar_id = $event['BetRadarId'] ?? 0;
|
||||
$betsapi_id = $event['our_event_id'];
|
||||
$bwin_id = $event['Id'] ?? 0;
|
||||
|
||||
if ($debug) {
|
||||
Notice::note(["Betsapi ID : $betsapi_id", "Betradar ID : $betradar_id", "Bwin ID : $bwin_id"]);
|
||||
}
|
||||
|
||||
if ($betradar_id) {
|
||||
Event::where('betsapi_id', (int) $betsapi_id)->update(['betradar_id' => $betradar_id, 'bwin_id' => $bwin_id]);
|
||||
|
||||
@@ -17,49 +17,61 @@ class Fixtures
|
||||
|
||||
$sportmap = Sport::map('bapi');
|
||||
|
||||
$total = 1;
|
||||
foreach ($sportmap as $sport_id => $betsapi_sport_id) {
|
||||
$page = 1;
|
||||
while ($page <= $total) {
|
||||
$now = Carbon::now();
|
||||
|
||||
$url = "https://api.b365api.com/v3/events/upcoming?sport_id=$betsapi_sport_id&page=$page&skip_esports=1&token=".config('env.betsapi_token');
|
||||
|
||||
$data = Curl::load($url);
|
||||
|
||||
$page++;
|
||||
|
||||
$total = round($data['pager']['total'] / $data['pager']['per_page']);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note("Page: $page \nTotal: $total");
|
||||
}
|
||||
|
||||
if (isset($data['results'])) {
|
||||
|
||||
foreach ($data['results'] as $row) {
|
||||
|
||||
$event = [
|
||||
'sport_id' => (int) $sport_id,
|
||||
'provider_id' => (int) Nuh::$options['provider_id'],
|
||||
'starttime' => Carbon::createFromTimestamp((string) $row['time'])->toDateTimeString(),
|
||||
'home' => $row['home']['name'] ?? '',
|
||||
'home_id' => (int) $row['home']['id'],
|
||||
'home_cc' => $row['home']['cc'] ?? '',
|
||||
'away' => $row['away']['name'] ?? '',
|
||||
'away_id' => (int) $row['away']['id'],
|
||||
'away_cc' => $row['away']['cc'] ?? '',
|
||||
'group' => $row['league']['name'] ?? '',
|
||||
'group_id' => (int) $row['league']['id'] ?? 0,
|
||||
'group_cc' => $row['league']['cc'] ?? '',
|
||||
];
|
||||
|
||||
Mapper::updateOrCreate(['event_id' => (int) $row['id']], $event);
|
||||
}
|
||||
}
|
||||
}
|
||||
for ($i = 0; $i < 30; $i++) {
|
||||
|
||||
if ($debug) {
|
||||
Notice::note('FIRST LOOP', 'g', 1);
|
||||
Notice::note('Day: '.$now->format('d. M Y'), 'g');
|
||||
}
|
||||
|
||||
$base_url = 'https://api.b365api.com/v3/events/upcoming?sport_id=###sport_id###&page=###page###&day='.$now->format('Ymd').'skip_esports=1&token='.config('env.betsapi_token');
|
||||
|
||||
$now->addDays(1);
|
||||
|
||||
$total = 1;
|
||||
foreach ($sportmap as $sport_id => $betsapi_sport_id) {
|
||||
|
||||
$sport_url = str_replace('###sport_id###', $sport_id, $base_url);
|
||||
|
||||
$page = 1;
|
||||
while ($page <= $total) {
|
||||
|
||||
$url = str_replace('###page###', $page, $sport_url);
|
||||
|
||||
$data = Curl::load($url);
|
||||
|
||||
$page++;
|
||||
|
||||
$total = round($data['pager']['total'] / $data['pager']['per_page']);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note("Page: $page \nTotal: $total");
|
||||
}
|
||||
|
||||
if (isset($data['results'])) {
|
||||
|
||||
foreach ($data['results'] as $row) {
|
||||
|
||||
$event = [
|
||||
'sport_id' => (int) $sport_id,
|
||||
'provider_id' => (int) Nuh::$options['provider_id'],
|
||||
'starttime' => Carbon::createFromTimestamp((string) $row['time'])->toDateTimeString(),
|
||||
'home' => $row['home']['name'] ?? '',
|
||||
'home_id' => (int) $row['home']['id'],
|
||||
'home_cc' => $row['home']['cc'] ?? '',
|
||||
'away' => $row['away']['name'] ?? '',
|
||||
'away_id' => (int) $row['away']['id'],
|
||||
'away_cc' => $row['away']['cc'] ?? '',
|
||||
'group' => $row['league']['name'] ?? '',
|
||||
'group_id' => (int) $row['league']['id'] ?? 0,
|
||||
'group_cc' => $row['league']['cc'] ?? '',
|
||||
];
|
||||
|
||||
Mapper::updateOrCreate(['event_id' => (int) $row['id']], $event);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,26 +21,25 @@ class Fixtures
|
||||
|
||||
$count = 0;
|
||||
$total = 0;
|
||||
|
||||
$now = Carbon::now();
|
||||
|
||||
/**
|
||||
* Delete
|
||||
*/
|
||||
// $info = 0;
|
||||
$info = Event::where('starttime', '<', $now->toDateTimeString())->delete();
|
||||
$info = Event::where('starttime', '<', Carbon::now()->toDateTimeString())->delete();
|
||||
|
||||
if ($debug) {
|
||||
Notice::note("Deleted: $info");
|
||||
}
|
||||
|
||||
/**
|
||||
* Grap
|
||||
*/
|
||||
for ($i = 0; $i < 30; $i++) {
|
||||
|
||||
$from = $now->addDays($i)->toDateString();
|
||||
$to = $now->addDays($i + 1)->toDateString();
|
||||
|
||||
$url = 'https://xml2.txodds.com/feed/result/xml.php?'.Nuh::$AUTHTOKEN."&date=$from,$to";
|
||||
$url = 'https://xml2.txodds.com/feed/result/xml.php?'.Nuh::$AUTHTOKEN.'&date='.$now->toDateString().','.$now->addDays(1)->toDateString();
|
||||
|
||||
$data = Xml::load($url);
|
||||
|
||||
@@ -94,12 +93,12 @@ class Fixtures
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
Notice::note("$from - $count events processed", 'g');
|
||||
Notice::note($now->toDateString()." - $count events processed", 'g');
|
||||
}
|
||||
|
||||
$total += $count;
|
||||
|
||||
if ($break || $debug) {
|
||||
if ($break) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,6 +137,10 @@ class Odds
|
||||
dd($data);
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
Notice::note('call counter: '.$counter, 'g');
|
||||
}
|
||||
|
||||
foreach ($data as $row) {
|
||||
|
||||
$event = [
|
||||
|
||||
+331
-156067
File diff suppressed because it is too large.
Load diff
@@ -2,7 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources\Events\Tables;
|
||||
|
||||
use App\Filament\Tables\Columns\MultilineColumn;
|
||||
use App\Filament\Tables\Columns\Columns3way;
|
||||
use App\Filament\Tables\Columns\MatchIds;
|
||||
use App\Models\Country;
|
||||
use App\Models\Event;
|
||||
use Carbon\Carbon;
|
||||
@@ -34,12 +35,12 @@ class EventsTable
|
||||
->size(IconSize::ExtraLarge)
|
||||
->icon(fn ($record) => $record->sport->icon)
|
||||
->tooltip(fn ($record) => $record->id),
|
||||
TextColumn::make('txodds_id')
|
||||
->state(fn ($record) => $record->id)
|
||||
->description(fn ($record) => $record->betsapi_id)
|
||||
->copyable()
|
||||
->label('Id')
|
||||
->alignCenter(),
|
||||
MatchIds::make('match_ids'),
|
||||
TextColumn::make('id')->hidden()->searchable(),
|
||||
TextColumn::make('betsapi_id')->hidden()->searchable(),
|
||||
TextColumn::make('betradar_id')->hidden()->searchable(),
|
||||
TextColumn::make('bet365_id')->hidden()->searchable(),
|
||||
TextColumn::make('bwin_id')->hidden()->searchable(),
|
||||
TextColumn::make('starttime')
|
||||
->label('Start')
|
||||
->alignCenter()
|
||||
@@ -57,9 +58,7 @@ class EventsTable
|
||||
->alignRight(),
|
||||
TextColumn::make('away.name')
|
||||
->searchable(),
|
||||
MultilineColumn::make('id')
|
||||
->searchable()
|
||||
->label(fn () => view('filament.tables.columns.multiline.label')),
|
||||
Columns3way::make('odds3way')->label(fn () => view('filament.tables.columns.multiline.label')),
|
||||
])
|
||||
->poll('10s')
|
||||
->defaultSort('starttime', 'ASC')
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use App\Models\Odds3way;
|
||||
use Filament\Tables\Columns\Column;
|
||||
|
||||
class Columns3way extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.columns_3way';
|
||||
|
||||
protected ?array $multiline;
|
||||
|
||||
protected ?array $fumetto;
|
||||
|
||||
public function loadData($record, $multiline_client)
|
||||
{
|
||||
|
||||
$res = Odds3way::with('bookmaker')->where('event_id', $record->id)->get();
|
||||
|
||||
$this->fumetto = [];
|
||||
|
||||
$this->multiline = [];
|
||||
|
||||
foreach ($res as $item) {
|
||||
|
||||
$this->fumetto[] = $item;
|
||||
foreach ($multiline_client as $slot => $bookmaker) {
|
||||
if ($item->bookmaker_id == $bookmaker->bookmaker_id) {
|
||||
$this->multiline[$slot] = $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// $this->multiline = [];
|
||||
|
||||
// foreach ($multiline_client as $slot => $bookmaker) {
|
||||
|
||||
// $open = true;
|
||||
|
||||
// foreach ($this->fumetto as $item) {
|
||||
// if ($item['bookmaker_id'] == $bookmaker->bookmaker_id) {
|
||||
// $this->multiline[$slot] = $item;
|
||||
// $open = false;
|
||||
// }
|
||||
// }
|
||||
// if ($open) {
|
||||
// $item = new stdClass;
|
||||
// $item['icon'] = $bookmaker->bookmaker->icon;
|
||||
// $item['h3w'] = 0;
|
||||
// $item['d3w'] = 0;
|
||||
// $item['a3w'] = 0;
|
||||
// $item['margin'] = 0;
|
||||
// $item['bookmaker_id'] = $bookmaker->bookmaker_id;
|
||||
// $this->multiline[$slot] = $item;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
public function getMultilines(): ?array
|
||||
{
|
||||
return $this->multiline;
|
||||
}
|
||||
|
||||
public function getFumetto()
|
||||
{
|
||||
return $this->fumetto;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use Filament\Tables\Columns\Column;
|
||||
|
||||
class MatchIds extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.match-ids';
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use Filament\Tables\Columns\Column;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use stdClass;
|
||||
|
||||
class MultilineColumn extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.multiline.main';
|
||||
|
||||
protected ?array $slots;
|
||||
|
||||
protected $settings;
|
||||
|
||||
public function loadSlots($event_id, $bookmakers)
|
||||
{
|
||||
$systemSettings = app('systemSettings');
|
||||
$this->settings = $systemSettings[auth()->user()->multiline_setting_id];
|
||||
|
||||
$odds = DB::table($this->settings->table)->where('event_id', $event_id)->get();
|
||||
|
||||
$this->makeSlots($odds, $bookmakers);
|
||||
|
||||
}
|
||||
|
||||
public function has3Columns(): ?int
|
||||
{
|
||||
return $this->settings->has_3_columns;
|
||||
}
|
||||
|
||||
public function getSlots(): ?array
|
||||
{
|
||||
return $this->slots;
|
||||
}
|
||||
|
||||
public function makeSlots(&$odds, $bookmakers)
|
||||
{
|
||||
|
||||
$multilines = [];
|
||||
|
||||
foreach ($bookmakers as $slot => $bookmaker) {
|
||||
|
||||
$open = true;
|
||||
|
||||
foreach ($odds as $item) {
|
||||
if ($item->bookmaker_id == $bookmaker->bookmaker_id) {
|
||||
$item->icon = $bookmaker->bookmaker->icon;
|
||||
$item->table = $this->settings['table'];
|
||||
switch ($this->settings->table) {
|
||||
case 'odds_2ways':
|
||||
case 'odds_2ways_s1':
|
||||
$item->a = $item->h3w;
|
||||
$item->c = $item->a3w;
|
||||
break;
|
||||
case 'odds_3ways':
|
||||
$item->a = $item->h3w;
|
||||
$item->b = $item->d3w;
|
||||
$item->c = $item->a3w;
|
||||
break;
|
||||
case 'odds_dc':
|
||||
$item->a = $item->dc1x;
|
||||
$item->b = $item->dc12;
|
||||
$item->c = $item->dc2x;
|
||||
break;
|
||||
case 'odds_dnb':
|
||||
$item->a = $item->dnb1;
|
||||
$item->c = $item->dnb2;
|
||||
break;
|
||||
case 'odds_ggng':
|
||||
$item->a = $item->gg;
|
||||
$item->c = $item->ng;
|
||||
break;
|
||||
case 'odds_handicaps':
|
||||
case 'odds_handicaps_q1':
|
||||
$item->a = $item->home;
|
||||
$item->b = $item->away;
|
||||
$item->c = $item->handicap;
|
||||
break;
|
||||
case 'odds_qualify':
|
||||
$item->a = $item->htq;
|
||||
$item->c = $item->atq;
|
||||
break;
|
||||
case 'odds_totals':
|
||||
case 'odds_totals_q1':
|
||||
$item->a = $item->over;
|
||||
$item->b = $item->under;
|
||||
$item->c = $item->total;
|
||||
break;
|
||||
default:
|
||||
// code...
|
||||
break;
|
||||
}
|
||||
$multilines[$slot] = $item;
|
||||
$open = false;
|
||||
}
|
||||
}
|
||||
if ($open) {
|
||||
$item = new stdClass;
|
||||
$item->icon = $bookmaker->bookmaker->icon;
|
||||
$item->bookmaker_id = $bookmaker->bookmaker_id;
|
||||
$item->a = 0;
|
||||
$item->b = 0;
|
||||
$item->c = 0;
|
||||
$item->margin = 0;
|
||||
$multilines[$slot] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
$this->slots = $multilines;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use App\Models\Odds3way;
|
||||
use App\Models\OddsDc;
|
||||
use App\Models\OddsDnb;
|
||||
use Filament\Tables\Columns\Column;
|
||||
|
||||
class MultilineColumn extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.multiline.main';
|
||||
|
||||
protected ?array $fumetto;
|
||||
|
||||
protected ?array $settings;
|
||||
|
||||
public function has3Columns(): ?int
|
||||
{
|
||||
return $this->settings->has_3_columns;
|
||||
}
|
||||
|
||||
public function getFumetto()
|
||||
{
|
||||
return $this->fumetto;
|
||||
}
|
||||
|
||||
public function laodFumetto($event_id)
|
||||
{
|
||||
$systemSettings = app('systemSettings');
|
||||
|
||||
$this->settings = $systemSettings[auth()->user()->multiline_setting_id];
|
||||
|
||||
switch ($this->settings->table) {
|
||||
case 'odds_2ways':
|
||||
$this->fumetto = Odds2way::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_2ways_s1':
|
||||
$this->fumetto = Odds2wayS1::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_3ways':
|
||||
$this->fumetto = Odds3way::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_dc':
|
||||
$this->fumetto = OddsDc::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_dnb':
|
||||
$this->fumetto = OddsDnb::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_ggng':
|
||||
$this->fumetto = OddsGgng::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_handicaps':
|
||||
$this->fumetto = OddsHandicap::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_handicaps_q1':
|
||||
$this->fumetto = OddsHandicapQ1::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_qualify':
|
||||
$this->fumetto = OddsQualify::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_totals':
|
||||
$this->fumetto = OddsTotal::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
case 'odds_totals_q1':
|
||||
$this->fumetto = OddsTotalQ1::with('bookmaker')->where('event_id', $event_id)->get();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
+2
@@ -1990,6 +1990,7 @@
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -2223,6 +2224,7 @@
|
||||
"integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.27.0",
|
||||
"fdir": "^6.5.0",
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
@php
|
||||
$loadData($record, $record->multiline_client);
|
||||
@endphp
|
||||
|
||||
@include('filament.tables.columns.multiline.fumetto')
|
||||
|
||||
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 grid-rows-5 text-xs">
|
||||
|
||||
@foreach ($getMultilines() as $item)
|
||||
@include('filament.tables.columns.multiline.bkm', [
|
||||
'bookmaker_id' => $item->bookmaker_id,
|
||||
'icon' => $item->bookmaker->icon,
|
||||
])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', ['odd' => $item->h3w, 'decimal' => 2])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', ['odd' => $item->d3w, 'decimal' => 2])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', ['odd' => $item->a3w, 'decimal' => 2])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', ['odd' => $item->margin, 'decimal' => 1])
|
||||
@endforeach
|
||||
</div>
|
||||
@@ -0,0 +1,18 @@
|
||||
<div class="grid grid-cols-2 text-xs">
|
||||
<div>TxOdds</div>
|
||||
<div>
|
||||
{{ $record->id }}
|
||||
</div>
|
||||
<div>BetsApi</div>
|
||||
<div>
|
||||
{{ $record->betsapi_id }}
|
||||
</div>
|
||||
<div>Betradar</div>
|
||||
<div>
|
||||
{{ $record->betradar_id }}
|
||||
</div>
|
||||
<div>Bet365</div>
|
||||
<div>
|
||||
{{ $record->bet365_id }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,6 +1,9 @@
|
||||
@php
|
||||
use App\Utilities\BkmIconMap;
|
||||
@endphp
|
||||
<div class="w-12 bg-contain bg-center bg-no-repeat dark:opacity-90" title="{{ $bookmaker_id }}"
|
||||
style="background-image: url('{{ BkmIconMap::get($icon) }}')">
|
||||
</div>
|
||||
|
||||
@if (isset($icon))
|
||||
<div class="w-12 bg-contain bg-center bg-no-repeat dark:opacity-90" title="{{ $bookmaker_id }}"
|
||||
style="background-image: url('{{ BkmIconMap::get($icon) }}')">
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,41 @@
|
||||
<div class="mx-3 my-auto" x-data="{ open: false }">
|
||||
<div x-on:mouseover="open = true" x-on:mouseleave="open = false">
|
||||
<x-filament::icon-button icon="heroicon-o-chat-bubble-left-ellipsis" color="alert gray" />
|
||||
</div>
|
||||
<div x-show="open" x-transition:enter="transition ease-out duration-200"
|
||||
x-transition:enter-start="opacity-0 transform translate-y-2"
|
||||
x-transition:enter-end="opacity-100 transform translate-y-0">
|
||||
<div
|
||||
class="absolute z-10 bg-gray-100 dark:bg-gray-800 p-5 border border-gray-300 dark:border-gray-900 rounded-md">
|
||||
<div class="grid grid-cols-5 grid-rows-5 gap-2">
|
||||
|
||||
@foreach ($getFumetto() as $item)
|
||||
@include('filament.tables.columns.multiline.bkm', [
|
||||
'bookmaker_id' => $item->bookmaker_id,
|
||||
'icon' => $item->bookmaker->icon,
|
||||
])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', [
|
||||
'odd' => $item->h3w,
|
||||
'decimal' => 2,
|
||||
])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', [
|
||||
'odd' => $item->d3w,
|
||||
'decimal' => 2,
|
||||
])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', [
|
||||
'odd' => $item->a3w,
|
||||
'decimal' => 2,
|
||||
])
|
||||
|
||||
@include('filament.tables.columns.multiline.odds', [
|
||||
'odd' => $item->margin,
|
||||
'decimal' => 1,
|
||||
])
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="flex justify-start gap-0 text-xs">
|
||||
<div class="w-12 text-center"></div>
|
||||
<div class="w-8 text-center"></div>
|
||||
@switch(auth()->user()->multiline_setting_id)
|
||||
@case(1)
|
||||
@case(13)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
@foreach ($getSlots() as $item)
|
||||
@include('filament.tables.columns.multiline.bkm', [
|
||||
'icon' => $item->icon,
|
||||
'icon' => $item?->bookmaker->icon,
|
||||
'bookmaker_id' => $item->bookmaker_id,
|
||||
])
|
||||
|
||||
|
||||
Reference in new issue
Block a user