templates/base.html.twig line 1

  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <meta name="viewport" content="width=device-width, initial-scale=1">
  6.         <title>{% block title %}Qhube.bzh{% endblock %}</title>
  7.         <style>
  8.           @font-face {
  9.             font-family: 'OpenDyslexic';
  10.             src: url('/fonts/OpenDyslexic-Regular.woff2');
  11.           }
  12.           #labelSwitchOpenDyslexic {
  13.             font-family: OpenDyslexic, sans-serif;
  14.           }
  15.         </style>
  16.         <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
  17.         <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css">
  18.         <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
  19.         <script src=" https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js "></script>
  20.         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  21.         <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js"></script>
  22.         {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
  23.         {% block stylesheets %}
  24.             {{ encore_entry_link_tags('app') }}
  25.             <link href="{{ asset('css/main.css') }}" rel="stylesheet"/>
  26.         {% endblock %}
  27.         {% block javascripts %}
  28.             {{ encore_entry_script_tags('app') }}
  29.         {% endblock %}
  30.         {% block customStyle %}
  31.         {% endblock %}
  32.     </head>
  33.     <body class="text-bg-dark p-3 {% block bodyCustomClasses %}{% endblock %}">
  34.     <div class="container {% block navbarCustomClasses %}{% endblock %}">
  35. {#        <nav class="navbar navbar-expand-lg bg-dark navbar-dark rounded" aria-label="Eleventh navbar example">#}
  36.         <nav class="navbar navbar-expand-lg bg-body-tertiary rounded sticky-top" aria-label="Eleventh navbar example">
  37.             <div class="container-fluid">
  38.                 <a class="navbar-brand" href="{{ path('home') }}">Qhube.bzh</a>
  39.                 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarsExample09" aria-controls="navbarsExample09" aria-expanded="false" aria-label="Toggle navigation">
  40.                     <span class="navbar-toggler-icon"></span>
  41.                 </button>
  42.                 <div class="collapse navbar-collapse" id="navbarsExample09">
  43.                     <ul class="navbar-nav me-auto mb-2 mb-lg-0">
  44.                         <li class="nav-item">
  45.                             <a class="nav-link" href="{{ path('rankings') }}">{{ 'rankings.title' | trans }}</a>
  46.                         </li>
  47.                         <li class="nav-item">
  48.                             <div class="dropdown">
  49.                                 <button class="btn btn-light dropdown-toggle nav-link" type="button" data-bs-toggle="dropdown" data-bs-target="#dropdown-languages" aria-expanded="false">
  50.                                     {{ 'menu.translations.title' | trans }}
  51.                                 </button>
  52.                                 <ul class="dropdown-menu" id="dropdown-translations" aria-labelledby="dropdown-translations">
  53.                                     <li><a href="{{ path('terlaterie_encerche_projits') }}" class="dropdown-item">{{ 'menu.translations.search_projects' | trans }}</a></li>
  54.                                     <li><a href="{{ path('terlaterie_encerche_wca_keys') }}" class="dropdown-item">{{ 'menu.translations.search_wca_keys' | trans }}</a></li>
  55.                                 </ul>
  56.                             </div>
  57.                         </li>
  58.                         <li class="nav-item">
  59.                             <div class="dropdown">
  60.                                 <button class="btn btn-light dropdown-toggle nav-link" type="button" data-bs-toggle="dropdown" data-bs-target="#dropdown-tools" aria-expanded="false">
  61.                                     {{ 'menu.tools.title' | trans }}
  62.                                 </button>
  63.                                 <ul class="dropdown-menu" id="dropdown-tools" aria-labelledby="dropdown-tools">
  64.                                     <li><a href="{{ path('flag_pdf_generator') }}" class="dropdown-item">{{ 'menu.tools.flag_generator_menu' | trans }}</a></li>
  65.                                 </ul>
  66.                             </div>
  67.                         </li>
  68. {#                        <li class="nav-item">#}
  69. {#                            <a class="nav-link" href="{{ path('gifs') }}">Gifs</a>#}
  70. {#                        </li>#}
  71. {#                        <li class="nav-item">#}
  72. {#                            <a class="nav-link" href="{{ path('translations') }}">{{ 'translation.title' | trans }}</a>#}
  73. {#                        </li>#}
  74.                     </ul>
  75. {#                    <form role="search">#}
  76. {#                        <input class="form-control" type="search" placeholder="{{ 'base.search'|trans }}" aria-label="{{ 'base.search'|trans }}">#}
  77. {#                    </form>#}
  78.                     <ul class="navbar-nav gap-2">
  79.                         {% if is_granted('IS_AUTHENTICATED_FULLY') %}
  80.                             <li class="nav-item">
  81.                                 <div class="dropdown">
  82.                                     <button class="btn btn-light dropdown-toggle nav-link" type="button" data-bs-toggle="dropdown" data-bs-target="#dropdown-profile" aria-expanded="false">
  83.                                         {{ 'base.profile' | trans }} ({{ app.user.wcaId }})
  84.                                     </button>
  85.                                     <ul class="dropdown-menu" id="dropdown-profile" aria-labelledby="dropdown-profile">
  86.                                         <li><a class="dropdown-item" href="{{ path('signout') }}">{{ 'base.signout' | trans }}</a></li>
  87.                                         <li><a class="dropdown-item" href="{{ path('join_rankings') }}">{{ 'join.title' | trans }}</a></li>
  88.                                         {% if is_granted('ROLE_ADMIN') %}
  89.                                             {#                                <li class="bg-danger text-light text-center">Admin</li>#}
  90.                                             <li><a class="dropdown-item bg-danger text-light" href="{{ path('admin_index') }}">{{ 'admin.index.title' | trans }}</a></li>
  91.                                             {#                                <li><a class="dropdown-item bg-warning" href="{{ path('admin_addpeople') }}">{{ 'admin.addpeople.title' | trans }}</a></li>#}
  92.                                             {#                                <li><a class="dropdown-item bg-warning" href="{{ path('admin_addcountry') }}">{{ 'admin.addcountry.title' | trans }}</a></li>#}
  93.                                             {#                                <li><a class="dropdown-item bg-warning" href="{{ path('admin_addadmin') }}">{{ 'admin.addadmin.title' | trans }}</a></li>#}
  94.                                         {% endif %}
  95.                                     </ul>
  96.                                 </div>
  97.                             </li>
  98.                         {% else %}
  99.                             <li class="nav-item mb-2 mb-lg-0">
  100.                                 <a class="btn btn-outline-dark" role="button" href="{{ path('signin') }}">{{ 'base.signin' | trans }}</a>
  101.                             </li>
  102.                         {% endif %}
  103.                         <li class="nav-item">
  104.                             <div class="dropdown">
  105.                                 <button class="btn btn-light dropdown-toggle nav-link" type="button" data-bs-toggle="dropdown" data-bs-target="#dropdown-accessibility" aria-expanded="false"><i class="fa-solid fa-gear"></i></button>
  106.                                 <ul class="dropdown-menu" id="dropdown-accessibility" aria-labelledby="dropdown-accessibility">
  107.                                     <li>
  108.                                         <div class="form-check form-switch dropdown-item" id="divSwitchOpenDyslexic">
  109.                                             <input class="form-check-input" type="checkbox" id="switchOpenDyslexic">
  110.                                             <label id="labelSwitchOpenDyslexic" class="form-check-label text-dark" for="switchOpenDyslexic" data-bs-toggle="tooltip" data-bs-title="Activate OpenDyslexic font which is better for dyslexic people">{{ 'menu.settings.dyslexia' | trans }}</label>
  111.                                         </div>
  112.                                     </li>
  113.                                 </ul>
  114.                             </div>
  115.                         </li>
  116.                         <li class="nav-item">
  117.                             <div class="dropdown">
  118.                                 <button class="btn btn-light dropdown-toggle nav-link" type="button" data-bs-toggle="dropdown" data-bs-target="#dropdown-languages" aria-expanded="false">
  119.                                     {{ 'language' | trans }} {{ 'current_language' | trans }}
  120.                                 </button>
  121.                                 <ul class="dropdown-menu" id="dropdown-languages" aria-labelledby="dropdown-languages">
  122.                                     {% for key, language in {
  123.                                         'br': 'Brezhoneg',
  124.                                         'en': 'English',
  125.                                         'eo': 'Esperanto',
  126.                                         'fr': 'Français',
  127.                                         'galo': 'Galo'
  128.                                     } %}
  129.                                         <li><a class="dropdown-item" href="{{ path(app.request.get('_route'), {'_locale': key, 'id': nation is defined ? nation.id : null }) }}">{{ language }}</a></li>
  130.                                     {% endfor %}
  131.                                 </ul>
  132.                             </div>
  133.                         </li>
  134.                     </ul>
  135.                 </div>
  136.             </div>
  137.         </nav>
  138.         <br>
  139.         {# read and display all flash messages #}
  140.         {% for label, messages in app.flashes %}
  141.             {% for message in messages %}
  142.                 <div class="alert alert-{{ label }} flash-{{ label }}">
  143.                     {{ message }}
  144.                 </div>
  145.             {% endfor %}
  146.         {% endfor %}
  147.         {% block body %}{% endblock %}
  148.     </div>
  149.     <script>
  150.         const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
  151.         const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
  152.         $("#switchOpenDyslexic").change(function() {
  153.             if (this.checked) {
  154.                 $('div').css("font-family", 'OpenDyslexic');
  155.                 Cookies.set('dyslexiaFont', true);
  156.             } else {
  157.                 $('div').css("font-family", '');
  158.                 Cookies.remove('dyslexiaFont');
  159.             }
  160.         });
  161.         if (Cookies.get('dyslexiaFont')) {
  162.             $('#switchOpenDyslexic').prop('checked', true);
  163.             $('div').css("font-family", 'OpenDyslexic');
  164.         }
  165.     </script>
  166.     </body>
  167. </html>