This commit is contained in:
salam committed 2025-12-27 07:38:53 +01:00
1 parent e04b12726d
commit 1c0738ec84
9 files changed
+154 -41

No files matched your search

+1 -9
View File
@@ -8,7 +8,6 @@ use Filament\Actions\Concerns\InteractsWithActions;
use Filament\Actions\Contracts\HasActions;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Table;
@@ -25,14 +24,7 @@ class MapperLeft extends Component implements HasActions, HasSchemas, HasTable
return $table
->query(Event::query())
->columns([
TextColumn::make('country.name')
->searchable()
->wrap()
->color('gray')
->label('Event')
->icon(fn ($record) => $record->country->icon)
->description(fn ($record) => $record->competition_group->name),
MapperLeftColumn::make('left')->label('NUH Events'),
MapperLeftColumn::make('left')->label('NUH-ODDS'),
])
->filters([
// ...
+1 -9
View File
@@ -8,7 +8,6 @@ use Filament\Actions\Concerns\InteractsWithActions;
use Filament\Actions\Contracts\HasActions;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Table;
@@ -25,14 +24,7 @@ class MapperRight extends Component implements HasActions, HasSchemas, HasTable
return $table
->query(Mapper::query())
->columns([
MapperRightColumn::make('right'),
// TextColumn::make('country_betsapi.name')
// ->searchable()
// ->wrap()
// ->color('gray')
// ->label('Event')
// ->icon(fn ($record) => $record->country_betsapi->icon)
// ->description(fn ($record) => $record->group),
MapperRightColumn::make('right')->label('BETSAPI'),
])
->filters([
// ...
+57
View File
@@ -0,0 +1,57 @@
<?php
return [
/*
|-----------------------------------------------------------------
| Default Prefix
|-----------------------------------------------------------------
|
| This config option allows you to define a default prefix for
| your icons. The dash separator will be applied automatically
| to every icon name. It's required and needs to be unique.
|
*/
'prefix' => 'flag',
/*
|-----------------------------------------------------------------
| Fallback Icon
|-----------------------------------------------------------------
|
| This config option allows you to define a fallback
| icon when an icon in this set cannot be found.
|
*/
'fallback' => 'country-xx',
/*
|-----------------------------------------------------------------
| Default Set Classes
|-----------------------------------------------------------------
|
| This config option allows you to define some classes which
| will be applied by default to all icons within this set.
|
*/
'class' => '',
/*
|-----------------------------------------------------------------
| Default Set Attributes
|-----------------------------------------------------------------
|
| This config option allows you to define some attributes which
| will be applied by default to all icons within this set.
|
*/
'attributes' => [
// 'width' => 50,
// 'height' => 50,
],
];
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="590" height="545" viewBox="0 0 590 545" id="svg3996" version="1.1">
<svg viewBox="0 0 590 545" id="svg3996" version="1.1">
<defs id="defs3998">
<inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective4004" />
<inkscape:perspective id="perspective3885" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d" />

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

@@ -1,8 +1,40 @@
<div x-data="{}" x-sortable.x-on:end="console.log('Dropped!', $event.detail)" class="w-full">
<div x-sortable-handle x-sortable-item class="bg-white p-4 cursor-grab flex flex-row flex justify-between">
<div class="basis-9/20 text-right">{{ $record->home->name }}</div>
<div class="basis-1/20 text-center">-</div>
<div class="basis-9/20">{{ $record->away->name }}</div>
<div class="basis-1/20"> <x-filament::icon-button icon="heroicon-o-arrows-pointing-out" /></div>
<li class="bg-white w-full h-full overflow-hidden p-2 cursor-grab flex space-x-10 drag-and-drop__item"
id={{ $record->id }}
x-on:dragstart.self="
dragging = true;
event.dataTransfer.effectAllowed = 'move';
event.dataTransfer.setData('text/plain', event.target.id);
"
x-on:drop.prevent="
const id = event.dataTransfer.getData('text/plain');
const target = event.target.closest('ul');
const element = document.getElementById(id);
target.appendChild(element);
"
draggable="true">
<div class="w-6 flex-none mx-auto my-auto">
@if ($record->country->iso2)
<x-icon name="flag-country-{{ $record->country->iso2 }}" class="h5 w-5" />
@else
<x-icon name="{{ $record->country->icon }}" class="h5 w-5" />
@endif
</div>
</div>
<div class="flex-1 flex flex-col justify-center space-y-1">
<div class="flex justify-center text-primary-500">{{ $record->starttime }}</div>
<div class="flex justify-center space-x-4">
<div class="text-right font-bold">{{ $record->home->name }}</div>
<div class="w-6 text-center">-</div>
<div class="text-left font-bold">{{ $record->away->name }}</div>
</div>
<div class="flex justify-center space-x-4">
<div>{{ $record->country?->name }}</div>
<div>{{ $record->competition_group->name }}</div>
</div>
</div>
<div class="w-6 flex-none my-auto">
<x-filament::icon-button icon="heroicon-o-arrows-pointing-out" />
</div>
</li>
@@ -1,12 +1,42 @@
<div x-data="{}" x-sortable.x-on:end="console.log('Dropped!', $event.detail)" class="w-full">
<div x-sortable-handle x-sortable-item class="bg-white p-2 cursor-grab grid grid-cols-10 grid-rows-2 gap-1">
<div class="row-span-2 text-left"> <x-filament::icon-button icon="heroicon-o-arrows-pointing-out"
class="my-auto" /></div>
<div class="col-span-4 text-right">{{ $record->home }}</div>
<div class="text-center">-</div>
<div class="col-span-4">{{ $record->away }}</div>
<div><x-flag-country-at class="h5 w-5" /></div>
<div class="col-span-8">{{ $record->country_betsapi?->name }}
{{ $record->group }}</div>
<li class="w-full h-full overflow-hidden p-2 cursor-grab flex space-x-10 drag-and-drop__item" id={{ $record->event_id }}
x-on:dragstart.self="
dragging = true;
event.dataTransfer.effectAllowed = 'move';
event.dataTransfer.setData('text/plain', event.target.id);
"
x-on:drop.prevent="
const id = event.dataTransfer.getData('text/plain');
const target = event.target.closest('ul');
const element = document.getElementById(id);
target.appendChild(element);
"
draggable="true">
<div class="w-6 flex-none my-auto">
<x-filament::icon-button icon="heroicon-o-arrows-pointing-out" />
</div>
</div>
<div class="flex-1 flex flex-col justify-center space-y-1">
<div class="flex justify-center text-primary-500">
{{ $record->starttime }}
</div>
<div class="flex justify-center space-x-4">
<div class="text-right font-bold">{{ $record->home }}</div>
<div class="w-6 text-center">-</div>
<div class="text-left font-bold">{{ $record->away }}</div>
</div>
<div class="flex justify-center space-x-4">
<div>{{ $record->country_betsapi?->name }}</div>
<div>{{ $record->group }}</div>
</div>
</div>
<div class="w-6 flex-none mx-auto my-auto">
@if ($record->group_cc)
<x-icon name="flag-country-{{ $record->group_cc }}" class="h5 w-5" />
@endif
</div>
</li>
@@ -1,3 +1,10 @@
<div>
<ul class="drag-and-drop__items" :class="{ 'drag-and-drop__items--removing': removing }" x-on:drop="removing = false"
x-on:drop.prevent="
const id = event.dataTransfer.getData('text/plain');
const target = event.target.closest('ul');
const element = document.getElementById(id);
alert(element)
"
x-on:dragover.prevent="removing = true" x-on:dragleave.prevent="removing = false">
{{ $this->table }}
</div>
</ul>
@@ -1,3 +1,6 @@
<div>
<div class="text-xs drag-and-drop-right" x-data>
<div class="drag-and-drop-right__items" x-on:drop="alert('right')" x-on:dragover.prevent="adding = true"
x-on:dragleave.prevent="adding = false">
{{ $this->table }}
</div>
</div>
@@ -23,7 +23,7 @@
{{-- Modal content --}}
<div class="grid grid-cols-2 gap-4">
<div class="grid grid-cols-2 gap-4 drag-and-drop text-sm" x-data="{ adding: false, removing: false }">
<div>
@livewire('mapper-left')
</div>