src/Resources/views/Default/base.html.twig line 1

Open in your IDE?
  1. {% set route = app.request.attributes.get('_route') %}
  2. {% set route_params =
  3. app.request.attributes.get('_route_params') %}
  4. <!DOCTYPE html>
  5. <html lang="{{ app.request.locale|split('_')[0] }}">
  6. <head>
  7.     <meta charset="utf-8" />
  8.     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  9.     <title>Nanoe
  10.         {% block title %}{% endblock %}
  11.     </title>
  12.     <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
  13.     <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
  14.     <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
  15.     <link rel="manifest" href="/site.webmanifest" />
  16.     <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
  17.     <meta name="msapplication-TileColor" content="#da532c" />
  18.     <meta name="theme-color" content="#ffffff" />
  19.     <script src="{{ asset('js/jquery.min.js') }}"></script>
  20.     <script>
  21.         /*$(document).ready(function () {
  22.             var userLang = navigator.language || navigator.userLanguage;
  23.             var lang = '';
  24.             if(userLang === 'fr-FR'){
  25.                 lang = '/fr/';
  26.             } else {
  27.                 lang = '/en/';
  28.             }
  29.             
  30.             let href = location.href;
  31.             let href_rep = href.replace('/en/', lang);
  32.             $(location).attr('href', href_rep);
  33.         });*/
  34.     </script>
  35.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/main.css') }}" />
  36.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('font-awesome/css/font-awesome.css') }}" />
  37.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/bootstrap.min.css') }}" />
  38.     <link rel="stylesheet"
  39.         href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css" />
  40.     <link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet" />
  41.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/toastr.css') }}" />
  42.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/style.css') }}" />
  43.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/animate.css') }}" />
  44.     <link rel="stylesheet" type="text/css" media="screen"
  45.         href="{{ asset('css/plugins/dataTables/datatables.min.css') }}" />
  46.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/sweetalert.css') }}" />
  47.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/jasny-bootstrap.min.css') }}" />
  48.     <link rel="stylesheet" type="text/css" media="screen"
  49.         href="{{ asset('autocompleter/jquery.autocompleter.css') }}" />
  50.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/jquery.steps.css') }}" />
  51.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/toastr.css') }}" />
  52.     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset('css/refonte.css') }}" />
  53.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css">
  54.     {% block stylesheets %}{% endblock %}
  55.     <style>
  56.         ul.dropdown-menu a.dropdown {
  57.             display: none;
  58.         }
  59.         .m-left-2 {
  60.             margin-left: 2rem;
  61.         }
  62.         .mb-2 {
  63.             margin-bottom: 2rem;
  64.         }
  65.         .mb-4 {
  66.             margin-bottom: 4rem;
  67.         }
  68.         .mb-1 {
  69.             margin-bottom: 1rem;
  70.         }
  71.         .pt-1 {
  72.             padding-top: 1rem;
  73.         }
  74.         ul.pagination {
  75.             margin-top: 2rem !important;
  76.         }
  77.     </style>
  78. </head>
  79. <body class="{% block bodyClass %}{% endblock %}">
  80.     {% if is_granted("IS_AUTHENTICATED_FULLY") %}
  81.     {% include
  82.     '@App/Default/menu.html.twig' %}
  83.     {% endif %}
  84.     <div id="wrapper">
  85.         <div id="page-wrapper" class="gray-bg">
  86.             <div class="row border-bottom">
  87.                 <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
  88.                     <div class="navbar-header">
  89.                         <a class="navbar-minimalize minimalize-styl-2 btn btn-primary" href="#">
  90.                             <i class="fa fa-bars"></i>
  91.                         </a>
  92.                     </div>
  93.                     <div class="pe-5">
  94.                         <ul class style="
  95.                                                       padding-right: 20px;
  96.                                                       float: right;
  97.                                                       list-style: none;
  98.                                                       display: inline-flex;
  99.                                                       margin-top: 1rem;
  100.                                                     ">
  101.                             <li style="margin-right: 1rem">
  102.                                 <a class="dropdown-item"
  103.                                     href="{{ path('app.dashboard.change_locale', {_locale: 'en'}) }}">English</a>
  104.                             </li>
  105.                             <li>
  106.                                 <a class="dropdown-item"
  107.                                     href="{{ path('app.dashboard.change_locale', {_locale: 'fr'}) }}">Français</a>
  108.                             </li>
  109.                         </ul>
  110.                     </div>
  111.                 </nav>
  112.             </div>
  113.             <div class="row wrapper border-bottom white-bg page-heading">
  114.                 <div class="col-sm-12">
  115.                     <h2 style="font-weight: 600;">{{ pageTitle|default('') }}</h2>
  116.                 </div>
  117.             </div>
  118.             <span id="pinImage" data-src="{{ asset('img/default_pin.png') }}"></span>
  119.             <div></div>
  120.             {% block content %}{% endblock %}
  121.         </div>
  122.     </div>
  123.     <script src="{{ asset('js/bootstrap.min.js') }}"></script>
  124.     <script src="{{ asset('js/toastr.min.js') }}"></script>
  125.     <script src="{{ asset('js/jquery.metisMenu.js') }}"></script>
  126.     <script src="{{ asset('js/jquery.slimscroll.min.js') }}"></script>
  127.     <script src="{{ asset('js/inspinia.js') }}"></script>
  128.     <script src="{{ asset('js/bootstrap-datepicker.min.js') }}"></script>
  129.     <script src="{{ asset('js/pace.min.js') }}"></script>
  130.     <script src="{{ asset('js/datatables.min.js') }}"></script>
  131.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/4.0.0/js/jasny-bootstrap.min.js"
  132.         integrity="sha512-T+qL8JzVjquTv+yKR64v+58O+GVCe7A68gbJTzFVs76I7iAcgwisXKyOTaeKZaekcHeiG65p48NDqcMmPgnvIA=="
  133.         crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  134.     <script src="{{ asset('js/sweetalert.min.js') }}"></script>
  135.     <script src="{{ asset('autocompleter/jquery.autocompleter.min.js') }}"></script>
  136.     {% if app.request.locale == 'en' %}
  137.     <script src="{{ asset('js/nanoe.js') }}"></script>
  138.     {% else %}
  139.     <script src="{{ asset('js/translations/nanoe_fr.js') }}"></script>
  140.     {% endif %}
  141.     <script src="{{ asset('js/scrollbare.js') }}"></script>
  142.     <script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
  143.     <script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
  144.     <script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
  145.     <script src="https://cdn.datatables.net/plug-ins/1.13.4/sorting/date-euro.js"></script>
  146.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js"></script>
  147.     {#
  148.     <script src="{{ asset('bundles/bazingajstranslation/js/translator.min.js') }}"></script> #}
  149.     {% block javascripts %}{% endblock %}
  150.     <!-- minify after dev -->
  151.     
  152.     <script>
  153.         document.addEventListener('DOMContentLoaded', function () {
  154.             // Formattage automatique des éléments affichant un nombre
  155.             document.querySelectorAll('.separate-milliers[data-number]').forEach(el => {
  156.                 const number = parseFloat(el.dataset.number);
  157.                 if (!isNaN(number)) {
  158.                     el.textContent = new Intl.NumberFormat('fr-FR').format(number);
  159.                 }
  160.             });
  161.             // Ajout live dans les inputs de type text
  162.             document.querySelectorAll('.separate-milliers[data-separateur="true"]').forEach(input => {
  163.                 input.addEventListener('input', function () {
  164.                     let raw = this.value.replace(/\s+/g, '').replace(/\D/g, '');
  165.                     if (raw) {
  166.                         this.value = raw.replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
  167.                     } else {
  168.                         this.value = '';
  169.                     }
  170.                 });
  171.             });
  172.         });
  173.     
  174.     </script>
  175.     <script type="text/javascript">
  176.         {% for type, messages in app.session.flashBag.all %}
  177.         {% for message in messages %}
  178.         toastr.options = {
  179.             "closeButton": true,
  180.             "debug": false,
  181.             "newestOnTop": false,
  182.             "progressBar": true,
  183.             "positionClass": "toast-top-right",
  184.             "preventDuplicates": false,
  185.             "onclick": null,
  186.             "showDuration": "300",
  187.             "hideDuration": "1000",
  188.             "timeOut": "5000",
  189.             "extendedTimeOut": "1000",
  190.             "showEasing": "swing",
  191.             "hideEasing": "linear",
  192.             "showMethod": "fadeIn",
  193.             "hideMethod": "fadeOut",
  194.             "escapeHtml": false
  195.         }
  196.         toastr["{{ type }}"]("{{ message|trans|raw }}"){% endfor %}
  197.         {% endfor %}
  198.         $(document).ready(function () {
  199.             $('[data-toggle="tooltip"]').tooltip();
  200.         });
  201.     </script>
  202.     <script type="text/javascript">/*$(function() {
  203. $('.datetimepicker').datetimepicker({
  204. language: 'pt-BR'
  205. });
  206. }); */</script>
  207.     <script type="text/javascript">
  208.         // scroll-bare plugins
  209.         (function ($) {
  210.             $(window).on("load", function () {
  211.                 $(".scroll-liste").mCustomScrollbar({                         axis: "yx",     // custom scroll ver,hor scroll
  212.                         callbacks: {    // callback for thead,tbody scroll
  213.                             whileScrolling: function () {
  214.                                 $(".dataTables_scrollHead").scrollLeft(this.mcs.left * -1);
  215.                             },
  216.                         }, });
  217.             });
  218.         })(jQuery);
  219.     </script>
  220. </body>
  221. </html>