3
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Playoffs - ' . $torneo->nombre)
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-5" style="background: var(--surface);">
|
||||
<div class="container py-4">
|
||||
<div class="mb-5">
|
||||
<nav aria-label="breadcrumb" class="mb-3">
|
||||
<ol class="breadcrumb mb-0">
|
||||
<li class="breadcrumb-item"><a href="{{ route('noticias.index') }}" class="text-decoration-none text-muted">Media Hub</a></li>
|
||||
<li class="breadcrumb-item active text-primary fw-bold" aria-current="page">{{ $torneo->nombre }}</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<span class="text-primary fw-bold text-uppercase tracking-widest d-block mb-2">Fase Eliminatoria</span>
|
||||
<h1 class="display-3 fw-bold mb-0" style="line-height: 1;">Brackets de Playoffs<span class="text-primary">.</span></h1>
|
||||
<p class="fs-4 text-muted mt-2">{{ $torneo->nombre }}</p>
|
||||
|
||||
<!-- Navigation Tabs -->
|
||||
<div class="d-flex border-bottom mb-4 gap-4 overflow-x-auto">
|
||||
<a href="{{ route('torneos.standings', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.standings') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Posiciones
|
||||
</a>
|
||||
<a href="{{ route('torneos.topScorers', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.topScorers') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Goleadores
|
||||
</a>
|
||||
<a href="{{ route('torneos.playoffs', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.playoffs') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Playoffs
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@if(count($grupos) > 0)
|
||||
<div class="d-flex flex-wrap gap-2 mt-4">
|
||||
@foreach($grupos as $g)
|
||||
<a href="{{ route('torneos.playoffs', [$torneo->id, 'grupo' => $g]) }}"
|
||||
class="btn {{ $selectedGroup == $g ? 'btn-primary' : 'btn-outline-primary' }} btn-sm text-uppercase fw-bold px-4">
|
||||
{{ $g }}
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if($bracket['cuartos']->isEmpty() && $bracket['semis']->isEmpty() && $bracket['final']->isEmpty())
|
||||
<div class="text-center py-5 bg-white border rounded shadow-sm">
|
||||
<i class="bi bi-diagram-3 text-muted display-1 d-block mb-3"></i>
|
||||
<h3 class="fw-bold">Aún no hay llaves generadas</h3>
|
||||
<p class="text-muted">Los playoffs se habilitarán al finalizar la fase regular.</p>
|
||||
</div>
|
||||
@else
|
||||
<div class="bracket-container overflow-auto py-4">
|
||||
<div class="d-flex gap-5 align-items-center justify-content-center" style="min-width: 800px;">
|
||||
|
||||
<!-- CUARTOS -->
|
||||
<div class="bracket-column d-flex flex-column gap-4 justify-content-around h-100">
|
||||
<h5 class="text-center text-uppercase small fw-bold text-muted mb-3 border-bottom pb-2">Cuartos de Final</h5>
|
||||
@forelse($bracket['cuartos'] as $nro => $serie)
|
||||
<div class="match-card bg-white shadow-sm border p-3" style="border-radius: var(--radius-sm);" style="width: 250px;">
|
||||
<div class="d-flex justify-content-between align-items-center mb-1 text-muted x-small text-uppercase fw-bold">
|
||||
<span>Serie</span>
|
||||
<span>{{ $serie['wins_local'] }} - {{ $serie['wins_visitante'] }}</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center mb-2 {{ $serie['wins_local'] > $serie['wins_visitante'] ? 'fw-bold border-start border-primary border-3 ps-2' : '' }}">
|
||||
<div class="d-flex align-items-center text-truncate">
|
||||
@if($serie['equipo_local'])
|
||||
<img src="{{ $serie['equipo_local']->club->imagen ? asset($serie['equipo_local']->club->imagen) : asset('logo.png') }}"
|
||||
class="me-2 rounded-circle border" style="width: 20px; height: 20px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="text-truncate">{{ $serie['equipo_local']->club->nombre }}</span>
|
||||
@else
|
||||
<span class="text-muted italic">Por definir</span>
|
||||
@endif
|
||||
</div>
|
||||
<span class="badge bg-light text-dark">{{ $serie['wins_local'] }}</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center {{ $serie['wins_visitante'] > $serie['wins_local'] ? 'fw-bold border-start border-primary border-3 ps-2' : '' }}">
|
||||
<div class="d-flex align-items-center text-truncate">
|
||||
@if($serie['equipo_visitante'])
|
||||
<img src="{{ $serie['equipo_visitante']->club->imagen ? asset($serie['equipo_visitante']->club->imagen) : asset('logo.png') }}"
|
||||
class="me-2 rounded-circle border" style="width: 20px; height: 20px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="text-truncate">{{ $serie['equipo_visitante']->club->nombre }}</span>
|
||||
@else
|
||||
<span class="text-muted italic">Por definir</span>
|
||||
@endif
|
||||
</div>
|
||||
<span class="badge bg-light text-dark">{{ $serie['wins_visitante'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@empty
|
||||
<div class="text-muted italic py-4">Pendiente</div>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
<div class="bracket-connector d-none d-lg-block"><i class="bi bi-chevron-right text-muted fs-4"></i></div>
|
||||
|
||||
<!-- SEMIS -->
|
||||
<div class="bracket-column d-flex flex-column gap-5 justify-content-around h-100">
|
||||
<h5 class="text-center text-uppercase small fw-bold text-muted mb-3 border-bottom pb-2">Semifinales</h5>
|
||||
@for($i = 1; $i <= 2; $i++)
|
||||
@php $serie = $bracket['semis']->get($i); @endphp
|
||||
<div class="match-card {{ $serie ? 'bg-white shadow-sm border' : 'bg-light border-dashed' }} p-3" style="border-radius: var(--radius-sm);" style="width: 250px; min-height: 80px;">
|
||||
@if($serie)
|
||||
<div class="d-flex justify-content-between align-items-center mb-1 text-muted x-small text-uppercase">
|
||||
<span>Serie</span>
|
||||
<span>{{ $serie['wins_local'] }} - {{ $serie['wins_visitante'] }}</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center mb-2 {{ $serie['wins_local'] > $serie['wins_visitante'] ? 'fw-bold text-primary' : '' }}">
|
||||
<div class="d-flex align-items-center text-truncate">
|
||||
@if($serie['equipo_local'])
|
||||
<img src="{{ $serie['equipo_local']->club->imagen ? asset($serie['equipo_local']->club->imagen) : asset('logo.png') }}"
|
||||
class="me-2 rounded-circle border" style="width: 20px; height: 20px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="text-truncate">{{ $serie['equipo_local']->club->nombre }}</span>
|
||||
@else
|
||||
<span class="text-muted fst-italic">TBD</span>
|
||||
@endif
|
||||
</div>
|
||||
<span class="badge {{ $serie['wins_local'] > $serie['wins_visitante'] ? 'bg-primary' : 'bg-light text-dark' }}">{{ $serie['wins_local'] }}</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center {{ $serie['wins_visitante'] > $serie['wins_local'] ? 'fw-bold text-primary' : '' }}">
|
||||
<div class="d-flex align-items-center text-truncate">
|
||||
@if($serie['equipo_visitante'])
|
||||
<img src="{{ $serie['equipo_visitante']->club->imagen ? asset($serie['equipo_visitante']->club->imagen) : asset('logo.png') }}"
|
||||
class="me-2 rounded-circle border" style="width: 20px; height: 20px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="text-truncate">{{ $serie['equipo_visitante']->club->nombre }}</span>
|
||||
@else
|
||||
<span class="text-muted fst-italic">TBD</span>
|
||||
@endif
|
||||
</div>
|
||||
<span class="badge {{ $serie['wins_visitante'] > $serie['wins_local'] ? 'bg-primary' : 'bg-light text-dark' }}">{{ $serie['wins_visitante'] }}</span>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-center text-muted py-3 small">TBD</div>
|
||||
@endif
|
||||
</div>
|
||||
@endfor
|
||||
</div>
|
||||
|
||||
<div class="bracket-connector d-none d-lg-block"><i class="bi bi-chevron-right text-muted fs-4"></i></div>
|
||||
|
||||
<!-- FINAL -->
|
||||
<div class="bracket-column d-flex flex-column justify-content-center h-100">
|
||||
<h5 class="text-center text-uppercase small fw-bold text-primary mb-3 border-bottom border-primary pb-2">Gran Final</h5>
|
||||
@php $serie = $bracket['final']->get(1); @endphp
|
||||
<div class="match-card {{ $serie ? 'bg-primary text-white shadow-md' : 'bg-light border-dashed' }} p-4" style="border-radius: var(--radius-sm);" style="width: 310px;">
|
||||
@if($serie)
|
||||
<div class="text-center mb-3 text-uppercase small border-bottom border-white border-opacity-25 pb-1">
|
||||
Serie: {{ $serie['wins_local'] }} - {{ $serie['wins_visitante'] }}
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center mb-3 {{ $serie['wins_local'] > $serie['wins_visitante'] ? 'fs-4 fw-bold' : '' }}">
|
||||
<div class="d-flex align-items-center text-truncate">
|
||||
@if($serie['equipo_local'])
|
||||
<img src="{{ $serie['equipo_local']->club->imagen ? asset($serie['equipo_local']->club->imagen) : asset('logo.png') }}"
|
||||
class="me-2 rounded-circle border border-white border-opacity-50" style="width: 32px; height: 32px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="text-truncate">{{ $serie['equipo_local']->club->nombre }}</span>
|
||||
@else
|
||||
<span>TBD</span>
|
||||
@endif
|
||||
</div>
|
||||
<span class="badge bg-white text-primary fs-5">{{ $serie['wins_local'] }}</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center {{ $serie['wins_visitante'] > $serie['wins_local'] ? 'fs-4 fw-bold' : '' }}">
|
||||
<div class="d-flex align-items-center text-truncate">
|
||||
@if($serie['equipo_visitante'])
|
||||
<img src="{{ $serie['equipo_visitante']->club->imagen ? asset($serie['equipo_visitante']->club->imagen) : asset('logo.png') }}"
|
||||
class="me-2 rounded-circle border border-white border-opacity-50" style="width: 32px; height: 32px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="text-truncate">{{ $serie['equipo_visitante']->club->nombre }}</span>
|
||||
@else
|
||||
<span>TBD</span>
|
||||
@endif
|
||||
</div>
|
||||
<span class="badge bg-white text-primary fs-5">{{ $serie['wins_visitante'] }}</span>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-center py-4 text-muted fst-italic">Por definir</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.bracket-container {
|
||||
mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
|
||||
}
|
||||
.match-card {
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
.match-card:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
.border-dashed {
|
||||
border: 2px dashed var(--outline-variant);
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
@@ -0,0 +1,116 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Goleadores - ' . $torneo->nombre)
|
||||
|
||||
@section('content')
|
||||
<div class="news-container py-5">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<span class="badge bg-primary px-3 py-2 text-uppercase tracking-widest mb-2">Estadísticas Individuales</span>
|
||||
<h1 class="display-4 fw-bold text-uppercase italic tracking-tighter">TABLA DE <span class="text-primary">GOLEADORES</span></h1>
|
||||
<p class="lead text-muted">{{ $torneo->nombre }}</p>
|
||||
|
||||
<!-- Navigation Tabs -->
|
||||
<div class="d-flex border-bottom mb-4 gap-4 overflow-x-auto justify-content-center">
|
||||
<a href="{{ route('torneos.standings', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.standings') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Posiciones
|
||||
</a>
|
||||
<a href="{{ route('torneos.topScorers', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.topScorers') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Goleadores
|
||||
</a>
|
||||
<a href="{{ route('torneos.playoffs', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.playoffs') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Playoffs
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@if(count($grupos) > 0)
|
||||
<div class="d-flex flex-wrap gap-2 mt-4 justify-content-center">
|
||||
<a href="{{ route('torneos.topScorers', $torneo->id) }}"
|
||||
class="btn {{ !$selectedGroup ? 'btn-primary' : 'btn-outline-primary' }} btn-sm text-uppercase fw-bold rounded-pill px-4">
|
||||
Todos los Grupos
|
||||
</a>
|
||||
@foreach($grupos as $g)
|
||||
<a href="{{ route('torneos.topScorers', [$torneo->id, 'grupo' => $g]) }}"
|
||||
class="btn {{ $selectedGroup == $g ? 'btn-primary' : 'btn-outline-primary' }} btn-sm text-uppercase fw-bold rounded-pill px-4">
|
||||
{{ $g }}
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<div class="kinetic-card overflow-hidden">
|
||||
<div class="card-body p-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover mb-0 align-middle">
|
||||
<thead class="bg-dark text-white text-uppercase small tracking-widest">
|
||||
<tr>
|
||||
<th class="ps-4 py-3" width="60">#</th>
|
||||
<th class="py-3">Jugador</th>
|
||||
<th class="py-3">Club</th>
|
||||
<th class="py-3 text-center" width="80">PJ</th>
|
||||
<th class="py-3 text-center" width="100">PTS</th>
|
||||
<th class="pe-4 py-3 text-center" width="100">PROM</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($scorers as $index => $s)
|
||||
<tr class="{{ $index < 3 ? 'bg-light fw-bold' : '' }}">
|
||||
<td class="ps-4 py-3">
|
||||
@if($index == 0) <span class="fs-4">🥇</span>
|
||||
@elseif($index == 1) <span class="fs-4">🥈</span>
|
||||
@elseif($index == 2) <span class="fs-4">🥉</span>
|
||||
@else <span class="fw-bold text-muted">#{{ $index + 1 }}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="py-3">
|
||||
<div class="text-uppercase tracking-tighter">{{ $s->jugador->apellido }}, {{ $s->jugador->nombre }}</div>
|
||||
</td>
|
||||
<td class="py-3">
|
||||
<span class="small text-muted text-uppercase">{{ $s->jugador->clubActual->nombre ?? 'N/A' }}</span>
|
||||
</td>
|
||||
<td class="py-3 text-center fw-bold">{{ $s->partidos_jugados }}</td>
|
||||
<td class="py-3 text-center">
|
||||
<span class="badge {{ $index < 3 ? 'bg-primary' : 'bg-dark' }} fs-6 px-3">{{ $s->total_puntos }}</span>
|
||||
</td>
|
||||
<td class="pe-4 py-3 text-center text-muted">
|
||||
{{ number_format($s->total_puntos / max(1, $s->partidos_jugados), 1) }}
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="6" class="p-5 text-center text-muted italic">
|
||||
No hay estadísticas registradas para este torneo todavía.
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center mt-4 small text-muted text-uppercase tracking-widest italic">
|
||||
Actualizado el {{ date('d/m/Y H:i') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.news-container {
|
||||
background-color: var(--surface);
|
||||
min-height: 100vh;
|
||||
}
|
||||
.table-hover tbody tr:hover {
|
||||
background-color: rgba(0,0,0,0.02);
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
@@ -0,0 +1,166 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Tabla de Posiciones - ' . $torneo->nombre)
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-5" style="background: var(--surface);">
|
||||
<div class="container py-4">
|
||||
<div class="mb-5">
|
||||
<nav aria-label="breadcrumb" class="mb-3">
|
||||
<ol class="breadcrumb mb-0">
|
||||
<li class="breadcrumb-item"><a href="{{ route('noticias.index') }}" class="text-decoration-none text-muted">Media Hub</a></li>
|
||||
<li class="breadcrumb-item active text-primary fw-bold" aria-current="page">{{ $torneo->nombre }}</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<span class="text-primary fw-bold text-uppercase tracking-widest d-block mb-2">Competición Oficial</span>
|
||||
<h1 class="display-3 fw-bold mb-0" style="line-height: 1;">Tabla de Posiciones<span class="text-primary">.</span></h1>
|
||||
<p class="fs-4 text-muted mt-2">{{ $torneo->nombre }} ({{ $torneo->fecha_inicio->format('Y') }})</p>
|
||||
|
||||
<!-- Navigation Tabs -->
|
||||
<div class="d-flex border-bottom mb-4 gap-4 overflow-x-auto">
|
||||
<a href="{{ route('torneos.standings', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.standings') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Posiciones
|
||||
</a>
|
||||
<a href="{{ route('torneos.topScorers', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.topScorers') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Goleadores
|
||||
</a>
|
||||
<a href="{{ route('torneos.playoffs', $torneo->id) }}"
|
||||
class="pb-3 text-uppercase fw-bold text-decoration-none {{ Request::routeIs('torneos.playoffs') ? 'text-primary border-bottom border-primary border-3' : 'text-muted' }}">
|
||||
Playoffs
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@if(count($grupos) > 0)
|
||||
<div class="d-flex flex-wrap gap-2 mt-4">
|
||||
<a href="{{ route('torneos.standings', $torneo->id) }}"
|
||||
class="btn {{ !$selectedGroup ? 'btn-primary' : 'btn-outline-primary' }} btn-sm text-uppercase fw-bold px-4">
|
||||
Todos los Grupos
|
||||
</a>
|
||||
@foreach($grupos as $g)
|
||||
<a href="{{ route('torneos.standings', [$torneo->id, 'grupo' => $g]) }}"
|
||||
class="btn {{ $selectedGroup == $g ? 'btn-primary' : 'btn-outline-primary' }} btn-sm text-uppercase fw-bold px-4">
|
||||
{{ $g }}
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="bg-white shadow-xl overflow-hidden" style="border-top: 10px solid var(--primary); border: 1px solid var(--outline-variant);">
|
||||
<div class="table-responsive">
|
||||
@foreach($stats as $groupName => $teams)
|
||||
<div class="group-section mb-5">
|
||||
<h2 class="h4 fw-bold text-uppercase bg-light p-3 border-start border-primary border-4 mb-0">
|
||||
{{ $groupName }}
|
||||
</h2>
|
||||
<table class="table table-hover mb-0 kinetic-standings-table">
|
||||
<thead class="bg-dark text-white text-uppercase tracking-widest small">
|
||||
<tr>
|
||||
<th class="px-4 py-3">#</th>
|
||||
<th class="px-4 py-3">Equipo</th>
|
||||
<th class="px-4 py-3 text-center">PJ</th>
|
||||
<th class="px-4 py-3 text-center">PG</th>
|
||||
<th class="px-4 py-3 text-center">PP</th>
|
||||
<th class="px-4 py-3 text-center">TF</th>
|
||||
<th class="px-4 py-3 text-center">TC</th>
|
||||
<th class="px-4 py-3 text-center">DIF</th>
|
||||
<th class="px-4 py-3 text-center bg-primary">PTS</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="fs-5">
|
||||
@foreach($teams as $index => $s)
|
||||
<tr>
|
||||
<td class="px-4 py-4 fw-bold text-muted">{{ $index + 1 }}</td>
|
||||
<td class="px-4 py-4">
|
||||
<div class="d-flex align-items-center">
|
||||
@if(session('user_logged_in'))
|
||||
@php $isFollowing = in_array($s['id'], $followedTeamIds); @endphp
|
||||
<button class="btn btn-sm p-0 me-2 follow-star-btn"
|
||||
data-equipo-id="{{ $s['id'] }}"
|
||||
title="{{ $isFollowing ? 'Dejar de seguir' : 'Seguir equipo' }}">
|
||||
<i class="bi {{ $isFollowing ? 'bi-star-fill text-warning' : 'bi-star text-muted' }}" style="font-size: 1.2rem;"></i>
|
||||
</button>
|
||||
@endif
|
||||
<a href="{{ route('equipos.show', $s['id']) }}" class="text-decoration-none hover-primary d-flex align-items-center">
|
||||
<img src="{{ $s['logo'] ? asset($s['logo']) : asset('logo.png') }}"
|
||||
class="me-3 rounded-circle border shadow-sm"
|
||||
style="width: 32px; height: 32px; object-fit: cover;"
|
||||
onerror="this.onerror=null;this.src='{{ asset('logo.png') }}';">
|
||||
<span class="fw-bold font-header text-dark">{{ $s['nombre'] }}</span>
|
||||
</a>
|
||||
{{-- Only show base category if different from group name --}}
|
||||
@if($s['categoria'] != $groupName)
|
||||
<span class="ms-3 badge bg-light text-muted border small">{{ $s['categoria'] }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-4 py-4 text-center">{{ $s['pj'] }}</td>
|
||||
<td class="px-4 py-4 text-center text-success fw-bold">{{ $s['pg'] }}</td>
|
||||
<td class="px-4 py-4 text-center text-danger fw-bold">{{ $s['pp'] }}</td>
|
||||
<td class="px-4 py-4 text-center text-muted">{{ $s['tf'] }}</td>
|
||||
<td class="px-4 py-4 text-center text-muted">{{ $s['tc'] }}</td>
|
||||
<td class="px-4 py-4 text-center fw-bold {{ ($s['tf'] - $s['tc']) >= 0 ? 'text-dark' : 'text-danger' }}">
|
||||
{{ ($s['tf'] - $s['tc']) > 0 ? '+' : '' }}{{ $s['tf'] - $s['tc'] }}
|
||||
</td>
|
||||
<td class="px-4 py-4 text-center fw-bold bg-primary bg-opacity-10 text-primary" style="font-size: 1.4rem;">
|
||||
{{ $s['pts'] }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@if(empty($stats))
|
||||
<div class="text-center py-5">
|
||||
<i class="bi bi-info-circle text-muted display-4 d-block mb-3"></i>
|
||||
<p class="text-muted fs-4">Aún no se han registrado resultados en este torneo.</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="mt-4 p-4 bg-white border shadow-sm" style="border-radius: var(--radius);">
|
||||
<h5 class="fw-bold mb-3 small text-uppercase tracking-widest text-muted">Sistema de Puntuación</h5>
|
||||
<div class="row text-center g-4">
|
||||
<div class="col-md-4">
|
||||
<div class="p-3 border" style="border-radius: var(--radius-sm);">
|
||||
<span class="d-block fs-3 fw-bold text-primary">2 PTS</span>
|
||||
<span class="text-muted small">Victoria</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="p-3 border" style="border-radius: var(--radius-sm);">
|
||||
<span class="d-block fs-3 fw-bold text-dark">1 PT</span>
|
||||
<span class="text-muted small">Derrota</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="p-3 border" style="border-radius: var(--radius-sm);">
|
||||
<span class="d-block fs-3 fw-bold text-danger">0 PTS</span>
|
||||
<span class="text-muted small">W.O. / Incomparecencia</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.kinetic-standings-table tbody tr {
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
.kinetic-standings-table tbody tr:hover {
|
||||
background-color: var(--primary-container) !important;
|
||||
}
|
||||
.font-header {
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
.hover-primary:hover span {
|
||||
color: var(--primary) !important;
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user