templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="{{ app.request.locale }}" style="height: 100%; min-height: 100%;">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6.     <meta name="viewport" content="width=device-width, initial-scale=1">
  7.     <title>{% block title %}Welcome!{% endblock %}</title>
  8.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
  9.     <!-- default icons used in the plugin are from Bootstrap 5.x icon library (which can be enabled by loading CSS below) -->
  10.     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.min.css"
  11.           crossorigin="anonymous">
  12.     {% block stylesheets %}
  13.         <link href="/css/global.css" rel="stylesheet">
  14.         <link href="/styles/intlTelInput.min.css" rel="stylesheet">
  15.         <link rel="stylesheet"
  16.               href="https://cdnjs.cloudflare.com/ajax/libs/eonasdan-bootstrap-datetimepicker/4.17.49/css/bootstrap-datetimepicker.min.css"
  17.               integrity="sha512-ipfmbgqfdejR27dWn02UftaAzUfxJ3HR4BDQYuITYSj6ZQfGT1NulP4BOery3w/dT2PYAe3bG5Zm/owm7MuFhA=="
  18.               crossorigin="anonymous" referrerpolicy="no-referrer"/>
  19.         <!-- the fileinput plugin styling CSS file -->
  20.         <link href="https://cdn.jsdelivr.net/gh/kartik-v/bootstrap-fileinput@5.2.5/css/fileinput.min.css" media="all"
  21.               rel="stylesheet" type="text/css"/>
  22.     {% endblock %}
  23.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
  24.             integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
  25.             crossorigin="anonymous"></script>
  26.     <script src="https://kit.fontawesome.com/ff656e5189.js" crossorigin="anonymous"></script>
  27.     <script src="https://code.jquery.com/jquery-3.6.0.min.js" crossorigin="anonymous"></script>
  28.     <script src="https://code.jquery.com/ui/1.13.1/jquery-ui.min.js"></script>
  29.     <script>
  30.         $(function () {
  31.             //$('.content-container').height('100%');
  32.         })
  33.     </script>
  34.     <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js"
  35.             integrity="sha512-LGXaggshOkD/at6PFNcp2V2unf9LzFq6LE+sChH7ceMTDP0g2kn6Vxwgg7wkPP7AAtX+lmPqPdxB47A0Nz0cMQ=="
  36.             crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  37.     <link rel="preconnect" href="https://fonts.googleapis.com">
  38.     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  39.     <link href="https://fonts.googleapis.com/css2?family=Cuprum&family=Montserrat:wght@300;400;700&display=swap"
  40.           rel="stylesheet">
  41.     <style type="text/css">
  42.         .logo img {
  43.             height: 56px;
  44.         }
  45.         .btn-primary {
  46.             background: #273d97;
  47.             border-color: #273d97 !important;
  48.         }
  49.         .btn-primary:hover, .btn.btn-primary.btn-file:hover {
  50.             background: #ffffff !important;
  51.             color: #273d97 !important;
  52.         }
  53.         .btn-danger:hover {
  54.             background: #ffffff;
  55.             color: #dc3545;
  56.         }
  57.         li[data-country-code="eh"] {
  58.             display: none !important;
  59.         }
  60.     </style>
  61.     <link rel="icon" type="image/png" href="{{ asset('favicon.png') }}">
  62. </head>
  63. <body style="display: flex; flex-direction: column; height: 100%; min-height: 100%;">
  64. <div style="background: #2d2c8b;">
  65.     <div class="top container d-md-block">
  66.         <div class="row">
  67.             <div class="col-sm-4 pt-4">
  68.                 <a href="/" class="logo"><img src="https://admission.fgses-um6p.ma/images/logo.svg?v3=_" style=""/></a>
  69.             </div>
  70.             <div class="col-sm-8 text-right menux">
  71.                 <ul class="pt-5 menu">
  72.                     <li>
  73.                         <a href="{{ path('locale_app_login', {'_locale': app.request.locale}) }}">{{ 'menu.home'|trans }}</a>
  74.                     </li>
  75.                     
  76.                     <li>
  77.                         <a href="https://www.fgses-um6p.ma/faq" target="_blank">FAQ</a>
  78.                     </li>
  79.                     <li>
  80.                         <a href="https://www.fgses-um6p.ma/admission-et-criteres-de-selection#cnt" target="_blank">Contact</a>
  81.                     </li>
  82.                     <li>
  83.                         <div class="dropdown">
  84.                             <a href="{{ path('locale_'~app.request.attributes.get('_route')|replace({'locale_': ''}), app.request.attributes.get('_route_params')|merge({'_locale': app.request.locale|default('en')})) }}"
  85.                                class="dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
  86.                                 <img src="/images/{{ app.request.locale|default('en') is same as('fr') ? 'fr' : 'uk' }}.png"/>
  87.                             </a>
  88.                             <ul class="dropdown-menu">
  89.                                 <li>
  90.                                     <a style="padding: 0; margin: 0;"
  91.                                        href="{{ path('locale_'~app.request.attributes.get('_route')|replace({'locale_': ''}), app.request.attributes.get('_route_params')|merge({'_locale': app.request.locale|default('en')  is same as('fr') ? 'en' : 'fr' })) }}"
  92.                                        class="dropdown-item">
  93.                                         <img src="/images/{{ app.request.locale|default('en') is same as('fr') ? 'uk' : 'fr' }}.png"/>
  94.                                     </a>
  95.                                 </li>
  96.                             </ul>
  97.                         </div>
  98.                     </li>
  99.                 </ul>
  100.                 <!--<div class="input-group py-5">
  101.                           <span class="input-group-text" onclick="sendQs()">
  102.                             <i class="bi bi-search"></i>
  103.                           </span>
  104.                     <input type="text" id="s" class="form-control" placeholder="Search by keywords">
  105.                 </div>-->
  106.             </div>
  107.         </div>
  108.     </div>
  109. </div>
  110. <div class="content-container py-5" style="flex: 1 1 auto;">
  111.     {% if app.user %}
  112.         <div class="container pt-5 pb-2">
  113.             <div class="row">
  114.                 <div class="col-md-4 offset-md-8 text-right usermenu">
  115.                     {# <button type="button" class="btn position-relative p-1 py-0" style="font-size: 1.2rem;">
  116.                         <i class="fas fa-bell" aria-hidden="true"></i>
  117.                         <span class="position-absolute top-1 start-87 translate-middle p-1 bg-danger border border-light rounded-circle d-none">
  118.                                     <span class="visually-hidden d-none">New alerts</span>
  119.                                 </span>
  120.                     </button>
  121.                     <button type="button" class="btn position-relative p-1 py-0" style="font-size: 1.2rem;">
  122.                         <i class="fas fa-envelope" aria-hidden="true"></i>
  123.                         <span class="position-absolute top-1 start-87 translate-middle p-1 bg-danger border border-light rounded-circle d-none">
  124.                                     <span class="visually-hidden d-none">New alerts</span>
  125.                                 </span>
  126.                     </button> #}
  127.                     <div class="dropdown" style="display: inline-block">
  128.                         <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton1"
  129.                                 data-bs-toggle="dropdown"
  130.                                 aria-expanded="false">
  131.                             {% if app.user and app.user.profile %}<img
  132.                                 src="{{ app.user and app.user.profile ? asset('files/'~app.user.id~'/'~app.user.profile) : '' }}"
  133.                                 class="rounded" width="28"
  134.                                 height="28"/>{% endif %} {{ submission is defined and (submission.fname or submission.lname) ? submission.fname~' '~submission.lname : app.user.fname~' '~app.user.lname }}
  135.                         </button>
  136.                         <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
  137.                             <li>
  138.                                 <a class="dropdown-item"
  139.                                    href="{{ path('submissions', {'_locale': app.request.locale}) }}">
  140.                                     {{ 'My submission'|trans }}
  141.                                 </a>
  142.                             </li>
  143.                             <li><a class="dropdown-item"
  144.                                    href="{{ path('locale_user_profile_index', {'_locale': app.request.locale}) }}">{{ 'Profile'|trans }}</a>
  145.                             </li>
  146.                             <li>
  147.                                 <hr class="dropdown-divider">
  148.                             </li>
  149.                             <li><a class="dropdown-item"
  150.                                    href="{{ path('app_logout') }}">{{ 'Logout'|trans }}</a>
  151.                             </li>
  152.                         </ul>
  153.                     </div>
  154.                 </div>
  155.             </div>
  156.         </div>
  157.     {% endif %}
  158.     {% block body %}{% endblock %}
  159. </div>
  160. <footer>
  161.     <div class="container py-4">
  162.         <div class="row">
  163.             <div class="col-md-7">
  164.                 <p style="margin-bottom: 13px;"><strong>FGSES - Recruitment <span>|</span> +212 530 43 12 46</strong></p>
  165.                 <p style="margin-bottom: 3px;">&copy; 2024 - The Social Sciences, Economics and Humanities -
  166.                     UM6P - Campus Rabat. Inc. All rights reserved</p>
  167.             </div>
  168.             <div class="col-md-5 text-right">
  169.                 <ul class="socials">
  170.                     <li>
  171.                         <a href="https://www.facebook.com/um6p.fgses/" target="_blank"><i class="fab fa-facebook-f"
  172.                                                                                           aria-hidden="true"></i></a>
  173.                     </li>
  174.                     <li>
  175.                         <a href="https://www.instagram.com/fgses.um6p/" target="_blank"><i class="fab fa-instagram"
  176.                                                                                            aria-hidden="true"></i></a>
  177.                     </li>
  178.                     <li>
  179.                         <a href="https://www.linkedin.com/school/fgses-um6p/" target="_blank"><i
  180.                                     class="fab fa-linkedin-in" aria-hidden="true"></i></a>
  181.                     </li>
  182.                     <li>
  183.                         <a href="https://twitter.com/FGSES_UM6P" target="_blank"><i class="fab fa-twitter"
  184.                                                                                     aria-hidden="true"></i></a>
  185.                     </li>
  186.                     <li>
  187.                         <a href="https://www.youtube.com/channel/UCTCjGsHVA47yqMHesJsw8pA" target="_blank">
  188.                             <i class="fab fa-youtube" aria-hidden="true"></i>
  189.                         </a>
  190.                     </li>
  191.                 </ul>
  192.             </div>
  193.         </div>
  194.     </div>
  195. </footer>
  196. <script src="/js/intlTelInput-jquery.min.js"></script>
  197. <script src="https://cdnjs.cloudflare.com/ajax/libs/eonasdan-bootstrap-datetimepicker/4.17.49/js/bootstrap-datetimepicker.min.js"
  198.         integrity="sha512-jPwanAeILSRxZLeyP1XYBOo67+how4C1Ij54LQSa8xIOP3hKyeWRe24C0scI4QrTeQywKd1meF4Pak/Glv34vA=="
  199.         crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  200. <!-- piexif.min.js is needed for auto orienting image files OR when restoring exif data in resized images and when you
  201.     wish to resize images before upload. This must be loaded before fileinput.min.js -->
  202. <script src="https://cdn.jsdelivr.net/gh/kartik-v/bootstrap-fileinput@5.2.5/js/plugins/piexif.min.js"
  203.         type="text/javascript"></script>
  204. <!-- sortable.min.js is only needed if you wish to sort / rearrange files in initial preview.
  205.     This must be loaded before fileinput.min.js -->
  206. <script src="https://cdn.jsdelivr.net/gh/kartik-v/bootstrap-fileinput@5.2.5/js/plugins/sortable.min.js"
  207.         type="text/javascript"></script>
  208. <!-- the main fileinput plugin script JS file -->
  209. <script src="https://cdn.jsdelivr.net/gh/kartik-v/bootstrap-fileinput@5.2.5/js/fileinput.min.js"></script>
  210. <!-- following theme script is needed to use the Font Awesome 5.x theme (`fas`). Uncomment if needed. -->
  211. <!-- script src="https://cdn.jsdelivr.net/gh/kartik-v/bootstrap-fileinput@5.2.5/themes/fas/theme.min.js"></script -->
  212. <!-- optionally if you need translation for your language then include the locale file as mentioned below (replace LANG.js with your language locale) -->
  213. <script src="https://cdn.jsdelivr.net/gh/kartik-v/bootstrap-fileinput@5.2.5/js/locales/{{ app.request.locale }}.js"></script>
  214. <script src="https://cdn.jsdelivr.net/npm/chart.js@3.6.0/dist/chart.min.js"></script>
  215. <script>
  216.     $(function () {
  217.         $('body').on('input past', ".word-limit", function (e) {
  218.             let res = [];
  219.             let str = this.value.replace(/[\t\n\r\.\?\!]/gm, " ").split(" ");
  220.             str.map((s) => {
  221.                 let trimStr = s.trim();
  222.                 if (trimStr.length > 0) {
  223.                     res.push(trimStr);
  224.                 }
  225.             });
  226.             var help_text_element = $(this).parent().find('p.help-text');
  227.             help_text_element.html(help_text_element.html().replace(/\-?[0-9]+/, $(this).data('limit') - res.length));
  228.             if ($(this).data('limit') - res.length < 0) {
  229.                 help_text_element.css('color', '#dc3545');
  230.                 $(this).addClass('err')
  231.             } else {
  232.                 help_text_element.css('color', '');
  233.                 $(this).removeClass('err')
  234.             }
  235.         })
  236.     })
  237. </script>
  238. {% block javascripts %}{% endblock %}
  239. <!-- Global site tag (gtag.js) - Google Analytics -->
  240. <script async src="https://www.googletagmanager.com/gtag/js?id=UA-87313887-6"></script>
  241. <script>
  242.     window.dataLayer = window.dataLayer || [];
  243.     function gtag() {
  244.         dataLayer.push(arguments);
  245.     }
  246.     gtag('js', new Date());
  247.     gtag('config', 'UA-87313887-6');
  248. </script>
  249. <!--Start of Tawk.to Script
  250. <div class="chat">
  251.     <script type="text/javascript">
  252.         var Tawk_API = Tawk_API || {}, Tawk_LoadStart = new Date();
  253.         (function () {
  254.             var s1 = document.createElement("script"), s0 = document.getElementsByTagName("script")[0];
  255.             s1.async = true;
  256.             s1.src = 'https://embed.tawk.to/61ace691c82c976b71bfbd35/1fm5m9bhd';
  257.             s1.charset = 'UTF-8';
  258.             s1.setAttribute('crossorigin', '*');
  259.             s0.parentNode.insertBefore(s1, s0);
  260.         })();
  261.     </script>
  262. </div>-->
  263. <!--End of Tawk.to Script-->
  264. <style type="text/css">
  265.     .red {
  266.         color: red !important;
  267.     }
  268.     .err {
  269.         border-color: #dc3545;
  270.         padding-right: calc(1.5em + 0.75rem);
  271.         background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  272.         background-repeat: no-repeat;
  273.         background-position: right calc(0.375em + 0.1875rem) center;
  274.         background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
  275.     }
  276. </style>
  277. </body>
  278. </html>