templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <title>Monde Animal - {% block title %}Welcome!{% endblock %}</title>
  6.         <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>">
  7.         {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
  8.         {% block stylesheets %}
  9.             {{ encore_entry_link_tags('app') }}
  10.         {% endblock %}
  11.         <link rel="manifest" href="/manifest.json">
  12.         <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css">
  13.         <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
  14.         <link rel="stylesheet" href="https://bootswatch.com/5/zephyr/bootstrap.min.css">        
  15.         <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/css/bootstrap-select.min.css">
  16.         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.10.0/css/bootstrap-datepicker.min.css" integrity="sha512-34s5cpvaNG3BknEWSuOncX28vz97bRI59UnVtEEpFX536A7BtZSJHsDyFoCl8S7Dt2TPzcrCEoHBGeM4SUBDBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  17.         <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
  18.         <link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
  19.         <link rel="stylesheet" href="{{ asset('/assets/css/chosen/chosen.css') }}">
  20.         <link rel="stylesheet" href="{{ asset('/assets/css/bootstrap.css?v=2') }}">
  21.         <link rel="stylesheet" href="{{ asset('/assets/css/front.css') }}">
  22.         <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
  23.     </head>
  24.     <body>
  25.         {% if app.user %}
  26.             <div id="contentBody" class="row m-0">
  27.                 <div class="d-flex flex-column flex-shrink-0 p-0 pt-3 bg-light col-sm-3 col-md-2 sidebar">
  28.                     <a href="{{ path('home') }}" class="link-dark text-decoration-none text-center pb-1">
  29.                         <div><img class="w-50" src="https://mondeanimal.fr/img/monde-animal-logo-1619511373.jpg"></div>
  30.                     </a>
  31.                     <div class="container-fluid p-0">
  32.                         <div class="navbar navbar-expand-lg">
  33.                             <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#menu" aria-controls="menu" aria-expanded="false" aria-label="Toggle navigation">
  34.                                 <span class="navbar-toggler-icon"></span> {{'show'|trans}}
  35.                             </button>
  36.                             <div class="collapse navbar-collapse" id="menu">
  37.                                 <ul class="nav nav-pills">
  38.                                     <li class="nav-item">
  39.                                         <a href="{{ path('home') }}" class="nav-link pb-2 ps-4 {% if app.request.get('_route') == 'home' %} active {% endif %}" aria-current="page">
  40.                                             <i class="bi-subtract pe-3 ps-2" width="16" height="16"></i>
  41.                                             {{'Dashboard'|trans}}
  42.                                         </a>
  43.                                     </li>
  44.                                     {% if is_granted('ROLE_SUPERADMIN') %}
  45.                                         <li class="nav-item {% if (app.request.get('_route') == 'magasins') or (app.request.get('_route') == 'magasins') or (app.request.get('_route') == 'magasin') %}active{% endif %}">
  46.                                             <a href="{{ path('magasins') }}" class="nav-link pb-2 pe-0 ps-4 {% if app.request.get('_route') == 'magasins' %}active{% endif %}" aria-current="page" data-toggle="collapse" data-target="#collapseMenuMagasins" aria-expanded="false" aria-controls="collapseMenuMagasins">
  47.                                                 <i class="bi bi-house pe-3 ps-2" width="16" height="16"></i>
  48.                                                 {{'Magasins'|trans}}
  49.                                             </a>
  50.                                         </li>  
  51.                                     {% endif %}
  52.                                     <li class="nav-item {% if (app.request.get('_route') == 'users') or (app.request.get('_route') == 'users') or (app.request.get('_route') == 'user') %}active{% endif %}">
  53.                                         <a href="{{ path('users') }}" class="nav-link pb-2 pe-0 ps-4 {% if app.request.get('_route') == 'users' %}active{% endif %}" aria-current="page" data-toggle="collapse" data-target="#collapseMenuMagasins" aria-expanded="false" aria-controls="collapseMenuMagasins">
  54.                                             <i class="bi bi-house pe-3 ps-2" width="16" height="16"></i>
  55.                                             {{'Users'|trans}}
  56.                                         </a>
  57.                                     </li>    
  58.                                     <li class="nav-item {% if (app.request.get('_route') == 'clients' or app.request.get('_route') == 'client') %}active{% endif %}">
  59.                                         <a href="{{ path('clients') }}" class="nav-link pb-2 pe-0 ps-4 {% if app.request.get('_route') == 'clients' %}active{% endif %}" aria-current="page" data-toggle="collapse" data-target="#collapseMenuClients" aria-expanded="false" aria-controls="collapseMenuClients">
  60.                                             <i class="bi-person pe-3 ps-2" width="16" height="16"></i>
  61.                                             {{'Clients'|trans}}
  62.                                         </a>
  63.                                     </li>  
  64.                                     <li class="nav-item {% if (app.request.get('_route') == 'addresses' or app.request.get('_route') == 'address') %}active{% endif %}">
  65.                                         <a href="{{ path('addresses') }}" class="nav-link pb-2 pe-0 ps-4 {% if app.request.get('_route') == 'addresses' %}active{% endif %}" aria-current="page" data-toggle="collapse" data-target="#collapseMenuAddresses" aria-expanded="false" aria-controls="collapseMenuAddresses">
  66.                                             <i class="bi-geo-alt-fill pe-3 ps-2" width="16" height="16"></i>
  67.                                             {{'Addresses'|trans}}
  68.                                         </a>
  69.                                     </li>
  70.                                     {% set menuproduct = ['products', 'product', 'suppliers', 'supplier'] %}
  71.                                     <li class="nav-item {% if app.request.get('_route') in menuproduct %}active{% endif %}">
  72.                                         <a href="{{ path('products') }}" class="nav-link pb-2 pe-0 ps-4" aria-current="page" data-toggle="collapse" data-target="#collapseMenuProducts" aria-expanded="false" aria-controls="collapseMenuProducts">
  73.                                             <i class="bi-bookmark pe-3 ps-2" width="16" height="16"></i>
  74.                                             {{'Products'|trans}}
  75.                                         </a>
  76.                                         <ul class="collapse" id="collapseMenuProducts">
  77.                                             <li class="nav-item">
  78.                                                 <a href="{{ path('suppliers') }}" class="nav-link pb-2 pe-0 ps-4 text-none {% if app.request.get('_route') == 'suppliers' and app.request.get('id') == null %}active{% endif %}" aria-current="page">
  79.                                                     <i class="bi bi-arrow-return-right pe-3 ps-2" width="16" height="16"></i>
  80.                                                     {{'Fournisseurs'|trans}}
  81.                                                 </a>
  82.                                             </li>
  83.                                             <li class="nav-item">
  84.                                                 <a href="{{ path('products') }}" class="nav-link pb-2 pe-0 ps-4 text-none {% if app.request.get('_route') == 'products' and app.request.get('id') == null %}active{% endif %}" aria-current="page">
  85.                                                     <i class="bi bi-arrow-return-right pe-3 ps-2" width="16" height="16"></i>
  86.                                                     {{'Liste des produits'|trans}}
  87.                                                 </a>
  88.                                             </li>
  89.                                         </ul>
  90.                                     </li>   
  91.                                     <li class="nav-item {% if (app.request.get('_route') == 'orders' or app.request.get('_route') == 'order') %}active{% endif %}">
  92.                                         <a href="{{ path('orders') }}" class="nav-link pb-2 pe-0 ps-4 {% if app.request.get('_route') == 'orders' %}active{% endif %}" aria-current="page" data-toggle="collapse" data-target="#collapseMenuAddresses" aria-expanded="false" aria-controls="collapseMenuAddresses">
  93.                                             <i class="bi-geo-alt-fill pe-3 ps-2" width="16" height="16"></i>
  94.                                             {{'orders'|trans}}
  95.                                         </a>
  96.                                     </li> 
  97.                                     <li class="nav-item {% if (app.request.get('_route') == 'sales' or app.request.get('_route') == 'sale') %}active{% endif %}">
  98.                                         <a href="{{ path('sales') }}" class="nav-link pb-2 pe-0 ps-4 {% if app.request.get('_route') == 'sales' %}active{% endif %}" aria-current="page" data-toggle="collapse" data-target="#collapseMenuSales" aria-expanded="false" aria-controls="collapseMenuSales">
  99.                                             <i class="bi-geo-alt-fill pe-3 ps-2" width="16" height="16"></i>
  100.                                             {{'sales'|trans}}
  101.                                         </a>
  102.                                     </li>                     
  103.                                 </ul>
  104.                             </div>
  105.                         </div>
  106.                     </div>
  107.                 </div>
  108.                 <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 p-0" style="height: calc(100% - 36px);">
  109.                     <div class="bg-primary">
  110.                         <nav class="px-4 navbar navbar-expand-lg navbar-dark">
  111.                             <div class="container-fluid">
  112.                                 <div class="navbar-collapse justify-content-between">
  113.                                     <ul class="navbar-nav d-flex w-25">
  114.                                         <li class="nav-item w-100">
  115.                                             <form class="d-flex form_search w-100" action="{{ path('search')}}" method="POST">
  116.                                                 <input class="form-control me-2 w-100" type="search" placeholder="Search" value="{{ app.request.request.get('q', '') }}" aria-label="Search" name="q">
  117.                                                 <button type="submit"><i class="bi bi-search"></i></button>
  118.                                             </form>
  119.                                         </li>
  120.                                     </ul>
  121.                                     <ul class="navbar-nav d-flex">                            
  122.                                         <li class="nav-item dropdown">
  123.                                             <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  124.                                                 {{'Hi'|trans}} {{app.user.nom}} {{app.user.prenom}}
  125.                                             </a>
  126.                                             <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
  127.                                                 <a class="dropdown-item" href="{{ path('myaccount') }}">{{'My acount'|trans}}</a>
  128.                                                 {% if 'ROLE_ADMIN' in app.user.roles %}
  129.                                                 <a class="dropdown-item" href="{{ path('config') }}">{{'Configurations'|trans}}</a>
  130.                                                 {% endif %}
  131.                                                 <div class="dropdown-divider"></div>
  132.                                                 <a class="dropdown-item" href="{{ path('app_logout') }}">{{'Logout'|trans}}</a>
  133.                                             </div>
  134.                                         </li>
  135.                                     </ul>
  136.                                 </div>
  137.                             </div>                        
  138.                         </nav>
  139.                         <div class="pb-6 px-5">
  140.                             <div class="d-flex justify-content-between align-items-center">
  141.                                 <div class="columflex">
  142.                                     <h1 class="text-white mb-1">{% block page_title %}{% endblock %}</h1>
  143.                                     <nav aria-label="breadcrumb">
  144.                                         <ol class="breadcrumb">
  145.                                             <li class="breadcrumb-item"><a href="{{ path('home') }}">{{'Dashboard'|trans}}</a></li>
  146.                                             {% block breadcrumb %}{% endblock %}
  147.                                         </ol>
  148.                                     </nav>
  149.                                 </div>
  150.                                 <div class="columflex d-flex">
  151.                                     {% block buttons %}{% endblock %}   
  152.                                 </div>
  153.                             </div>                         
  154.                         </div>
  155.                     </div>
  156.                     
  157.                     <div {% if app.request.get('_route') != 'ticket' %}class="px-5" style="margin-top: -75px; padding-bottom: 100px !important;"{% else %}style="height: calc(100% - 36px)"{% endif %}>
  158.                         {% block body %}{% endblock %}
  159.                     </div>
  160.                 </div>
  161.             </div>
  162.         {% else %}
  163.             {% block bodyblank %}{% endblock %}
  164.         {% endif %}
  165.         
  166.         <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  167.         <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
  168.         <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>        
  169.         <script src="https://cdnjs.cloudflare.com/ajax/libs/dompurify/2.3.4/purify.min.js"></script>
  170.         <script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.14.0-beta2/dist/js/bootstrap-select.min.js"></script>
  171.         <script src="https://cdn.tiny.cloud/1/5yvqq6uhpi7te6pq4qbb2yceqcy5ddv9aal08sqkus28fcqu/tinymce/7/tinymce.min.js" referrerpolicy="origin"></script>
  172.         <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.10.0/js/bootstrap-datepicker.min.js" integrity="sha512-LsnSViqQyaXpD4mBBdRYeP6sRwJiJveh2ZIbW41EBrNmKxgr/LFZIiWT6yr+nycvhvauz8c2nYMhrP80YhG7Cw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  173.         <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  174.         <script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
  175.         <script src="{{ asset('/assets/js/chosen/chosen.jquery.js') }}"></script>
  176.         <script src="{{ asset('/assets/js/mondeanimal.js') }}"></script>
  177.         <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  178.         
  179.         {% if nbrOrders is defined %}
  180.             <script>
  181.                 var ctx = document.getElementById('ordersChart').getContext('2d');
  182.                 var chart = new Chart(ctx, {
  183.                     type: 'line',
  184.                     data: {
  185.                         labels: [
  186.                             {% for result in nbrOrders %}
  187.                                 "{{ result.day|date('d') }}",
  188.                             {% endfor %}
  189.                         ],
  190.                         datasets: [{
  191.                             data: [
  192.                                 {% for result in nbrOrders %}
  193.                                     {{ result.order_count }},
  194.                                 {% endfor %}
  195.                             ],
  196.                             borderColor: 'rgba(161, 188, 106, 1)',
  197.                             backgroundColor: 'rgba(0, 0, 0, 0)',
  198.                             fill: true,
  199.                             tension: 0.4
  200.                         }]
  201.                     },
  202.                     options: {
  203.                         scales: {
  204.                             x: {
  205.                                 title: {
  206.                                     display: true,
  207.                                     text: 'Jour'
  208.                                 }
  209.                             },
  210.                             y: {
  211.                                 title: {
  212.                                     display: true,
  213.                                     text: 'Nombre de commandes'
  214.                                 }
  215.                             }
  216.                         },
  217.                         plugins: {
  218.                             legend: {
  219.                                 display: false // Désactive la légende pour ne pas voir le label
  220.                             }
  221.                         }
  222.                     }                    
  223.                 });
  224.             </script>
  225.         {% endif %}
  226.         <script>
  227.             tinymce.init({
  228.               selector: 'textarea',
  229.               license_key: 'gpl|5yvqq6uhpi7te6pq4qbb2yceqcy5ddv9aal08sqkus28fcqu'
  230.             });
  231.         </script>
  232.         {% block javascripts %}
  233.             {{ encore_entry_script_tags('app') }}
  234.         {% endblock %}
  235.     </body>
  236. </html>