templates/frontend/Ranking/ranking.html.twig line 1

Open in your IDE?
  1. {% extends 'base_frontend_new.html.twig' %}
  2. {% block stylesheets %}
  3.     <link href="{{ asset('css/frontend/ranking.css?v=1.48')}}" rel="stylesheet" type="text/css"/>
  4.     <link rel="stylesheet" type="text/css" href="{{ asset('css/frontend/tarjetas_new.css?v=2.04') }}"/>
  5. {% endblock %}
  6. {% block title %}{{ 'ranking.title'|trans({}, 'FrontendBundle') }}{% endblock %}
  7. {% block container %}
  8.     {% set  codeClubOrCliente  = '' %}
  9.     {% if ranking.cliente is defined and ranking.cliente is not null %}
  10.         {% set codeClubOrCliente  = ranking.cliente.nombreCorto|slice(0, 4) %}
  11.     {% elseif ranking.club is defined and ranking.club is not null %}
  12.         {% set codeClubOrCliente  = ranking.club.id %}
  13.     {% endif %}
  14.     {% set makeRankingVisible = ranking.activo or (is_granted('ROLE_ADMIN') or is_granted('ROLE_FEDE') or is_granted('ROLE_CLUB')) %}
  15.     <div class="ui mobile hidden secondary center aligned segment fondoBannerRanking ranking-{{ codeClubOrCliente }}" >
  16.         <h1 class="headerRanking">
  17.             {{ ranking.nombre }}
  18.         </h1>
  19.         {# <div class="ui white icon button abreModal calendario" data-tooltip="{{ 'ranking.calendar'|trans({}, 'FrontendBundle') }}" data-inverted="">
  20.             <i class="calendar alternate outline icon"></i>
  21.         </div>
  22.         <div class="ui white icon button abreModal documentos" data-tooltip="{{ 'ranking.documents'|trans({}, 'FrontendBundle') }}" data-inverted="">
  23.             <i class="file alternate outline icon"></i>
  24.         </div> #}
  25.         {% if makeRankingVisible %}
  26.             <div class="a-container">
  27.                 <div class="abreModal calendario">Calendario</div>&nbsp;|&nbsp;{% if ranking.normativa %}<a target="_blank" href="{{ asset("uploads/ranking/" ~ ranking.normativa.normativa) }}">Normativa</a>{% endif %}{#<div class="abreModal documentos">Documentos</div>#}
  28.             </div>
  29.         {% endif %}
  30.         <div class="update-container">
  31.             Última actualización: {{ ranking.generatedAt|date('d-m-Y H:i:s') }}
  32.         </div>
  33.         {% if makeRankingVisible %}
  34.             {% include 'frontend/Ranking/toggle-details-columns.html.twig' %}
  35.         {% endif %}
  36.     </div>
  37.     {% if makeRankingVisible %}
  38.         <div class="ui mobile only headerRanking">
  39.             <div class="moblie-fondo ui secondary center aligned fondoBannerRanking ranking-{{ codeClubOrCliente }}"></div>
  40.             <h1 class="headerRanking">
  41.                 {{ ranking.nombre }}
  42.             </h1>
  43.             Última actualización: {{ ranking.generatedAt|date('d-m-Y H:i') }}
  44.             <br>
  45.             <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 #}
  46.                 <i class="calendar alternate outline icon"></i>Torneos
  47.             </div>
  48.             {# <div class="ui blue icon labeled button abreModal documentos" data-tooltip="{{ 'ranking.documents'|trans({}, 'FrontendBundle') }}" data-inverted="">
  49.                 <i class="file alternate outline icon"></i>Documentos
  50.             </div> #}
  51.             {% if ranking.normativa %}
  52.                 <a target="_blank" href="{{ asset("uploads/ranking/" ~ ranking.normativa.normativa) }}" class="ui blue icon labeled  button normativa">
  53.                     <i class="pdf file icon"></i>Normativa
  54.                 </a>
  55.             {% endif %}
  56.             <br><br>
  57.             {% if not ranking.activo %}
  58.                 <div class="only-login-visible">
  59.                     Este ranking se encuentra desactivado de cara al público, solo los usuarios de configuración de Nextcaddy pueden visualizarlo
  60.                 </div>
  61.             {% endif %}
  62. {#            <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 #}
  63. {#                <i class="eye icon"></i>Resultados torneos#}
  64. {#            </div>#}
  65.             {% include 'frontend/Ranking/toggle-details-columns.html.twig' %}
  66.         </div>
  67.         <div class="ui divider hidden"></div>
  68.         {% if ranking.observations %}
  69.             <div id="show-observations-btn">
  70.                 <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>
  71.                 Mostrar observaciones
  72.             </div>
  73.             <div id="observations-segment">
  74.                 <div id="observations-hide-btn" data-content="Ocultar observaciones">
  75.                     <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>
  76.                 </div>
  77.                 {{ ranking.observations|nl2br }}
  78.             </div>
  79.         {% endif %}
  80.         {% if not ranking.activo %}
  81.             <div class="only-login-visible ui mobile hidden">
  82.                 Este ranking se encuentra desactivado de cara al público, solo los usuarios de configuración de Nextcaddy pueden visualizarlo
  83.             </div>
  84.         {% endif %}
  85.         <div class="tableRanking table-ranking-container hide-points-columns ranking-{{ codeClubOrCliente }}">
  86.             {% include 'frontend/Ranking/tabla_ranking.html.twig' with {'puntos': puntos, 'ranking': ranking, 'jugadores': jugadores, 'penalidad': penalidad, 'bonus': bonus, 'isMedal': isMedal} %}
  87.         </div>
  88.         <div class="ui divider hidden"></div>
  89.         {# <div class="ui blue icon button mostrarOcultos" data-position="right center" data-tooltip="{{ 'ranking.show'|trans({}, 'FrontendBundle') }}" data-inverted="">
  90.             <i class="eye icon"></i>
  91.         </div> #}
  92.         <div class="ui large modal calendario">
  93.             <i class="close icon"></i>
  94.             <div class="header">
  95.                 {{ 'ranking.calendar'|trans({}, 'FrontendBundle') }}
  96.             </div>
  97.             <div class="content">
  98.                 <table class="ui large stackable padded striped celled table" id="calendarioTable">
  99.                     <tr>
  100.                         <th>{{ 'comite.fecha'|trans({}, 'FrontendBundle') }}</th>
  101.                         <th>{{ 'competicion.nombre'|trans({}, 'FrontendBundle') }}</th>
  102.                         <th>{{ 'club.club'|trans({}, 'FrontendBundle') }}</th>
  103.                     </tr>
  104.                     {% for cranking in ranking.competiciones %}
  105.                         <tr>
  106.                             <td>{{ cranking.date|date("d-m-Y") }}</td>
  107.                             <td>
  108.                                 {% if cranking.competicion is not null %}
  109.                                     <a href="{{ path('_tournament', {'id': cranking.competicion.id}) }}" target="_blank">
  110.                                         {{ cranking.name }}
  111.                                     </a>
  112.                                 {% else %}
  113.                                     {{ cranking.name }}
  114.                                 {% endif %}
  115.                             </td>
  116.                             <td>
  117.                                 <a href="{{ path('_club', {'id': cranking.club.id}) }}" target="_blank">
  118.                                     {{ cranking.club.nombre }}
  119.                                 </a>
  120.                             </td>
  121.                         </tr>
  122.                     {% endfor %}
  123.                 </table>
  124.             </div>
  125.         </div>
  126.         <div class="ui modal documentos">
  127.             <i class="close icon"></i>
  128.             <div class="header">
  129.                 {{ 'ranking.documents'|trans({}, 'FrontendBundle') }}
  130.             </div>
  131.             <div class="content">
  132.                 <table class="ui large stackable padded striped celled table" id="documentosTable">
  133.                     <tr>
  134.                         <th>{{ 'competicion.nombre'|trans({}, 'FrontendBundle') }}</th>
  135.                         <th></th>
  136.                     </tr>
  137.                     {% for cranking in ranking.competiciones %}
  138.                         <tr>
  139.                             <td>
  140.                                 {% if cranking.competicion is not null %}
  141.                                     <a href="{{ path('_tournament', {'id': cranking.competicion.id}) }}" target="_blank">
  142.                                         {{ cranking.name }}
  143.                                     </a>
  144.                                 {% else %}
  145.                                     {{ cranking.name }}
  146.                                 {% endif %}
  147.                             </td>
  148.                             <td>
  149.                                 {% if cranking.competicion is not null and cranking.competicion.ficheroVarios is not null %}
  150.                                     <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">
  151.                                         <i class="file alternate outline icon"></i>{{ cranking.competicion.ficheroVariosNombre }}
  152.                                     </a>
  153.                                 {% endif %}
  154.                             </td>
  155.                         </tr>
  156.                     {% endfor %}
  157.                 </table>
  158.             </div>
  159.         </div>
  160.         <div id="preloadTarjetaAux" style="display: none;">
  161.             {% include 'frontend/Competicion/MOCK_CARD_HOR.svg.twig' %}
  162.         </div>
  163.         <div class="ui long large modal second modal-tarjetas">
  164.         <div class="scrolling content" id="inscritos-tarjetas" style="padding: 0px!important">
  165.             <div id="tarjeta-load"></div>
  166.         </div>
  167.     </div>
  168.     {% else %}
  169.         <div class="ui mobile only headerRanking">
  170.             <div class="moblie-fondo ui secondary center aligned fondoBannerRanking ranking-{{ codeClubOrCliente }}"></div>
  171.             <h1 class="headerRanking">
  172.                 {{ ranking.nombre }}
  173.             </h1>
  174.             Última actualización: {{ ranking.generatedAt|date('d-m-Y H:i') }}
  175.         </div>
  176.         <div class="ui center aligned basic segment inactiveRanking">
  177.             <h1>Este ranking se encuentra desactivado</h1>
  178.         </div>
  179.     {% endif %}
  180. {% endblock %}
  181. {% block javascripts %}
  182.     <script>
  183.         $("body").on("click", ".mostrarOcultos.button", function (e) {
  184.             e.preventDefault();
  185.             if ($(".aCambiar").hasClass('filaOculta')) {
  186.                 $(".aCambiar").addClass('eliminaSaltos');
  187.                 $(".aCambiar").removeClass('filaOculta');
  188.             } else {
  189.                 if ($(".aCambiar").hasClass('eliminaSaltos')) {
  190.                     $(".aCambiar").addClass('filaOculta');
  191.                     $(".aCambiar").removeClass('eliminaSaltos');
  192.                 }
  193.             }
  194.         });
  195.         $("body").on("click", ".abreModal", function (e) {
  196.             e.preventDefault();
  197.             var clases = $(this).attr("class").split(" ");
  198.             $(".modal." + clases.pop()).modal({
  199.                 closable: true,
  200.                 observeChanges: true
  201.             }).modal("show");
  202.         });
  203.         $(".tableCell").popup({inverted: true, position: "top center"});
  204.         function cardOpener(inscribedId, order) {
  205.             var ruta = Routing.generate('_tarjeta');
  206.             var device = screen.width;
  207.             $('#tarjeta-load').html($('#preloadTarjetaAux').html());
  208.             $('.ui.long.modal.second').modal({
  209.                 onHidden: function () {
  210.                     $("#cabecera").removeClass("hide");
  211.                 },
  212.                 onHide: function () {
  213.                     $('body').removeClass("dimmable");
  214.                     $(".scorecard-header-transition").transition("browse out");
  215.                     $('#tarjeta-load').html($('#preloadTarjetaAux').html());
  216.                 },
  217.                 onShow: function () {
  218.                 }
  219.             }).modal('setting', 'transition', 'vertical flip').modal('show');
  220.             $.post(ruta, {inscrito: inscribedId, device_res: device, order: order, only_round: 1}, function (data) {
  221.                 $('#tarjeta-load').html(data);
  222.                 $(".scorecard-datas").transition('fade up in', '600ms');
  223.                 $(".scorecard-header-transition").transition("browse in", "600ms");
  224.             }).fail(function () {
  225.                 $('.ui.long.modal.second').modal('hide');
  226.                 $('.ui.page.dimmer.second').dimmer('show');
  227.             });
  228.         }
  229.         $('#vistaAmpliada').click(function () {
  230.             let status = $(this).data('status');
  231.             if (status) {
  232.                 $('#ranking').removeClass('tablaAmpliada');
  233.                 $('#vistaAmpliada .icon').removeClass('slash');
  234.             } else {
  235.                 $('#ranking').addClass('tablaAmpliada');
  236.                 $('#vistaAmpliada .icon').addClass('slash');
  237.             }
  238.             $(this).data('status', status == 1 ? 0 : 1);
  239.         });
  240.         $("body").on('change', '#show-details', function () {
  241.             if ($(this).is(':checked')) {
  242.                 $('.table-ranking-container').removeClass('hide-points-columns');
  243.             } else {
  244.                 $('.table-ranking-container').addClass('hide-points-columns');
  245.             }
  246.         });
  247.         $("body").on('click', '.competition-title:not(.no-link)', function () {
  248.             let id = $(this).data('competitionId');
  249.             let url = Routing.generate('_tournament', {'id': id});
  250.             window.open(url, '_blank');
  251.         });
  252.         $('body').on('click', '#show-observations-btn', function () {
  253.             $(this).addClass('hidden');
  254.             $('#observations-segment').show();
  255.         });
  256.         $('body').on('click', '#observations-hide-btn', function () {
  257.             $('#observations-segment').hide();
  258.             $('#show-observations-btn').removeClass('hidden');
  259.         });
  260.         $(function () {
  261.             $('div.tableRow.filaOculta').popup({
  262.                 content: 'Este jugador no cumple el mínimo de competiciones',
  263.                 hoverable: true,
  264.                 position: 'top center',
  265.             });
  266.         });
  267.     </script>
  268. {% endblock %}