wip player app

This commit is contained in:
salam committed 2026-09-03 16:19:52 +02:00
1 parent f9712cbd25
commit 6b1a68e738
13 files changed
+537 -311

No files matched your search

@@ -1,68 +1,98 @@
@php
use Illuminate\Support\HtmlString;
@endphp
<div class="grid grid-cols-6 gap-10" class="drag-and-drop" x-data="{ adding: false, removing: false }">
<div class="col-span-2 h-full drag-and-drop__container drag-and-drop__container--from">
@foreach ($player as $position => $names)
<div class="text-bold py-2"> {{ ucfirst(strtolower($position)) }}</div>
<div class="grid grid-cols-2 gap-2 cursor-grab drag-and-drop__items"
:class="{ 'drag-and-drop__items--removing': removing }" x-on:drop="removing = false"
x-on:drop.prevent="
const target = event.target.closest('div');
const element = document.getElementById(event.dataTransfer.getData('text/plain'));
target.appendChild(element);
"
x-on:dragover.prevent="removing = true" x-on:dragleave.prevent="removing = false">
@foreach ($names as $ss_player_id => $name)
<div color="gray" id="{{ $ss_player_id }}"
class="border border-gray-200 bg-gray-100 p-1 rounded text-xs cursor-grap drag-and-drop__item"
:class="{ 'drag-and-drop__item--dragging': dragging }"
x-on:dragstart.self="
dragging = true;
event.dataTransfer.effectAllowed='move';
event.dataTransfer.setData('text/plain', event.target.id);
"
x-on:dragend="dragging = false" x-data="{ dragging: false }" draggable="true">
{{ new HtmlString($name) }}
</div>
@endforeach
</div>
@endforeach
</div>
<div class="col-span-3 h-full drag-and-drop__container drag-and-drop__container--to">
<div class="drag-and-drop__items grid grid-cols-5 gap-2 justify-center w-130 bg-size-[100%_100%] p-2 border-5 border-green-600"
style="background-image:url({{ asset('images/soccerfield.png') }});">
@foreach ($positions as $pos)
@if ($pos)
<div class="border-5 border-white/30 h-full aspect-square p-1 m-1 rounded-xl"
:class="{ 'drag-and-drop__items--adding': adding }" x-on:drop="adding = false"
x-on:drop.prevent="
const target = event.target.closest('ul');
const element = document.getElementById(event.dataTransfer.getData('text/plain'));
target.appendChild(element);
"
x-on:dragover.prevent="adding = true" x-on:dragleave.prevent="adding = false">
<div class="text-white/30 font-black text-center text-xl">
{{ $pos }}
</div>
</div>
@else
<div></div>
@endif
@endforeach
{{-- In Tailwind CSS, a value of 24 equals 96 pixels (or 6rem) --}}
<div class="w-full">
<div class="pb-5 flex flex-row justify-between">
<div class="flex flex-row gap-3">
<x-filament::button wire:click="openNewUserModal" color="gray" size="sm" class="w-24">
ATTACK
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="gray" size="sm" class="w-24">
MIDFIELD
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="gray" size="sm" class="w-24">
DEFENCE
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="gray" size="sm" class="w-24">
GOALKEEPER
</x-filament::button>
</div>
<div class="flex flex-row gap-3">
<x-filament::button wire:click="openNewUserModal" color="gray" icon="phosphor-x-circle">
Reset
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="info" icon="phosphor-calculator">
Calculate
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="info" icon="phosphor-copy">
Copy
</x-filament::button>
</div>
</div>
<div class="flex flex-col gap-3">
<x-filament::button wire:click="openNewUserModal" color="gray" icon="phosphor-x-circle">
Reset
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="gray" icon="phosphor-calculator">
Calculate
</x-filament::button>
<x-filament::button wire:click="openNewUserModal" color="gray" icon="phosphor-copy">
Copy
</x-filament::button>
<div class="chessboard grid w-258 h-182 grid-cols-10 grid-rows-7 relative gap-2"
style="background-image:url({{ asset('svg/soccerfield.svg') }});">
@foreach ($grid as $key => $elements)
@if ($key % 2 == 0)
@foreach ($elements as $name)
@if (isset($name['color']))
<x-filament::badge color="{{ $name['color'] }}" id="{{ $name['player_id'] }}"
class="piece size-24 select-none aspect-square">
<div>{{ $name['position'] }}</div>
<div class="font-bold text-wrap">{{ $name['name'] }}</div>
<div class="text-wrap">{{ $name['info'] }}</div>
</x-filament::badge>
@else
<div class="size-24"></div>
@endif
@endforeach
@else
@foreach ($elements as $pos)
@if ($pos)
<div class="size-24 bg-white/30 inset-shadow-sm">
<div class="font-black text-3xl text-center text-white/25 p-3">
{{ $pos }}
</div>
</div>
@else
<div class="size-24"></div>
@endif
@endforeach
@endif
@endforeach
</div>
{{-- <div class="chessboard grid grid-cols-10 w-240 pr-3 gap-0 bg-no-repeat bg-size-[466px_672px] bg-position-[top_left_476px] overflow-hidden"
style="background-image:url({{ asset('svg/soccerfield.svg') }});">
@foreach ($grid as $key => $elements)
@if ($key % 2 == 0)
@foreach ($elements as $name)
@if (isset($name['color']))
<x-filament::badge color="{{ $name['color'] }}" id="{{ $name['player_id'] }}"
class="piece size-22 m-1 z-20 select-none cursor-grab grid grid-cols-1 gap-3 text-xs">
<div>{{ $name['position'] }}</div>
<div class="font-bold text-wrap">{{ $name['name'] }}</div>
<div class="text-wrap">{{ $name['info'] }}</div>
</x-filament::badge>
@else
<div class="size-22 m-1"></div>
@endif
@endforeach
@else
@foreach ($elements as $pos)
@if ($pos)
<div class="size-22 m-1 bg-white/30 rounded">
<div class="font-black text-3xl text-center text-white/25 p-3">
{{ $pos }}
</div>
</div>
@else
<div class="size-22 m-1"></div>
@endif
@endforeach
@endif
@endforeach
</div> --}}
</div>