templates/base.html.twig line 1

  1. <!DOCTYPE html>
  2. <html lang="fr" class="h-100">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>{% block title %}B2BNaturamedicatrix{% endblock %}</title>
  7.     
  8.     <!-- Meta tags pour empêcher le cache des pages HTML -->
  9.     <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
  10.     <meta http-equiv="Pragma" content="no-cache">
  11.     <meta http-equiv="Expires" content="0">
  12.     <meta name="app-version" content="{{ global_version() }}">
  13.     <link rel="icon"
  14.           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>">
  15.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
  16.           integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
  17.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"
  18.           integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg=="
  19.           crossorigin="anonymous" referrerpolicy="no-referrer"/>
  20.     <link rel="stylesheet" href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css">
  21.     <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.4.1/css/buttons.dataTables.min.css">
  22.     <link rel="stylesheet" href="{{ '/css/cart.css?v=' ~ random() }}">
  23.     <link rel="stylesheet" href="{{ '/css/register.css?v=' ~ random() }}">
  24.     <link rel="stylesheet" href="{{ '/css/profile.css?v=' ~ random() }}">
  25.     <link rel="stylesheet" href="{{ '/css/login.css?v=' ~ random() }}">
  26.     <link rel="stylesheet" href="{{ '/css/asidePromo.css?v=' ~ random() }}">
  27.     <link rel="stylesheet" href="{{ '/css/modal.css?v=' ~ random() }}">
  28.     <link rel="stylesheet" href="{{ '/css/products.css?v=' ~ random() }}">
  29.     <link rel="stylesheet" href="{{ '/css/footer.css?v=' ~ random() }}">
  30.     <link rel="stylesheet" href="{{ '/css/nav.css?v=' ~ random() }}">
  31.     <link rel="stylesheet" href="{{ '/css/generalConditions.css?v=' ~ random() }}">
  32.     <link rel="stylesheet" href="{{ '/css/video.css?v=' ~ random() }}">
  33.     <link rel="stylesheet" href="{{ '/css/calendarActionShock.css?v=' ~ random() }}">
  34.     <link rel="stylesheet" href="{{ '/css/main.css?v=' ~ random() }}">
  35.     <link rel="stylesheet" href="{{ '/css/utilities.css?v=' ~ random() }}">
  36.     <link rel="stylesheet" href="{{ '/css/rebate-progress.css?v=' ~ random() }}">
  37.     <link rel="stylesheet" href="{{ '/css/admin-notification-badge.css?v=' ~ random() }}">
  38.     <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
  39.     <script src="https://cdn.jsdelivr.net/npm/he/he.js"></script>
  40.     <script src="{{ '/js/main.js?v=' ~ random() }}" defer></script>
  41.     <script src="{{ '/js/nav.js?v=' ~ random() }}" defer></script>
  42.     <script src="{{ '/js/rebate-progress.js?v=' ~ random() }}" defer></script>
  43.     {% block stylesheets %}
  44.         {{ encore_entry_link_tags('app') }}
  45.     {% endblock %}
  46. </head>
  47. {# Bandeau congés  #}
  48. {% set holidayBannerEndDate = '2026-08-10' %}
  49. {% set showHolidayBanner = "now"|date('Y-m-d') < holidayBannerEndDate %}
  50. <body class="d-flex flex-column h-100 body-content{% if showHolidayBanner %} has-holiday-banner{% endif %}{% block body_class %}{% endblock %}">
  51. {% if showHolidayBanner %}
  52. <div class="site-announcement" role="status">
  53.     <div class="container site-announcement__inner">
  54.         <i class="fa-solid fa-umbrella-beach" aria-hidden="true"></i>
  55.         <span>Notre équipe est en congé annuel du <strong>3 au 9 août inclus</strong>. Les commandes reçues à partir du <strong>vendredi 31 juillet</strong> seront traitées dès notre retour le <strong>lundi 10 août</strong>.</span>
  56.     </div>
  57. </div>
  58. {% endif %}
  59. {% if is_granted('IS_AUTHENTICATED_FULLY') %}
  60. <nav class="navbarResponsive{% if clients['infocommercial'] != null %} has-extended-control{% endif %}">
  61.     <div class="container">
  62.         <div class="navbarLogo">
  63.             <a href="{{ path('products') }}">
  64.                 <img src="{{ asset('uploads/img/media/logo-naturamedicatrix-pro-v2.png') }}" alt="logo-naturamedicatrix-pro"/>
  65.             </a>
  66.         </div>
  67.         <div class="navbar-bottom-row">
  68.             <div id="navbar">
  69.                 <ul>
  70.                     <li>
  71.                         <a class="navlinkUnderline" href="{{ path('products') }}">
  72.                             <span class="navlinkText backgroundTextNav"><i class="fa-solid fa-house me-2"></i>Commandes produits</span>
  73.                         </a>
  74.                     </li>
  75.                     <li>
  76.                         <a class="navlinkUnderline" href="{{ path('video') }}">
  77.                             <span class="navlinkText backgroundTextNav"><i class="far fa-play-circle me-2"></i>Informations produits</span>
  78.                         </a>
  79.                     </li>
  80.                     <li>
  81.                         <a class="navlinkUnderline" href="#">
  82.                             <span class="navlinkText backgroundTextNav btn-dl-tarif"><i class="far fa-arrow-alt-circle-down me-2"></i>Télécharger les derniers tarifs</span>
  83.                         </a>
  84.                     </li>
  85.                 </ul>
  86.             </div>
  87.             <!-- Mobile menu toggle -->
  88.             <button class="mobile-menu-toggle" id="mobileMenuToggle" aria-label="Menu mobile" aria-expanded="false">
  89.                 <span></span>
  90.                 <span></span>
  91.                 <span></span>
  92.             </button>
  93.             <div class="navPartieUserAndCart">
  94.             {% if is_granted('ROLE_COMMERCIAL') %}
  95.                 <div class="commercialControl{% if clients['infocommercial'] != null %} has-active-control{% endif %}">
  96.                     {% if clients['infocommercial'] != null %}
  97.                         <a class="navAnimate commercial-status" data-bs-toggle="modal" data-bs-target="#takeControlModal" href="#">
  98.                             <i class="fas fa-user-check"></i>
  99.                             <span>{{ clients['infocommercial'].customer ? clients['infocommercial'].customer.email : 'Client inconnu' }}</span>
  100.                         </a>
  101.                     {% else %}
  102.                         <a class="navAnimate commercial-control" data-bs-toggle="modal" data-bs-target="#takeControlModal" href="#">
  103.                             <i class="fas fa-users-cog"></i>
  104.                             <span>Contrôle client</span>
  105.                         </a>
  106.                     {% endif %}
  107.                 </div>
  108.             {% endif %}
  109.             <div class="userCart">
  110.                 <div class="dropdown">
  111.                     {% if is_granted('ROLE_ADMIN') %}
  112.                         {% set adminNotifications = get_admin_notifications() %}
  113.                         {% set totalNotifications = adminNotifications|length > 0 ? adminNotifications|reduce((carry, notif) => carry + notif.count, 0) : 0 %}
  114.                     {% endif %}
  115.                     <a class="navAnimate dropdown-toggle user-dropdown-wrapper" href="#" id="userDropdown" role="button"
  116.                        data-bs-toggle="dropdown"
  117.                        aria-haspopup="true" aria-expanded="false">
  118.                         <i class="user-logo fas fa-user"></i>
  119.                         {% if is_granted('ROLE_ADMIN') and totalNotifications > 0 %}
  120.                             <span class="user-notification-indicator">
  121.                                 <i class="fas fa-bell"></i>
  122.                             </span>
  123.                         {% endif %}
  124.                         <span>{{ app.user.email }}</span>
  125.                     </a>
  126.                     <div class="dropdown-menu dropdown-menu-right" aria-labelledby="userDropdown">
  127.                         <a class="dropdown-item" href="{{ path('profile') }}">Mon profil</a>
  128.                         <a class="dropdown-item" href="{{ path('ordersHistory') }}">Historiques des commandes</a>
  129.                         {# <a class="dropdown-item" href="{{ path('profil_invoices') }}">Factures</a> #}
  130.                         <a class="dropdown-item" href="https://naturamedicatrix.photo/" target="_blank">Bibliothèque photos</a>
  131.                         <a class="dropdown-item" href="{{ path('app_logout') }}">Déconnexion</a>
  132.                         {% if is_granted('ROLE_ADMIN') %}
  133.                             <a class="dropdown-item admin-link" href="{{ path('admin') }}">
  134.                                 <span>Administration</span>
  135.                                 {% if totalNotifications > 0 %}
  136.                                     <span class="admin-notification-badge">
  137.                                         {{ totalNotifications }}
  138.                                         <div class="admin-notification-tooltip">
  139.                                             <ul class="admin-alerts-list">
  140.                                                 {% for notification in adminNotifications %}
  141.                                                     <li>{{ notification.message }}</li>
  142.                                                 {% endfor %}
  143.                                             </ul>
  144.                                         </div>
  145.                                     </span>
  146.                                 {% endif %}
  147.                             </a>
  148.                         {% endif %}
  149. {#                        {% if is_granted('ROLE_COMMERCIAL') %}#}
  150. {#                            <a class="dropdown-item" href="{{ path('commercial_customer_informations') }}">Info client</a>#}
  151. {#                        {% endif %}#}
  152.                     </div>
  153.                 </div>
  154.             </div>
  155.             <div id="myCart">
  156.                 <a class="navAnimate" href="{{ path('cartView') }}"><i id="myCartIcon" class="cart-logo fas fa-shopping-cart"></i>
  157.                     Panier <span id="myCartQuantity" data-no-rebate-qty="{{ noRebateQty }}">{{ basketContents }}</span>
  158.                 </a>
  159.             </div>
  160.         </div>
  161.     </div>
  162.     </div>
  163.     
  164.     <!-- Barre de progression des remises -->
  165.     <div class="rebate-progress-bar" id="rebateProgressBar" style="display: none;">
  166.         <div class="container progress-container">
  167.             <div class="progress-content">
  168.                 <div class="progress-info">
  169.                     <span class="current-status" id="currentStatus">
  170.                         <span id="statusText">Ajoutez des produits pour débloquer les remises</span>
  171.                     </span>
  172.                     <span class="next-target" id="nextTarget">
  173.                         <strong id="nextPalierText">4 produits → 13%</strong>
  174.                     </span>
  175.                 </div>
  176.                 <div class="progress-container">
  177.                     <div class="progress-track">
  178.                         <div class="progress-fill" id="progressFill" style="width: 0%"></div>
  179.                         <div class="progress-markers" id="progressMarkers"></div>
  180.                     </div>
  181.                     <div class="progress-percentage" id="progressPercentage">0%</div>
  182.                 </div>
  183.             </div>
  184.         </div>
  185.     </div>
  186. </nav>
  187. {% endif %}
  188. {% block body %}{% endblock %}
  189. {% block footer %}
  190.     <!-- Footer -->
  191.     {% if is_granted('IS_AUTHENTICATED_FULLY') %}
  192.     <footer class="footer footer-b2b mt-auto">
  193.         <div class="footer-top">
  194.             <div class="container footer-shell">
  195.                 <div class="footer-intro">
  196.                     <div class="footer-intro-badge">
  197.                         <i class="fab fa-envira" aria-hidden="true"></i>
  198.                         <span>Espace B2B Professionnel</span>
  199.                     </div>
  200.                     <p class="footer-intro-text">Coordonnées commerciales, administratives et scientifiques</p>
  201.                 </div>
  202.                 <section class="row g-4 footer-grid">
  203.                     <div class="col-12 col-lg-4">
  204.                         <article class="footer-panel">
  205.                             <h3 class="footer-panel-title">Belgique</h3>
  206.                             <address class="footer-address-block">
  207.                                 22, rte des Fagnes<br/>B-4190 Ferrières<br/>Belgique
  208.                             </address>
  209.                             <ul class="footer-list">
  210.                                 <li><i class="fas fa-mobile-alt" aria-hidden="true"></i><span>04 268 18 41</span></li>
  211.                                 <li><i class="fas fa-mobile-alt" aria-hidden="true"></i><span>04 349 03 03</span></li>
  212.                                 <li><i class="fas fa-fax" aria-hidden="true"></i><span>FAX : 02 893 02 54</span></li>
  213.                                 <li><i class="fa-solid fa-envelope" aria-hidden="true"></i><a href="mailto:commande@naturamedicatrix.be">commande@naturamedicatrix.be</a></li>
  214.                                 <li><i class="fa-solid fa-receipt" aria-hidden="true"></i><span>TVA : BE 0543.862.766</span></li>
  215.                             </ul>
  216.                             <div class="footer-bank-box">
  217.                                 <strong>(Belgique)</strong><br/>
  218.                                 <i class="fa-solid fa-building-columns" aria-hidden="true"></i>
  219.                                 BE94 7320 3186 0814
  220.                                 <span class="bank-bic">(BIC: CREGBEBB)</span>
  221.                             </div>
  222.                             {# <img class="footer-mascot" src="{{ asset('img/leafy/leafy4x4.png') }}" alt="Leafy Footer"> #}
  223.                         </article>
  224.                     </div>
  225.                     <div class="col-12 col-lg-4">
  226.                         <article class="footer-panel">
  227.                             <h3 class="footer-panel-title">France / Luxembourg</h3>
  228.                             <address class="footer-address-block">
  229.                                 8, Hannert dem Duarref<br/>L-9772 Troine (Wincrange)<br/>Grand-Duché de Luxembourg
  230.                             </address>
  231.                             <ul class="footer-list">
  232.                                 <li><i class="fas fa-mobile-alt" aria-hidden="true"></i><span>09 77 42 37 05 (France)</span></li>
  233.                                 <li><i class="fas fa-mobile-alt" aria-hidden="true"></i><span>+352 20 88 11 95 (Luxembourg)</span></li>
  234.                                 <li><i class="fas fa-fax" aria-hidden="true"></i><span>FAX : +33 9 74 48 31 02</span></li>
  235.                                 <li><i class="fa-solid fa-envelope" aria-hidden="true"></i><a href="mailto:commande@naturamedicatrix.fr">commande@naturamedicatrix.fr</a></li>
  236.                                 <li><i class="fa-solid fa-envelope" aria-hidden="true"></i><a href="mailto:commande@naturamedicatrix.lu">commande@naturamedicatrix.lu</a></li>
  237.                                 <li><i class="fa-solid fa-receipt" aria-hidden="true"></i><span>TVA : LU26 78 82 81</span></li>
  238.                                 <li><i class="fa-solid fa-receipt" aria-hidden="true"></i><span>TVA : FR39802131615</span></li>
  239.                             </ul>
  240.                             <div class="footer-bank-box">
  241.                                 <strong>(Luxembourg)</strong><br/>
  242.                                 <i class="fa-solid fa-building-columns" aria-hidden="true"></i>
  243.                                 LU09 0141 6495 2300 0000
  244.                                 <span class="bank-bic">(BIC: CELLLULL)</span>
  245.                             </div>
  246.                             <div class="footer-bank-box">
  247.                                 <strong>(France)</strong><br/>
  248.                                 <i class="fa-solid fa-building-columns" aria-hidden="true"></i>
  249.                                 FR76 1670 6050 0753 9617 1298 620
  250.                                 <span class="bank-bic">(BIC: AGRIFRPP867)</span>
  251.                             </div>
  252.                         </article>
  253.                     </div>
  254.                     <div class="col-12 col-lg-4">
  255.                         <article class="footer-panel footer-panel-scientific">
  256.                             <h3 class="footer-panel-title">Une question ? Contactez notre scientifique</h3>
  257.                             <div class="info-scientific">
  258.                                 <p class="scientific-name">Fabien Piasco</p>
  259.                                 <p class="scientific-title">Diététicien-nutritionniste</p>
  260.                                 <p class="scientific-desc">
  261.                                     D.E.S.S. en nutrition Alimentation fonctionnelle et santé (U. Laval, Ca)
  262.                                     D.U. Nutrition et maladies métaboliques (U. Rennes I)
  263.                                     Diététicien D.E. / Diplômé en neuro-nutrition (SiiN)
  264.                                 </p>
  265.                                 <ul class="footer-list footer-list-science">
  266.                                     <li><i class="fas fa-mobile-alt" aria-hidden="true"></i><span>04 85 44 01 24 (France)</span></li>
  267.                                     <li><i class="fas fa-mobile-alt" aria-hidden="true"></i><span>03 66 88 02 34 (France)</span></li>
  268.                                 </ul>
  269.                             </div>
  270.                         </article>
  271.                     </div>
  272.                 </section>
  273.             </div>
  274.         </div>
  275.         <div class="footer-copyright">
  276.             <div class="container footer-copyright-inner">
  277.                 <span>© {{ "now"|date("Y") }} NATURAMedicatrix</span>
  278.                 <div class="footer-copyright-links">
  279.                     <a href="{{ path('accueil') }}">Accueil</a>
  280.                     <a href="https://www.instagram.com/naturamedicatrixpro/" target="_blank" rel="noopener noreferrer" aria-label="Instagram NATURAMedicatrix Pro">
  281.                         <i class="fab fa-instagram" aria-hidden="true"></i> Instagram
  282.                     </a>
  283.                 </div>
  284.             </div>
  285.         </div>
  286.     </footer>
  287.     {% endif %}
  288.     <!-- Footer -->
  289.     <div class="modal fade" id="takeControlModal" tabindex="-1" aria-labelledby="takeControlModalLabel" aria-hidden="true">
  290. {#    {{ dump(clients['clients'][7].AdditionalCompanyInformation[0].tva) }}#}
  291.         <div class="modal-dialog modal-dialog-centered">
  292.             <div class="modal-content">
  293.                 <div class="modal-header">
  294.                     <h5 class="modal-title text-center w-100">Prise de contrôle client</h5>
  295.                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  296.                 </div>
  297.                 <div class="modal-body p-4">
  298.                     <form action="{{ path('take_control') }}" method="post" class="w-100">
  299.                         <div class="mb-4">
  300.                             <div class="form-floating mb-3">
  301.                                 <input type="text" id="searchInput" placeholder="Rechercher un client..." class="form-control" />
  302.                                 <label for="searchInput">Rechercher un client...</label>
  303.                             </div>
  304.                             
  305.                             <div class="form-floating">
  306.                                 <select class="form-select" name="userControlledId" id="userControlledId">
  307.                                     <option value="">Sélectionner un client</option>
  308.                                     {% for client in clients['clients'] %}
  309.                                         {% for info in client.AdditionalCompanyInformation %}
  310.                                             <option value="{{ client.id }}">{{ info.tva }} - {{ client.email }}</option>
  311.                                         {% endfor %}
  312.                                     {% endfor %}
  313.                                 </select>
  314.                                 <label for="userControlledId">Choisir un client</label>
  315.                             </div>
  316.                         </div>
  317.                         
  318.                         <div class="d-grid gap-2">
  319.                             <button type="submit" class="btn modern-btn-small-primary py-3">
  320.                                 <i class="fas fa-user-check me-2"></i>
  321.                                 Prendre le contrôle du client
  322.                             </button>
  323.                         </div>
  324.                     </form>
  325.                     {% if clients['infocommercial'] != null %}
  326.                     <div class="border-0 pt-0 mt-2">
  327.                         <div class="d-grid w-100">
  328.                             <a href="{{ path('close_control') }}" class="btn btn-back py-3">
  329.                                 <i class="fas fa-user-times me-2"></i>
  330.                                 Arrêter le contrôle du client
  331.                             </a>
  332.                         </div>
  333.                     </div>
  334.                     {% endif %}
  335.                 </div>
  336.                 
  337.                 
  338.             </div>
  339.         </div>
  340.     </div>
  341.     <div class="modal fade" id="modal-invoices-dl" tabindex="-1" aria-hidden="true" aria-labelledby="modalTarifsLabel">
  342.         <div class="modal-dialog modal-lg modal-dialog-centered">
  343.             <div class="modal-content">
  344.                 <div class="modal-header">
  345.                     <h5 class="modal-title" id="modalTarifsLabel">Télécharger les derniers tarifs</h5>
  346.                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  347.                 </div>
  348.                 <div class="modal-body">
  349.                     <div class="row g-4">
  350.                         <!-- Section PDF -->
  351.                         <div class="col-md-7">
  352.                             <div class="tarif-section">
  353.                                 <div class="tarif-section-header">
  354.                                     <i class="fa-solid fa-file-pdf tarif-icon-pdf"></i>
  355.                                     <h3 class="tarif-section-title">Tarifs PDF</h3>
  356.                                 </div>
  357.                                 <div class="tarif-cards">
  358.                                     <div class="tarif-card">
  359.                                         <div class="tarif-card-body">
  360.                                             <h6 class="tarif-card-title">Tarif NATURAMedicatrix — Olivie Pharma®</h6>
  361.                                             <span class="tarif-card-period">2<sup>ème</sup> semestre 2026</span>
  362.                                             <a href="{{ asset('tarifs/TARIF-Pro-Natura-Olivie-2026.pdf') }}" target="_blank" class="btn-tarif">
  363.                                                 <i class="fa-solid fa-download me-2"></i>Télécharger
  364.                                             </a>
  365.                                         </div>
  366.                                     </div>
  367.                                     <div class="tarif-card">
  368.                                         <div class="tarif-card-body">
  369.                                             <h6 class="tarif-card-title">Tarif Dr. Jacob's®</h6>
  370.                                             <span class="tarif-card-period">2<sup>ème</sup> semestre 2026</span>
  371.                                             <a href="{{ asset('tarifs/TARIF-Professionnel-JACOB\'s-2026.pdf') }}" target="_blank" class="btn-tarif">
  372.                                                 <i class="fa-solid fa-download me-2"></i>Télécharger
  373.                                             </a>
  374.                                         </div>
  375.                                     </div>
  376.                                 </div>
  377.                             </div>
  378.                         </div>
  379.                         <!-- Section Excel -->
  380.                         <div class="col-md-5">
  381.                             <div class="tarif-section">
  382.                                 <div class="tarif-section-header">
  383.                                     <i class="fa-solid fa-file-excel tarif-icon-excel"></i>
  384.                                     <h3 class="tarif-section-title">Tarif Excel</h3>
  385.                                 </div>
  386.                                 <div class="tarif-cards">
  387.                                     <div class="tarif-card">
  388.                                         <div class="tarif-card-body">
  389.                                             <h6 class="tarif-card-title">Tarif 2026</h6>
  390.                                             <span class="tarif-card-period">2<sup>ème</sup> semestre 2026</span>
  391.                                             {% if app.user.AdditionalCompanyInformation is defined %}
  392.                                                 {% for data in app.user.AdditionalCompanyInformation %}
  393.                                                     {% if data.companyCountry == "France" or data.companyCountry == "Luxembourg" %}
  394.                                                         <a href="{{ asset('tarifs/Tarif-Pro-2026-FR-semestre-2.xlsx') }}" target="_blank" class="btn-tarif">
  395.                                                             <i class="fa-solid fa-download me-2"></i>Télécharger
  396.                                                         </a>
  397.                                                     {% else %}
  398.                                                         <a href="{{ asset('tarifs/Tarif-Pro-2026-FR-semestre-2.xlsx') }}" target="_blank" class="btn-tarif">
  399.                                                             <i class="fa-solid fa-download me-2"></i>Télécharger
  400.                                                         </a>
  401.                                                     {% endif %}
  402.                                                 {% endfor %}
  403.                                             {% endif %}
  404.                                         </div>
  405.                                     </div>
  406.                                 </div>
  407.                             </div>
  408.                         </div>
  409.                     </div>
  410.                 </div>
  411.             </div>
  412.         </div>
  413.     </div>
  414. {% endblock %}
  415. <!-- CDN BOOTSTRAP 5 -->
  416. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
  417.         integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
  418.         crossorigin="anonymous"></script>
  419. <!-- CDN jQuery-->
  420. <script src="https://code.jquery.com/jquery-3.7.0.js" integrity="sha256-JlqSTELeR4TLqP0OG9dxM7yDPqX1ox/HfgiSLBj8+kM="
  421.         crossorigin="anonymous"></script>
  422. <!-- CDN Easing, jQueryUI (animations) -->
  423. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>
  424. <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
  425. <!-- CDN DATATABLES JS -->
  426. <script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>
  427. <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/dataTables.buttons.min.js"></script>
  428. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
  429. <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.html5.min.js"></script>
  430. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
  431. <script>
  432.     $(document).ready(function() {
  433.         $("#myInput").on("keyup", function() {
  434.             var value = $(this).val().toLowerCase();
  435.             $("#table_all_clients tr").filter(function() {
  436.                 $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
  437.             });
  438.         });
  439.         $('.btn-dl-tarif').click(function(e){
  440.             e.preventDefault(); // Empêche le comportement de lien par défaut
  441.             $('#modal-invoices-dl').modal('show'); // Ouvre le modal
  442.         });
  443.         var $options = $("#userControlledId option").clone(); // clone original options
  444.         $("#searchInput").on("keyup", function() {
  445.             var searchVal = this.value.toLowerCase();
  446.             $("#userControlledId").empty(); // remove all options
  447.             $options.each(function() {
  448.                 var text = $(this).text().toLowerCase();
  449.                 if (text.indexOf(searchVal) !== -1) {
  450.                     $("#userControlledId").append(this);
  451.                 }
  452.             });
  453.         });
  454.     });
  455. </script>
  456. {% block javascripts %}
  457.     {{ encore_entry_script_tags('app') }}
  458. {% endblock %}
  459. </body>
  460. </html>