{% extends 'base_frontend_new.html.twig' %}
{% block stylesheets %}
<link href="{{ asset('css/frontend/ranking.css?v=1.48')}}" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" type="text/css" href="{{ asset('css/frontend/tarjetas_new.css?v=2.04') }}"/>
{% endblock %}
{% block title %}{{ 'ranking.title'|trans({}, 'FrontendBundle') }}{% endblock %}
{% block container %}
{% set codeClubOrCliente = '' %}
{% if ranking.cliente is defined and ranking.cliente is not null %}
{% set codeClubOrCliente = ranking.cliente.nombreCorto|slice(0, 4) %}
{% elseif ranking.club is defined and ranking.club is not null %}
{% set codeClubOrCliente = ranking.club.id %}
{% endif %}
{% set makeRankingVisible = ranking.activo or (is_granted('ROLE_ADMIN') or is_granted('ROLE_FEDE') or is_granted('ROLE_CLUB')) %}
<div class="ui mobile hidden secondary center aligned segment fondoBannerRanking ranking-{{ codeClubOrCliente }}" >
<h1 class="headerRanking">
{{ ranking.nombre }}
</h1>
{# <div class="ui white icon button abreModal calendario" data-tooltip="{{ 'ranking.calendar'|trans({}, 'FrontendBundle') }}" data-inverted="">
<i class="calendar alternate outline icon"></i>
</div>
<div class="ui white icon button abreModal documentos" data-tooltip="{{ 'ranking.documents'|trans({}, 'FrontendBundle') }}" data-inverted="">
<i class="file alternate outline icon"></i>
</div> #}
{% if makeRankingVisible %}
<div class="a-container">
<div class="abreModal calendario">Calendario</div> | {% if ranking.normativa %}<a target="_blank" href="{{ asset("uploads/ranking/" ~ ranking.normativa.normativa) }}">Normativa</a>{% endif %}{#<div class="abreModal documentos">Documentos</div>#}
</div>
{% endif %}
<div class="update-container">
Última actualización: {{ ranking.generatedAt|date('d-m-Y H:i:s') }}
</div>
{% if makeRankingVisible %}
{% include 'frontend/Ranking/toggle-details-columns.html.twig' %}
{% endif %}
</div>
{% if makeRankingVisible %}
<div class="ui mobile only headerRanking">
<div class="moblie-fondo ui secondary center aligned fondoBannerRanking ranking-{{ codeClubOrCliente }}"></div>
<h1 class="headerRanking">
{{ ranking.nombre }}
</h1>
Última actualización: {{ ranking.generatedAt|date('d-m-Y H:i') }}
<br>
<div class="ui blue icon labeled button abreModal calendario">{# no añadir clases detras del ultimo elemento ya que es usado para abrir el modal por equivalencia #}
<i class="calendar alternate outline icon"></i>Torneos
</div>
{# <div class="ui blue icon labeled button abreModal documentos" data-tooltip="{{ 'ranking.documents'|trans({}, 'FrontendBundle') }}" data-inverted="">
<i class="file alternate outline icon"></i>Documentos
</div> #}
{% if ranking.normativa %}
<a target="_blank" href="{{ asset("uploads/ranking/" ~ ranking.normativa.normativa) }}" class="ui blue icon labeled button normativa">
<i class="pdf file icon"></i>Normativa
</a>
{% endif %}
<br><br>
{% if not ranking.activo %}
<div class="only-login-visible">
Este ranking se encuentra desactivado de cara al público, solo los usuarios de configuración de Nextcaddy pueden visualizarlo
</div>
{% endif %}
{# <div class="ui icon labeled button" id="vistaAmpliada" data-status="0">#}{# no añadir clases detras del ultimo elemento ya que es usado para abrir el modal por equivalencia #}
{# <i class="eye icon"></i>Resultados torneos#}
{# </div>#}
{% include 'frontend/Ranking/toggle-details-columns.html.twig' %}
</div>
<div class="ui divider hidden"></div>
{% if ranking.observations %}
<div id="show-observations-btn">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="currentColor" d="M30.94 15.66A16.69 16.69 0 0 0 16 5A16.69 16.69 0 0 0 1.06 15.66a1 1 0 0 0 0 .68A16.69 16.69 0 0 0 16 27a16.69 16.69 0 0 0 14.94-10.66a1 1 0 0 0 0-.68M16 25c-5.3 0-10.9-3.93-12.93-9C5.1 10.93 10.7 7 16 7s10.9 3.93 12.93 9C26.9 21.07 21.3 25 16 25"/><path fill="currentColor" d="M16 10a6 6 0 1 0 6 6a6 6 0 0 0-6-6m0 10a4 4 0 1 1 4-4a4 4 0 0 1-4 4"/></svg>
Mostrar observaciones
</div>
<div id="observations-segment">
<div id="observations-hide-btn" data-content="Ocultar observaciones">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="currentColor" d="m5.24 22.51l1.43-1.42A14.06 14.06 0 0 1 3.07 16C5.1 10.93 10.7 7 16 7a12.4 12.4 0 0 1 4 .72l1.55-1.56A14.7 14.7 0 0 0 16 5A16.69 16.69 0 0 0 1.06 15.66a1 1 0 0 0 0 .68a16 16 0 0 0 4.18 6.17"/><path fill="currentColor" d="M12 15.73a4 4 0 0 1 3.7-3.7l1.81-1.82a6 6 0 0 0-7.33 7.33zm18.94-.07a16.4 16.4 0 0 0-5.74-7.44L30 3.41L28.59 2L2 28.59L3.41 30l5.1-5.1A15.3 15.3 0 0 0 16 27a16.69 16.69 0 0 0 14.94-10.66a1 1 0 0 0 0-.68M20 16a4 4 0 0 1-6 3.44L19.44 14a4 4 0 0 1 .56 2m-4 9a13.05 13.05 0 0 1-6-1.58l2.54-2.54a6 6 0 0 0 8.35-8.35l2.87-2.87A14.54 14.54 0 0 1 28.93 16C26.9 21.07 21.3 25 16 25"/></svg>
</div>
{{ ranking.observations|nl2br }}
</div>
{% endif %}
{% if not ranking.activo %}
<div class="only-login-visible ui mobile hidden">
Este ranking se encuentra desactivado de cara al público, solo los usuarios de configuración de Nextcaddy pueden visualizarlo
</div>
{% endif %}
<div class="tableRanking table-ranking-container hide-points-columns ranking-{{ codeClubOrCliente }}">
{% include 'frontend/Ranking/tabla_ranking.html.twig' with {'puntos': puntos, 'ranking': ranking, 'jugadores': jugadores, 'penalidad': penalidad, 'bonus': bonus, 'isMedal': isMedal} %}
</div>
<div class="ui divider hidden"></div>
{# <div class="ui blue icon button mostrarOcultos" data-position="right center" data-tooltip="{{ 'ranking.show'|trans({}, 'FrontendBundle') }}" data-inverted="">
<i class="eye icon"></i>
</div> #}
<div class="ui large modal calendario">
<i class="close icon"></i>
<div class="header">
{{ 'ranking.calendar'|trans({}, 'FrontendBundle') }}
</div>
<div class="content">
<table class="ui large stackable padded striped celled table" id="calendarioTable">
<tr>
<th>{{ 'comite.fecha'|trans({}, 'FrontendBundle') }}</th>
<th>{{ 'competicion.nombre'|trans({}, 'FrontendBundle') }}</th>
<th>{{ 'club.club'|trans({}, 'FrontendBundle') }}</th>
</tr>
{% for cranking in ranking.competiciones %}
<tr>
<td>{{ cranking.date|date("d-m-Y") }}</td>
<td>
{% if cranking.competicion is not null %}
<a href="{{ path('_tournament', {'id': cranking.competicion.id}) }}" target="_blank">
{{ cranking.name }}
</a>
{% else %}
{{ cranking.name }}
{% endif %}
</td>
<td>
<a href="{{ path('_club', {'id': cranking.club.id}) }}" target="_blank">
{{ cranking.club.nombre }}
</a>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="ui modal documentos">
<i class="close icon"></i>
<div class="header">
{{ 'ranking.documents'|trans({}, 'FrontendBundle') }}
</div>
<div class="content">
<table class="ui large stackable padded striped celled table" id="documentosTable">
<tr>
<th>{{ 'competicion.nombre'|trans({}, 'FrontendBundle') }}</th>
<th></th>
</tr>
{% for cranking in ranking.competiciones %}
<tr>
<td>
{% if cranking.competicion is not null %}
<a href="{{ path('_tournament', {'id': cranking.competicion.id}) }}" target="_blank">
{{ cranking.name }}
</a>
{% else %}
{{ cranking.name }}
{% endif %}
</td>
<td>
{% if cranking.competicion is not null and cranking.competicion.ficheroVarios is not null %}
<a class="ui fluid blue button" href="https://docs.google.com/viewerng/viewer?url={{ app.request.schemeAndHttpHost ~ app.request.baseUrl }}/uploads/competiciones/pdf/{{ cranking.competicion.ficheroVarios }}" target="_blank">
<i class="file alternate outline icon"></i>{{ cranking.competicion.ficheroVariosNombre }}
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div id="preloadTarjetaAux" style="display: none;">
{% include 'frontend/Competicion/MOCK_CARD_HOR.svg.twig' %}
</div>
<div class="ui long large modal second modal-tarjetas">
<div class="scrolling content" id="inscritos-tarjetas" style="padding: 0px!important">
<div id="tarjeta-load"></div>
</div>
</div>
{% else %}
<div class="ui mobile only headerRanking">
<div class="moblie-fondo ui secondary center aligned fondoBannerRanking ranking-{{ codeClubOrCliente }}"></div>
<h1 class="headerRanking">
{{ ranking.nombre }}
</h1>
Última actualización: {{ ranking.generatedAt|date('d-m-Y H:i') }}
</div>
<div class="ui center aligned basic segment inactiveRanking">
<h1>Este ranking se encuentra desactivado</h1>
</div>
{% endif %}
{% endblock %}
{% block javascripts %}
<script>
$("body").on("click", ".mostrarOcultos.button", function (e) {
e.preventDefault();
if ($(".aCambiar").hasClass('filaOculta')) {
$(".aCambiar").addClass('eliminaSaltos');
$(".aCambiar").removeClass('filaOculta');
} else {
if ($(".aCambiar").hasClass('eliminaSaltos')) {
$(".aCambiar").addClass('filaOculta');
$(".aCambiar").removeClass('eliminaSaltos');
}
}
});
$("body").on("click", ".abreModal", function (e) {
e.preventDefault();
var clases = $(this).attr("class").split(" ");
$(".modal." + clases.pop()).modal({
closable: true,
observeChanges: true
}).modal("show");
});
$(".tableCell").popup({inverted: true, position: "top center"});
function cardOpener(inscribedId, order) {
var ruta = Routing.generate('_tarjeta');
var device = screen.width;
$('#tarjeta-load').html($('#preloadTarjetaAux').html());
$('.ui.long.modal.second').modal({
onHidden: function () {
$("#cabecera").removeClass("hide");
},
onHide: function () {
$('body').removeClass("dimmable");
$(".scorecard-header-transition").transition("browse out");
$('#tarjeta-load').html($('#preloadTarjetaAux').html());
},
onShow: function () {
}
}).modal('setting', 'transition', 'vertical flip').modal('show');
$.post(ruta, {inscrito: inscribedId, device_res: device, order: order, only_round: 1}, function (data) {
$('#tarjeta-load').html(data);
$(".scorecard-datas").transition('fade up in', '600ms');
$(".scorecard-header-transition").transition("browse in", "600ms");
}).fail(function () {
$('.ui.long.modal.second').modal('hide');
$('.ui.page.dimmer.second').dimmer('show');
});
}
$('#vistaAmpliada').click(function () {
let status = $(this).data('status');
if (status) {
$('#ranking').removeClass('tablaAmpliada');
$('#vistaAmpliada .icon').removeClass('slash');
} else {
$('#ranking').addClass('tablaAmpliada');
$('#vistaAmpliada .icon').addClass('slash');
}
$(this).data('status', status == 1 ? 0 : 1);
});
$("body").on('change', '#show-details', function () {
if ($(this).is(':checked')) {
$('.table-ranking-container').removeClass('hide-points-columns');
} else {
$('.table-ranking-container').addClass('hide-points-columns');
}
});
$("body").on('click', '.competition-title:not(.no-link)', function () {
let id = $(this).data('competitionId');
let url = Routing.generate('_tournament', {'id': id});
window.open(url, '_blank');
});
$('body').on('click', '#show-observations-btn', function () {
$(this).addClass('hidden');
$('#observations-segment').show();
});
$('body').on('click', '#observations-hide-btn', function () {
$('#observations-segment').hide();
$('#show-observations-btn').removeClass('hidden');
});
$(function () {
$('div.tableRow.filaOculta').popup({
content: 'Este jugador no cumple el mínimo de competiciones',
hoverable: true,
position: 'top center',
});
});
</script>
{% endblock %}