templates/frontend/Club/index-club.html.twig line 1

Open in your IDE?
  1. {% extends 'base_frontend_new.html.twig' %}
  2. {% block stylesheets %}
  3.     <link href="{{ asset('css/frontend/club/club.css?v=0.01') }}" rel="stylesheet" type="text/css">
  4.     <link href="{{ asset('css/frontend/climacon.css') }}" rel="stylesheet" type="text/css"/>
  5.     {% if publi > 0 %}
  6.         <link rel="stylesheet" type="text/css"
  7.               href="{{ asset('css/frontend/sponsor/sponsor' ~ publi ~ '.css?v=1.1') }}"/>
  8.     {% endif %}
  9. {% endblock %}
  10. {% block title %}{{ entity.nombre }}{% endblock %}
  11. {% block container %}
  12.     {% set sedes = entity.getSedes() %}
  13.     {% if sedes|length == 0 %}      {# si no hay sedes, la unica sede es el propio club (de momento sedes solo valido para federaciones) #}
  14.         {% set sedes = [entity] %}
  15.     {% endif %}
  16.     {% include  'mensajes_new.html.twig' %}
  17.     <div class="ui segments" id="segmentos">
  18.         <div class="ui mobile hidden segment opaco">
  19.             <div class="ui tiny breadcrumb">
  20.                 {% for s in sedes %}
  21.                     <a class="section"
  22.                        href="{{ path('provincias', {'id': s.localidad.provincia.id} ) }}">{{ s.localidad.provincia.nombre }}</a>{% if sedes|length > 1 and not loop.last %}
  23.                     <br/>{% endif %}
  24.                 {% endfor %}
  25.                 <i class="right angle icon divider"></i>
  26.                 <div class="active section">{{ entity.id }}</div>
  27.             </div>
  28.         </div>
  29.         <div class="mobile only mobileLiveContainer">
  30.             <div class="mobileLiveHeader">
  31.                 <div class="headerLogo">
  32.                     <svg class="nxt-long-svg" viewBox="-0.5 -0.9 285 40">
  33.                         <path fill="#fff"
  34.                               d="M63 20L73.8 3.2h-2L62 18.4 52 3.2h-2L61 20 50 36.8h2l10-15.4 10 15.4h2L63 20zM75 3.2V5h11v31.8h1.8V4.9h11V3.2H75zM29.8 35.1V21h17v-1.8h-17V4.9H48V3.2H27.9v33.6h20.2V35H29.7zM190.5 3.2h-11.4v33.6h11.4c6.9 0 11-3.4 11-9.1V12.4c0-5.8-4.1-9.2-11-9.2zm9.2 24.5c0 6.7-6.4 7.4-9.2 7.4h-9.7V4.9h9.7c2.8 0 9.2.8 9.2 7.5v15.3zM21.4 3.2v31.1L2.2 3.3H0v33.5h1.7L1.8 6l19 30.8H23V3.2h-1.7zm203.8 0l-10.7 18.4-10.2-18.2-.1-.2h-2l11.4 20.3v13.3h1.7V23.5l12-20.3h-2.1zm-61.4 0h-11.4v33.6h11.4c6.9 0 11-3.4 11-9.1V12.4c0-5.8-4.1-9.2-11-9.2zm9.2 24.5c0 6.7-6.4 7.4-9.2 7.4h-9.7V4.9h9.7c2.8 0 9.2.8 9.2 7.5v15.3zM137.4 3.2H135l-12.4 33.6h1.9l4.3-11.8h14.7l4.3 11.8h1.9L137.4 3.2zm-7.8 20l6.6-18 6.7 18h-13.3zm-9 8.1v.2c-1.7 2.5-5.2 4-9.2 4-4.9 0-10.1-2.4-10.1-7.7V12.3c0-5.2 5-7.9 10-7.9 4 0 7.7 1.7 9.2 4.3l.2.2 1.5-1-.2-.2c-1.8-3-5.9-5-10.5-5-5.8 0-11.7 3.2-12 9.2v15.8c0 6.3 6 9.6 11.9 9.6 4.6 0 8.7-2 10.6-5l.2-.2-1.5-.8zM284 37.7c-28.4-15-44.3.5-44.3.5V2.7s4.7-7.7 22 2.8c15 9.3 22 5.6 22 5.6s.5 3.6-1 9c-2 7 1.3 17.5 1.3 17.5"></path>
  35.                     </svg>
  36.                 </div>
  37.             </div>
  38.         </div>
  39.         <div class="ui segment opaco segmentTransparent">
  40.             <div class="ui basic segment">
  41.                 <div class="ui grid stackable">
  42.                     <div class="{% if tiempo.idAemet != 0 %}twelve{% else %}sixteen{% endif %} wide column">
  43.                         <div class="ui grid">
  44.                             <div class="stretched row">
  45.                                 <div class="mobile hidden two wide column">
  46.                                     <div class="ui small image padding10" id="club-logo-header">
  47.                                         {% if entity.id != "AM00" %}
  48.                                             {% if entity.id starts with 'AM' or entity.id starts with 'CM' or entity.id starts with 'CP' or entity.id starts with '77' or entity.isInFederacion("CM00") %}
  49.                                                 <img id="club-logo" data-entity-id="{{ entity.id }}"
  50.                                                      data-default-logo="{{ defaultLogo }}"
  51.                                                      data-default-global="{{ defaultLogoGlobal }}" alt="Club Logo"
  52.                                                      src="">
  53.                                             {% else %}
  54.                                                 <img class="club-image"
  55.                                                      src="https://portal.golfandalucia.com/uploads/club/{{ entity.id }}6080.jpg"
  56.                                                      alt="clublogo"/>
  57.                                             {% endif %}
  58.                                         {% else %}
  59.                                             <img src="{{ asset('img/frontend/fga-header.png') }}" alt="logo"/>
  60.                                         {% endif %}
  61.                                     </div>
  62.                                 </div>
  63.                                 <div class="fourteen wide column" id="clubNameContainer">
  64.                                     <div class="toprow clubName">
  65.                                         <h3 class="slab">{{ entity.nombre }}</h3>
  66.                                         <div class="mobile hidden">
  67.                                             <div class="ui divider"></div>
  68.                                         </div>
  69.                                     </div>
  70.                                     <p class="mobile hidden padding15top">
  71.                                         {% for s in sedes %}
  72.                                             <br>
  73.                                             <i class="icon location blue arrow"></i>
  74.                                             <a href=""
  75.                                                onClick="myNavFun( {{ s.latitud }} , {{ s.longitud }} )">{{ s.direccion }}
  76.                                                 , {{ s.localidad.nombre }}, {{ s.localidad.provincia.nombre }} </a>
  77.                                             <br>
  78.                                             <i class="blue phone icon"></i> <a
  79.                                                 href="tel:+34{{ s.telefono|split('/')[0]|trim }}">{{ s.telefono }}</a>
  80.                                         {% endfor %}
  81.                                     </p>
  82.                                 </div>
  83.                             </div>
  84.                         </div>
  85.                     </div>
  86.                     {% if tiempo.idAemet != 0 %}
  87.                         <div class="mobile hidden ui four wide center aligned column subSegmentBlue">
  88.                             <div class="toprow">
  89.                                 <a class="ui blue circular label">{{ tiempo.minima }}º</a>
  90.                                 <a class="ui orange circular label">{{ tiempo.maxima }}º</a>
  91.                                 {% if tiempo.prob_precipitacion > 0 %}
  92.                                     <a class="ui blue basic circular label">
  93.                                         <i class="rain icon"></i>
  94.                                         {{ tiempo.prob_precipitacion }}%
  95.                                     </a>
  96.                                 {% endif %}
  97.                             </div>
  98.                             <div class="ui divider"></div>
  99.                             {% if tiempo.estado_cielo is defined and tiempo.estado_cielo is not empty %}
  100.                                 <div class="row">
  101.                                     {% set tempo = 'frontend/Climacon/' ~  tiempo.estado_cielo  ~ '.html.twig' %}
  102.                                     {% include tempo ignore missing %}
  103.                                 </div>
  104.                             {% endif %}
  105.                         </div>
  106.                     {% endif %}
  107.                 </div>
  108.             </div>
  109.         </div>
  110.         <div class="ui dimmer" id="dimmerPubli">
  111.             <div class="content">
  112.                 <div class="ui grid center aligned">
  113.                     {% if publi == 1 %} {# cruzcampo #}
  114.                         <div class="sixteen wide column svgPubli transition hidden">
  115.                             {% include 'cruzcampo.html.twig' %}
  116.                         </div>
  117.                     {% elseif publi == 2 %} {# freixenet #}
  118.                         <div class="sixteen wide column svgPubli transition hidden">
  119.                             {% include 'freixenet.html.twig' %}
  120.                         </div>
  121.                     {% elseif publi == 3 %}  {# federacion valenciana #}
  122.                         <div class="twelve wide column svgPubli transition hidden">
  123.                             {% include 'valenciana.html.twig' %}
  124.                         </div>
  125.                     {% elseif publi == 4 %}  {# Titleist #}
  126.                         <div class="sixteen wide column svgPubli transition hidden">
  127.                             {% include 'tiltleist.html.twig' %}
  128.                         </div>
  129.                     {% elseif publi == 8 %}  {# Andalucia Golf #}
  130.                         <div class="nine wide column svgPubli transition hidden">
  131.                             {% include 'andalucia_golf.html.twig' %}
  132.                         </div>
  133.                         {#
  134.                         {% else %}
  135.                             <div class="ui sixteen wide mobile three wide computer column">
  136.                                 {% include 'nextcaddy_long.html.twig' %}
  137.                             </div>
  138.                         #}
  139.                     {% endif %}
  140.                     <div class="ui bottom right attached mini label">
  141.                         Prueba de diseño. La marca comercial mostrada no guardan relación comercial con la empresa.
  142.                     </div>
  143.                 </div>
  144.             </div>
  145.         </div>
  146.         <div class="mobile only ui basic secondary segment">
  147.             <div class="ui grid container">
  148.                 <div class="sixteen wide column">
  149.                     <a onClick="myNavFun( {{ entity.latitud }} , {{ entity.longitud }} )">
  150.                         <div class="mobile fluid only ui button blue" tabindex="0">
  151.                             <i class="map icon"></i>
  152.                             {{ 'buttons.take_me_there'|trans({}, 'FrontendBundle') }}
  153.                         </div>
  154.                     </a>
  155.                 </div>
  156.                 <div class="sixteen wide column">
  157.                     <a href="tel:+34{{ entity.telefono|split('/')[0]|trim }}">
  158.                         <div class="mobile only ui fluid button blue" tabindex="0">
  159.                             <i class="phone icon"></i>
  160.                             {{ 'buttons.dial'|trans({}, 'FrontendBundle') }}
  161.                         </div>
  162.                     </a>
  163.                 </div>
  164.             </div>
  165.         </div>
  166.     </div>
  167.     {% set abiertas = 0 %}
  168.     {% for competition in futuras %}
  169.         {% if (((competition.mode is defined and competition.mode == 3) or (competition.modo is defined and competition.modo.id == 3)) and (competition.estado == 'abierta')) %}
  170.             {% set abiertas = abiertas + 1 %}
  171.         {% endif %}
  172.     {% endfor %}
  173.     <div class="ui top attached tabular menu">
  174.         {% set difference = date(pasadas[0].fecha|default('now')).diff(date('now'|date('Y-m-d'))) %}
  175.         <a class="{% if (futuras|length == 0 or abiertas == 0 or difference.d <= 2) and (entity.id != "AM60") and (pasadas|length != 0) %}active{% endif %} item"
  176.            data-tab="first">
  177.             {{ 'club.past'|trans({}, 'FrontendBundle') }}
  178.         </a>
  179.         <a class="{% if ((futuras|length != 0 and abiertas > 0 and entity.id != "AM60" and difference.d > 2) or (entity.id == "AM60") or (pasadas|length == 0)) %}active{% endif %} item"
  180.            data-tab="second">
  181.             {{ 'club.future'|trans({}, 'FrontendBundle') }}
  182.             {% if abiertas > 0 %}
  183.                 <span class="ui grey circular label">{{ abiertas }}</span>
  184.             {% endif %}
  185.         </a>
  186.     </div>
  187.     <div id="pasadasTab"
  188.          class="ui bottom attached {% if (futuras|length == 0 or abiertas == 0 or difference.d <= 2) and (entity.id != "AM60") and (pasadas|length != 0) %}active{% endif %} tab segment"
  189.          data-tab="first">
  190.         {% if pasadas|length > 0 %}
  191.             {% set isFuture = null %}
  192.             {% for competition in pasadas %}
  193.                 {% set competitionId = competition.id %}
  194.                 {% if (loop.index0 % numElementos == 0) %}
  195.                     {% set activo = "" %}
  196.                     {% if not loop.first %}
  197.                         {% set activo = "hide" %}
  198.                     {% endif %}
  199.                     <div class="ui grid stackable {{ activo }}" id="pasadasPanel{{ (loop.index / numElementos)|round(0, 'ceil') }}">
  200.                 {% endif %}
  201.                         <div class="eight wide column">
  202.                             {% if (loop.index0 == 0) or (loop.index0 == 1) %}
  203.                                 <div class="ui divider mobile hidden"></div>
  204.                             {% endif %}
  205.                             {% include 'frontend/Club/components/item-competition.html.twig' %}
  206.                             <div class="ui divider"></div>
  207.                         </div>
  208.                 {% if (loop.index0 % numElementos == 5) or loop.last %}
  209.                     </div>
  210.                 {% endif %}
  211.             {% endfor %}
  212.         {% else %}
  213.             <div class="ui section divider hidden"></div>
  214.             <div class="ui section divider hidden"></div>
  215.             <div class="ui centered grid">
  216.                 <div class="row">
  217.                     <div class="ten wide center aligned column">
  218.                         <h2 class="ui icon header">
  219.                             <i class="icon">
  220.                                 <svg class="upcoming" xmlns="http://www.w3.org/2000/svg" width="116.56" height="101.17"
  221.                                      viewBox="6.72 -0.58 116.56 101.17">
  222.                                     <path fill="none" stroke="#94C120" stroke-width="2" stroke-linecap="round"
  223.                                           stroke-linejoin="round"
  224.                                           d="M121.27 97.13C49.2 59.15 8.72 98.58 8.72 98.58V8.38S20.7-11.3 64.5 15.5c38.35 23.47 56.37 14.06 56.37 14.06s1.06 9.27-2.9 23.09c-5.1 17.84 3.31 44.48 3.31 44.48"></path>
  225.                                 </svg>
  226.                             </i>
  227.                             <div class="content">
  228.                                 {{ entity.nombre }}
  229.                                 <div class="sub header">
  230.                                     {{ 'messages.club.empty'|trans({}, 'FrontendBundle')|raw }}
  231.                                 </div>
  232.                             </div>
  233.                         </h2>
  234.                     </div>
  235.                 </div>
  236.                 <div class="row">
  237.                     <div class="ten wide center aligned column">
  238.                         {% set club_id_aux = (entity.id|slice(0, 2)) ~ "00" %}
  239.                         <a href="{{ path('_club', {'id': club_id_aux}) }}">
  240.                             {{ 'messages.club.empty-sub'|trans({}, 'FrontendBundle')|raw }}
  241.                         </a>
  242.                     </div>
  243.                 </div>
  244.             </div>
  245.         {% endif %}
  246.         {% if pasadas|length > numElementos %}
  247.             <div class="pagination-container">
  248.                 <div class="ui mobile hidden pagination menu eo">
  249.                     {% for i in 1..(pasadas|length / numElementos)|round(0, 'ceil') %}
  250.                         {% set activo = "" %}
  251.                         {% if loop.first %}
  252.                             {% set activo = "active" %}
  253.                         {% endif %}
  254.                         <a class="item {{ activo }}" data-panel="pasadas" data-num="{{ i }}">
  255.                             {{ i }}
  256.                         </a>
  257.                     {% endfor %}
  258.                     {% set listUrl = "" %}
  259.                     {% if entity.id != "AM00" %}
  260.                         {% set listUrl = path('competiciones_club', {'id': entity.id}) %}
  261.                     {% else %}
  262.                         {% set listUrl = path('competiciones_comite', {'rfgacomite': 0}) %}
  263.                     {% endif %}
  264.                     <a class="item" href="{{ listUrl }}">
  265.                         <i class="list icon"></i>
  266.                     </a>
  267.                 </div>
  268.             </div>
  269.             <div class="ui mobile only" style="text-align: center;">
  270.                 <a class="item" href="{{ listUrl }}">
  271.                     Ver todas
  272.                 </a>
  273.             </div>
  274.         {% endif %}
  275.     </div>
  276.     <div id="futurasTab"
  277.          class="ui bottom attached {% if ((futuras|length != 0 and abiertas > 0 and entity.id != "AM60" and difference.d > 2) or (entity.id == "AM60") or (pasadas|length == 0)) %}active{% endif %} tab segment"
  278.          data-tab="second">
  279.         {% if futuras|length != 0 %}
  280.             {% set isFuture = true %}
  281.             {% for competition in futuras %}
  282.                 {% set competitionId = competition.id %}
  283.                 {% if (loop.index0 % numElementos == 0) %}
  284.                     {% set activo = "" %}
  285.                     {% if not loop.first %}
  286.                         {% set activo = "hide" %}
  287.                     {% endif %}
  288.                     <div class="ui grid stackable {{ activo }}" id="futurasPanel{{ (loop.index / numElementos)|round(0, 'ceil') }}">
  289.                 {% endif %}
  290.                 <div class="eight wide column">
  291.                     {% if loop.index0 == 0 or loop.index0 == 1 %}
  292.                         <div class="ui divider mobile hidden"></div>
  293.                     {% endif %}
  294.                     {% include 'frontend/Club/components/item-competition.html.twig' %}
  295.                     <div class="ui divider"></div>
  296.                 </div>
  297.                 {% if (loop.index0 % numElementos == 5) or loop.last %}
  298.                     </div>
  299.                 {% endif %}
  300.             {% endfor %}
  301.         {% else %}
  302.             <div class="ui section divider hidden"></div>
  303.             <div class="ui section divider hidden"></div>
  304.             <div class="ui centered grid">
  305.                 <div class="row">
  306.                     <div class="ten wide center aligned column">
  307.                         <h2 class="ui icon header">
  308.                             <i class="icon">
  309.                                 <svg class="upcoming" xmlns="http://www.w3.org/2000/svg" width="116.56" height="101.17"
  310.                                      viewBox="6.72 -0.58 116.56 101.17">
  311.                                     <path fill="none" stroke="#94C120" stroke-width="2" stroke-linecap="round"
  312.                                           stroke-linejoin="round"
  313.                                           d="M121.27 97.13C49.2 59.15 8.72 98.58 8.72 98.58V8.38S20.7-11.3 64.5 15.5c38.35 23.47 56.37 14.06 56.37 14.06s1.06 9.27-2.9 23.09c-5.1 17.84 3.31 44.48 3.31 44.48"></path>
  314.                                 </svg>
  315.                             </i>
  316.                             <div class="content">
  317.                                 {{ entity.nombre }}
  318.                                 <div class="sub header">
  319.                                     {{ 'messages.club.empty'|trans({}, 'FrontendBundle')|raw }}
  320.                                 </div>
  321.                             </div>
  322.                         </h2>
  323.                     </div>
  324.                 </div>
  325.                 <div class="row">
  326.                     <div class="ten wide center aligned column">
  327.                         {% set club_id_aux = (entity.id|slice(0, 2)) ~ "00" %}
  328.                         <a href="{{ path('_club', {'id': club_id_aux}) }}">
  329.                             {{ 'messages.club.empty-sub'|trans({}, 'FrontendBundle')|raw }}
  330.                         </a>
  331.                     </div>
  332.                 </div>
  333.             </div>
  334.         {% endif %}
  335.         {% if futuras|length > numElementos %}
  336.             <div class="pagination-container">
  337.                 <div class="ui mobile hidden pagination menu">
  338.                     {% for i in 1..(futuras|length / numElementos)|round(0, 'ceil') %}
  339.                         {% set activo = "" %}
  340.                         {% if loop.first %}
  341.                             {% set activo = "active" %}
  342.                         {% endif %}
  343.                         <a class="item {{ activo }}" data-panel="futuras" data-num="{{ i }}">
  344.                             {{ i }}
  345.                         </a>
  346.                     {% endfor %}
  347.                     {% set listUrl = "" %}
  348.                     {% if entity.id != "AM00" %}
  349.                         {% set listUrl = path('competiciones_club', {'id': entity.id}) %}
  350.                     {% else %}
  351.                         {% set listUrl = path('competiciones_comite', {'rfgacomite': 0}) %}
  352.                     {% endif %}
  353.                     <a class="item" href="{{ listUrl }}">
  354.                         <i class="list icon"></i>
  355.                     </a>
  356.                 </div>
  357.             </div>
  358.             <div class="ui mobile only" style="text-align: center;">
  359.                 <a class="item" href="{{ listUrl }}">
  360.                     Ver todas
  361.                 </a>
  362.             </div>
  363.         {% endif %}
  364.     </div>
  365.     {% if (entity.id not in ["AM00", "CM00"]) and (trazados|length > 0) %}
  366.         <div class="ui segment">
  367.             <h2 class="ui dividing header">Recorridos<a class="anchor" id="recorrido"></a></h2>
  368.             <div class="ui divided grid stackable">
  369.                 <div class="sixteen wide computer or lower twelve wide large screen twelve wide widescreen column">
  370.                     <div class="ui form">
  371.                         <div class="fields stackable ui  grid">
  372.                             <div class="nine wide column">
  373.                                 <div class="field">
  374.                                     <label>Campo</label>
  375.                                     <select class="ui dropdown" id="trazados_aux">
  376.                                         {% for trazado in trazados %}
  377.                                             <option value="{{ trazado.id }}">{{ trazado.nombre }}</option>
  378.                                         {% endfor %}
  379.                                     </select>
  380.                                 </div>
  381.                             </div>
  382.                             <div class="four wide column">
  383.                                 <div class="field">
  384.                                     <label>Barras</label>
  385.                                     <div class="ui selection dropdown" id="barras_aux">
  386.                                         <input type="hidden" name="barra_aux">
  387.                                         <i class="dropdown icon"></i>
  388.                                         <div class="text"></div>
  389.                                         <div class="menu">
  390.                                         </div>
  391.                                     </div>
  392.                                 </div>
  393.                             </div>
  394.                             <div class="three wide column">
  395.                                 <div class="field">
  396.                                     <label>Hoyos</label>
  397.                                     <select class="ui compact dropdown" id="hoyos_aux">
  398.                                         <option value="3">1-18</option>
  399.                                         <option value="1">1-9</option>
  400.                                         <option value="2">10-18</option>
  401.                                     </select>
  402.                                 </div>
  403.                             </div>
  404.                             <div class="sixteen wide column">
  405.                                 <div class="ui divided stackable grid">
  406.                                     <div class="mobile hidden eight wide column center aligned">
  407.                                         <h4 class="ui horizontal divider header">
  408.                                             <div class="content">
  409.                                                 Masculino
  410.                                             </div>
  411.                                         </h4>
  412.                                         <div class="ui grid">
  413.                                             <div class="seven wide column centered">
  414.                                                 <h3 class="ui  header">
  415.                                                     <i class="icons">
  416.                                                         <i class="file grey  outline icon"></i>
  417.                                                         <i class="corner blue info circle icon"></i>
  418.                                                     </i>
  419.                                                     <div class="content">
  420.                                                         <span id="valor_campo_m">-</span>
  421.                                                         <div class="sub header">Valor de Campo</div>
  422.                                                     </div>
  423.                                                 </h3>
  424.                                             </div>
  425.                                             <div class="seven wide column centered">
  426.                                                 <h3 class="ui  header">
  427.                                                     <i class="icons">
  428.                                                         <i class="file grey  outline icon"></i>
  429.                                                         <i class="corner red asterisk  icon"></i>
  430.                                                     </i>
  431.                                                     <div class="content">
  432.                                                         <span id="valor_slope_m">-</span>
  433.                                                         <div class="sub header">Valor Slope</div>
  434.                                                     </div>
  435.                                                 </h3>
  436.                                             </div>
  437.                                         </div>
  438.                                     </div>
  439.                                     <div class="mobile hidden eight wide column center aligned">
  440.                                         <h4 class="ui horizontal divider header">
  441.                                             <div class="content">
  442.                                                 Femenino
  443.                                             </div>
  444.                                         </h4>
  445.                                         <div class="ui grid">
  446.                                             <div class="seven wide column centered">
  447.                                                 <h3 class="ui  header">
  448.                                                     <i class="icons">
  449.                                                         <i class="file grey  outline icon"></i>
  450.                                                         <i class="corner blue info circle icon"></i>
  451.                                                     </i>
  452.                                                     <div class="content">
  453.                                                         <span id="valor_campo_f">-</span>
  454.                                                         <div class="sub header">Valor de Campo</div>
  455.                                                     </div>
  456.                                                 </h3>
  457.                                             </div>
  458.                                             <div class="seven wide column centered">
  459.                                                 <h3 class="ui  header">
  460.                                                     <i class="icons">
  461.                                                         <i class="file grey  outline icon"></i>
  462.                                                         <i class="corner red asterisk  icon"></i>
  463.                                                     </i>
  464.                                                     <div class="content">
  465.                                                         <span id="valor_slope_f">-</span>
  466.                                                         <div class="sub header">Valor Slope</div>
  467.                                                     </div>
  468.                                                 </h3>
  469.                                             </div>
  470.                                         </div>
  471.                                     </div>
  472.                                 </div>
  473.                             </div>
  474.                         </div>
  475.                     </div>
  476.                 </div>
  477.                 <div class="sixteen wide computer or lower four wide large screen four wide widescreen center aligned column">
  478.                     <div class="ui cube shape" id="cuboHcp">
  479.                         <div class="sides">
  480.                             <div class="ui side active">
  481.                                 <div class="ui red right corner label">
  482.                                     <i class="calculator icon"></i>
  483.                                 </div>
  484.                                 <div class="ui form" id="panel_form_hcp">
  485.                                     <div class="ui grid">
  486.                                         <div class="field column">
  487.                                             <label>HCP de Juego</label>
  488.                                             <input type="text" name="Licencia" placeholder="Introduzca licencia"
  489.                                                    id="hcp_juego_licencia">
  490.                                         </div>
  491.                                     </div>
  492.                                     <div class="ui horizontal divider"></div>
  493.                                     <div class="container">
  494.                                         <form id="form_calculadora_hcp" autocomplete="off">
  495.                                             <div class="fields">
  496.                                                 <div class="ui grid">
  497.                                                     <div class="eight wide column">
  498.                                                         <div class="field column">
  499.                                                             <input type="number" step="0.1" max="54" min="-9"
  500.                                                                    name="handicap" placeholder="hcp" id="hcp_jugador">
  501.                                                             <input type="hidden" name="trazado" id="trazado">
  502.                                                             <input type="hidden" name="barra" id="barra">
  503.                                                             <input type="hidden" name="hoyo" id="hoyo">
  504.                                                         </div>
  505.                                                     </div>
  506.                                                     <div class="eight wide column">
  507.                                                         <div class="field">
  508.                                                             <button class="ui primary fluid button">
  509.                                                                 <i class="mobile hidden calculator icon"></i>Ver
  510.                                                             </button>
  511.                                                         </div>
  512.                                                     </div>
  513.                                                 </div>
  514.                                             </div>
  515.                                         </form>
  516.                                     </div>
  517.                                 </div>
  518.                             </div>
  519.                             <div class="ui side" id="panel_result_hcp">
  520.                                 <div class="ui red right corner label">
  521.                                     <i class="calculator icon"></i>
  522.                                 </div>
  523.                                 <div class="ui grid container">
  524.                                     <div class="thirteen wide column centered noPaddingTop">
  525.                                         {% include 'nextcaddy_long.html.twig' %}
  526.                                     </div>
  527.                                     <div class="eight wide column centered noPaddingTop" id="hcp_m">
  528.                                         <div class="ui grey inverted statistic">
  529.                                             <div class="value" id="hcp_result_m"></div>
  530.                                             <div class="label">
  531.                                                 Hcp <i class="ui  olive large icon male"></i>
  532.                                             </div>
  533.                                         </div>
  534.                                     </div>
  535.                                     <div class="eight wide column centered noPaddingTop" id="hcp_f">
  536.                                         <div class="ui grey inverted statistic">
  537.                                             <div class="value" id="hcp_result_f"></div>
  538.                                             <div class=" label">
  539.                                                 Hcp <i class="ui  olive large  icon female"></i>
  540.                                             </div>
  541.                                         </div>
  542.                                     </div>
  543.                                     <div class="sixteen wide column centered center aligned">
  544.                                         <a class="ui basic fluid label centered" id="calculadora">
  545.                                             <i class="reply icon"></i>Volver
  546.                                         </a>
  547.                                     </div>
  548.                                 </div>
  549.                             </div>
  550.                         </div>
  551.                     </div>
  552.                 </div>
  553.                 <div id="container_table_tb">
  554.                     <div class="sixteen wide column" id="table_tb_m">
  555.                         <h4 class="ui horizontal divider header">
  556.                             <i class="circle icon" id="color_m"></i>
  557.                             <div class="content">
  558.                                 Barras <span id="color_title_m"></span>
  559.                                 <div class="sub header">Valoración Caballeros</div>
  560.                             </div>
  561.                         </h4>
  562.                         <table class="ui table center aligned unstackable rtable--flip" id="color_table_m">
  563.                             <thead>
  564.                             <tr>
  565.                                 <th class="rtable--flip">hoyo</th>
  566.                                 {% for i in 1..18 %}
  567.                                     <th id="hoyo-{{ i }}-m" class="rtable--flip">{{ i }}</th>
  568.                                     {% if i == 9 %}
  569.                                         <th class="rtable--flip">ida</th>
  570.                                     {% elseif i == 18 %}
  571.                                         <th class="rtable--flip">vuelta</th>
  572.                                     {% endif %}
  573.                                 {% endfor %}
  574.                                 <th class="rtable--flip">total</th>
  575.                             </tr>
  576.                             </thead>
  577.                             <tbody>
  578.                             <tr class="disabled">
  579.                                 <th class="rtable--flip">metros</th>
  580.                                 {% for i in 1..18 %}
  581.                                     <td id="metro-{{ i }}-m" class="rtable--flip"></td>
  582.                                     {% if i == 9 or i == 18 %}
  583.                                         <td id="metros{{ i }}m" class="rtable--flip"></td>
  584.                                     {% endif %}
  585.                                 {% endfor %}
  586.                                 <td id="metrosTotalm" class="rtable--flip"></td>
  587.                             </tr>
  588.                             <tr class="cell disabled">
  589.                                 <th class="rtable--flip">par</th>
  590.                                 {% for i in 1..18 %}
  591.                                     <td id="par-{{ i }}-m" class="rtable--flip"></td>
  592.                                     {% if i == 9 or i == 18 %}
  593.                                         <td id="pares{{ i }}m" class="rtable--flip"></td>
  594.                                     {% endif %}
  595.                                 {% endfor %}
  596.                                 <td id="paresTotalm" class="rtable--flip"></td>
  597.                             </tr>
  598.                             <tr class="disabled">
  599.                                 <th class="rtable--flip">hcp</th>
  600.                                 {% for i in 1..18 %}
  601.                                     <td id="hcp-{{ i }}-m" class="rtable--flip"></td>
  602.                                     {% if i == 9 or i == 18 %}
  603.                                         <td class="rtable--flip">--</td>
  604.                                     {% endif %}
  605.                                 {% endfor %}
  606.                                 <td class="rtable--flip">--</td>
  607.                             </tr>
  608.                             </tbody>
  609.                         </table>
  610.                     </div>
  611.                     <div class="sixteen wide column" id="table_tb_f" style="padding-top: 15px;">
  612.                         <h4 class="ui horizontal divider header">
  613.                             <i class=" circle icon" id="color_f"></i>
  614.                             <div class="content">
  615.                                 Barras <span id="color_title_f"></span>
  616.                                 <div class="sub header">Valoración Señoras</div>
  617.                             </div>
  618.                         </h4>
  619.                         <table class="ui table center aligned unstackable rtable--flip" id="color_table_f">
  620.                             <thead>
  621.                             <tr>
  622.                                 <th clas="rtable--flip">hoyo</th>
  623.                                 {% for i in 1..18 %}
  624.                                     <th id="hoyo-{{ i }}-f" clas="rtable--flip">{{ i }}</th>
  625.                                     {% if i == 9 %}
  626.                                         <th clas="rtable--flip">ida</th>
  627.                                     {% elseif i == 18 %}
  628.                                         <th clas="rtable--flip">vuelta</th>
  629.                                     {% endif %}
  630.                                 {% endfor %}
  631.                                 <th clas="rtable--flip">total</th>
  632.                             </tr>
  633.                             </thead>
  634.                             <tbody>
  635.                             <tr class="disabled">
  636.                                 <th clas="rtable--flip">metros</th>
  637.                                 {% for i in 1..18 %}
  638.                                     <td clas="rtable--flip" id="metro-{{ i }}-f"></td>
  639.                                     {% if i == 9 or i == 18 %}
  640.                                         <td clas="rtable--flip" id="metros{{ i }}f"></td>
  641.                                     {% endif %}
  642.                                 {% endfor %}
  643.                                 <td clas="rtable--flip" id="metrosTotalf"></td>
  644.                             </tr>
  645.                             <tr class="cell disabled">
  646.                                 <th clas="rtable--flip">par</th>
  647.                                 {% for i in 1..18 %}
  648.                                     <td clas="rtable--flip" id="par-{{ i }}-f"></td>
  649.                                     {% if i == 9 or i == 18 %}
  650.                                         <td clas="rtable--flip" id="pares{{ i }}f"></td>
  651.                                     {% endif %}
  652.                                 {% endfor %}
  653.                                 <td clas="rtable--flip" id="paresTotalf"></td>
  654.                             </tr>
  655.                             <tr class="disabled">
  656.                                 <th clas="rtable--flip">hcp</th>
  657.                                 {% for i in 1..18 %}
  658.                                     <td clas="rtable--flip" id="hcp-{{ i }}-f"></td>
  659.                                     {% if i == 9 or i == 18 %}
  660.                                         <td clas="rtable--flip">--</td>
  661.                                     {% endif %}
  662.                                 {% endfor %}
  663.                                 <td clas="rtable--flip">--</td>
  664.                             </tr>
  665.                             </tbody>
  666.                         </table>
  667.                     </div>
  668.                 </div>
  669.             </div>
  670.         </div>
  671.     {% endif %}
  672.     <div class="ui page dimmer">
  673.         <div class="content">
  674.             <h2 class="center">
  675.                 <i class="info circle icon"></i>
  676.                 <span id="modal-text"></span>
  677.             </h2>
  678.             <h2 class="center">
  679.                 {{ 'messages.inscripcion.abiertas'|trans({}, 'FrontendBundle') }} <a
  680.                         href="{{ path('competiciones_abiertas', {id: entity.cliente.id }) }}">{{ 'competiciones'|trans({}, 'FrontendBundle')|lower }}</a>
  681.             </h2>
  682.         </div>
  683.     </div>
  684. {% endblock %}
  685. {% block javascripts %}
  686.     <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.8.7/dist/semantic.min.js"></script>
  687.     <script>
  688.         document.addEventListener("DOMContentLoaded", function () {
  689.             document.querySelectorAll("#club-logo").forEach(async imgElement => {
  690.                 let entityId = imgElement.getAttribute("data-entity-id");
  691.                 let defaultLogo = imgElement.getAttribute("data-default-logo");
  692.                 let defaultGlobal = imgElement.getAttribute("data-default-global");
  693.                 if (!entityId) {
  694.                     imgElement.src = defaultGlobal;
  695.                     return;
  696.                 }
  697.                 let basePath = "https://resources.nextcaddy.com/clubResources";
  698.                 imgElement.src = await findValidImage(basePath, entityId, defaultLogo, defaultGlobal);
  699.             });
  700.         });
  701.         async function findValidImage(basePath, entityId, defaultLogo, defaultGlobal) {
  702.             const variants = ["C", "B", "W"];
  703.             let imageUrls = variants.flatMap(variant => [
  704.                 `${basePath}/${entityId}/logos/SVG/${entityId}${variant}.svg`,
  705.                 `${basePath}/${entityId}/logos/PNG/${entityId}${variant}.png`
  706.             ]);
  707.             for (let imgUrl of imageUrls) {
  708.                 if (await imageExists(imgUrl)) {
  709.                     return imgUrl;
  710.                 }
  711.             }
  712.             if (defaultLogo && await imageExists(defaultLogo)) {
  713.                 return defaultLogo;
  714.             }
  715.             return defaultGlobal;
  716.         }
  717.         function imageExists(url) {
  718.             return new Promise(resolve => {
  719.                 let img = new Image();
  720.                 img.src = url;
  721.                 img.onload = () => resolve(true);
  722.                 img.onerror = () => resolve(false);
  723.             });
  724.         }
  725.         {% if publi > 0 %}
  726.         $('#dimmerPubli').dimmer({
  727.             onShow: function () {
  728.                 $("#dimmerPubli .svgPubli").transition("fly up");
  729.                 $(".opaco").each(function () {
  730.                     $(this).addClass("ciclo");
  731.                 });
  732.                 setTimeout(function () {
  733.                     $("#dimmerPubli").dimmer("hide");
  734.                     $(".opaco").removeClass("opaco ciclo");
  735.                 }, 1750);
  736.             }
  737.         })
  738.             .dimmer('show');
  739.         {% else %}
  740.         $(".opaco").each(function () {
  741.             $(this).removeClass("opaco ciclo");
  742.         });
  743.         {% endif %}
  744.         $('.tabular.menu .item').tab();
  745.         //funcion para el cambio de pestaña en el menu
  746.         $(".menu .item").each(function () {
  747.             $(this).click(function () {
  748.                 //eliminamos el elemento activo y cambiamos al nuevo
  749.                 $(this).siblings('a').removeClass('active');
  750.                 $(this).addClass("active");
  751.                 //Ocultamos secciones y mostramos la que queremos.
  752.                 var elem = $(this).data("panel");
  753.                 var num = $(this).data("num");
  754.                 $("#" + elem + "Tab").children("div.grid").addClass("hide");
  755.                 $("#" + elem + "Panel" + num).removeClass("hide");
  756.             });
  757.         });
  758.         $(".boton-modal").on('click', function () {
  759.             $("#modal-text").html($(this).data("texto"));
  760.             $('.ui.page.dimmer').dimmer('show');
  761.         });
  762.         {% if entity.id not in ["AM00", "CM00"] %}
  763.         $('#hcp_juego_licencia').on('keyup focusout', function () {
  764.             var lic = $(this).val();
  765.             if (lic.length === 10) {
  766.                 $.get(Routing.generate('tour_autocomplete_get_hcp_jugador', {
  767.                     licencia: lic,
  768.                     club: "{{ entity.id }}"
  769.                 }), function (data) {
  770.                     $("#hcp_jugador").val(data.hcp);
  771.                     if (data.sexo == 'm') {
  772.                         $("#hcp_f").css('display', 'none');
  773.                     } else if (data.sexo == 'f') {
  774.                         $("#hcp_m").css('display', 'none');
  775.                     }
  776.                 });
  777.             }
  778.         });
  779.         $("#barras_aux").dropdown({
  780.             onChange: function () {
  781.                 obtieneValores();
  782.             }
  783.         });
  784.         $("#hoyos_aux").dropdown({
  785.             onChange: function () {
  786.                 obtieneValores();
  787.             }
  788.         });
  789.         $("#trazados_aux").dropdown({
  790.             onChange: function (value) {
  791.                 obtieneBarras(value);
  792.             }
  793.         });
  794.         $("#modal-cerrar").on('click', function () {
  795.             $('.ui.page.dimmer').dimmer('hide');
  796.         });
  797.         $("#calculadora").on('click', function () {
  798.             giraCubo();
  799.             reseteaValores();
  800.         });
  801.         $("#form_calculadora_hcp").on("submit", function (e) {
  802.             e.preventDefault();
  803.             var hcpJugador = $("#hcp_jugador");
  804.             if (hcpJugador.val() != "") {
  805.                 $.ajax({
  806.                     url: Routing.generate('nextcaddy_calculadora_hcpjuego'), // form action url
  807.                     type: 'POST', // form submit method get/post
  808.                     data: $(this).serialize(), // serialize form data
  809.                     success: function (data) {
  810.                         var m = "-";
  811.                         var f = "-";
  812.                         if (typeof data.masculino != "undefined") {
  813.                             m = data.masculino;
  814.                         }
  815.                         if (typeof data.femenino != "undefined") {
  816.                             f = data.femenino;
  817.                         }
  818.                         $("#hcp_result_m").html(m);
  819.                         $("#hcp_result_f").html(f);
  820.                         giraCubo();
  821.                     }
  822.                 });
  823.             } else {
  824.                 hcpJugador.parent().addClass("error");
  825.             }
  826.         });
  827.         function giraCubo() {
  828.             $('.shape').shape('flip over');
  829.         }
  830.         function reseteaValores() {
  831.             $("#hcp_juego_licencia").val('');
  832.             $("#hcp_jugador").val('');
  833.             $("#hcp_f").css('display', 'block');
  834.             $("#hcp_m").css('display', 'block');
  835.         }
  836.         function obtieneBarras(t) {
  837.             $.post(Routing.generate('tour_autocomplete_get_barras_trazado', {trazado: t}), function (barras) {
  838.                 if (barras.length != 0) {
  839.                     var values = {values: []};
  840.                     $.each(barras, function (key, valor) {
  841.                         values.values.push({"value": valor.id, "text": valor.nombre, "name": valor.nombre});
  842.                     });
  843.                     $("#barras_aux").dropdown("setup menu", values);
  844.                     $("#barras_aux").dropdown("set selected", barras[0].id);
  845.                     if (!$('#container_table_tb').transition('is visible')) {
  846.                         $('#container_table_tb').transition();
  847.                     }
  848.                     obtieneValores();
  849.                 } else {
  850.                     $('body').toast({
  851.                         class: 'error',
  852.                         displayTime: 3000,
  853.                         closeIcon: true,
  854.                         message: 'Ha ocurrido un error, no se encuentran barras para este trazado.'
  855.                     });
  856.                     $("#barras_aux").dropdown("clear", true);
  857.                     $("#barras_aux").dropdown("change values", []);
  858.                     $("#valor_campo_m").html('-');
  859.                     $("#valor_campo_f").html('-');
  860.                     $("#valor_slope_m").html('-');
  861.                     $("#valor_slope_f").html('-');
  862.                     if ($('#container_table_tb').transition('is visible')) {
  863.                         $('#container_table_tb').transition();
  864.                     }
  865.                 }
  866.             });
  867.         }
  868.         function doNotShowZero(value) {
  869.             return (value === 0) ? "-" : value;
  870.         }
  871.         function obtieneValores() {
  872.             var t = $("#trazados_aux").dropdown("get value");
  873.             var h = $("#hoyos_aux").dropdown("get value");
  874.             var b = $("#barras_aux").dropdown("get value");
  875.             if (b === null || b === '') {
  876.                 $('body').toast({
  877.                     class: 'error',
  878.                     displayTime: 3000,
  879.                     closeIcon: true,
  880.                     message: 'Ha ocurrido un error, no se encuentran barras para este trazado.'
  881.                 });
  882.             } else {
  883.                 $("#trazado").val(t);
  884.                 $("#barra").val(b);
  885.                 $("#hoyo").val(h);
  886.                 $.post(Routing.generate('tour_autocomplete_get_tb_valores', {
  887.                     barra: b,
  888.                     trazado: t,
  889.                     hoyos: h
  890.                 }), function (valores) {
  891.                     var color = traduceBarraColor(b);
  892.                     $("#valor_campo_m").html(doNotShowZero(valores['masculino']['campo']));
  893.                     $("#valor_campo_f").html(doNotShowZero(valores['femenino']['campo']));
  894.                     $("#valor_slope_m").html(doNotShowZero(valores['masculino']['slope']));
  895.                     $("#valor_slope_f").html(doNotShowZero(valores['femenino']['slope']));
  896.                     $("#color_f").removeClass().addClass(color + " circle icon");
  897.                     $("#color_m").removeClass().addClass(color + " circle icon");
  898.                     $("#color_table_m").removeClass().addClass("ui " + color + " center aligned table unstackable rtable--flip");
  899.                     $("#color_table_f").removeClass().addClass("ui " + color + " center aligned table unstackable rtable--flip");
  900.                     $("#color_title_m").html($("#barras_aux option:selected").text());
  901.                     $("#color_title_f").html($("#barras_aux option:selected").text());
  902.                     rellenaTarjetas();
  903.                 });
  904.             }
  905.         }
  906.         function traduceBarraColor(barra) {
  907.             var text = "yellow";
  908.             switch (barra) {
  909.                 case "VE":
  910.                     text = "green";
  911.                     break;
  912.                 case "NE":
  913.                     text = "black";
  914.                     break;
  915.                 case "RO":
  916.                     text = "red";
  917.                     break;
  918.                 case "AZ":
  919.                     text = "blue";
  920.                     break;
  921.                 case "NA":
  922.                     text = "orange";
  923.                     break;
  924.                 case "BL":
  925.                     text = "outline";
  926.                     break;
  927.                 case "RS":
  928.                     text = "pink";
  929.                     break;
  930.                 case "DO":
  931.                     text = "brown";
  932.                     break;
  933.             }
  934.             return text;
  935.         }
  936.         function rellenaTarjetas() {
  937.             var b = $("#barras_aux").dropdown("get value");
  938.             var t = $("#trazados_aux").dropdown("get value");
  939.             $("#trazado").val(t);
  940.             $("#barra").val(b);
  941.             $.post(Routing.generate('tour_autocomplete_get_datos_trazado', {barra: b, trazado: t}), function (valores) {
  942.                 //datos del trazado
  943.                 for (var sexo in valores) {
  944.                     if (valores[sexo] == -1) {
  945.                         $('#table_tb_' + sexo).hide();
  946.                     } else {
  947.                         $('#table_tb_' + sexo).show();
  948.                         var pares = 0;
  949.                         var paresParcial = 0;
  950.                         var metros = 0;
  951.                         var metrosParcial = 0;
  952.                         var sexos = ['m', 'f'];
  953.                         for (var i = 1; i <= 18; i++) {
  954.                             var m = valores[sexo]['metros'][i - 1];
  955.                             var p = valores[sexo]['par'][i - 1];
  956.                             var hname = valores[sexo]['hoyo'][i - 1];
  957.                             $("#hoyo-" + i + "-" + sexo).html(hname);
  958.                             $("#metro-" + i + "-" + sexo).html(m);
  959.                             $("#par-" + i + "-" + sexo).html(p);
  960.                             $("#hcp-" + i + "-" + sexo).html(valores[sexo]['hcp'][i - 1]);
  961.                             pares += p;
  962.                             metros += m;
  963.                             metrosParcial += m;
  964.                             paresParcial += p;
  965.                             if (i == 9 || i == 18) {
  966.                                 if (p != "Y") {
  967.                                     $("#metros" + i + sexo).html(metrosParcial);
  968.                                     $("#pares" + i + sexo).html(paresParcial);
  969.                                     metrosParcial = 0;
  970.                                     paresParcial = 0;
  971.                                 } else {
  972.                                     pares = "-";
  973.                                     metros = "-";
  974.                                     metrosParcial = "-";
  975.                                     paresParcial = "-";
  976.                                     $("#metros" + i + sexo).html(metrosParcial);
  977.                                     $("#pares" + i + sexo).html(paresParcial);
  978.                                 }
  979.                                 if (i == 18) {
  980.                                     $("#metrosTotal" + sexo).html(metros);
  981.                                     $("#paresTotal" + sexo).html(pares);
  982.                                 }
  983.                             }
  984.                         }
  985.                     }
  986.                 }
  987.             });
  988.         }
  989.         obtieneBarras($("#trazados_aux").dropdown("get value"));
  990.         {% endif %}
  991.         function myNavFun(lat, lon) {
  992.             // If it's an iPhone..
  993.             if ((navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) || (navigator.platform.indexOf("iPad") != -1))
  994.                 window.open("maps://maps.google.com/maps?daddr=" + lat + "," + lon + "&amp;ll=");
  995.             else
  996.                 window.open("http://maps.google.com/maps?daddr=" + lat + "," + lon + "&amp;ll=");
  997.         }
  998.         $("a.truncate").each(function () {
  999.             $(this).popup({
  1000.                 hoverable: true,
  1001.                 position: 'top left'
  1002.             });
  1003.         });
  1004.         setTimeout(function () {
  1005.             $(".statistics.transition.hidden").transition('swing down');
  1006.         }, 375);
  1007.         $(document).ajaxStart(function () {
  1008.             $(document.body).css({'cursor': 'wait'});
  1009.         }).ajaxStop(function () {
  1010.             $(document.body).css({'cursor': 'default'});
  1011.         });
  1012.     </script>
  1013. {% endblock %}