templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3.     <head>
  4.         <title>
  5.             {% block title %}{% endblock %}
  6.         </title>
  7.         {# <link rel="stylesheet" href="https://www.trousses.morintech.fr/2023/style.css"/>
  8.         
  9.             <link rel="stylesheet" href="https://www.trousses.morintech.fr/2023/table/style.css"/>
  10.             <script src="https://www.trousses.morintech.fr/2023/table/table.js"></script> #}
  11.         {% block metas %}
  12.             <meta name="viewport" content="width=device-width, initial-scale=1"/>
  13.             <meta charset="utf-8"/>
  14.             <meta name="turbo-cache-control" content="no-preview">
  15.         {% endblock %}
  16.         {# {% if app.request.get('_route') == 'mission_edit' %}
  17.                 <script>window.pipedriveLeadboosterConfig = {base: 'leadbooster-chat.pipedrive.com',companyId: 3957876,playbookUuid: 'a23ff3fa-178e-41ef-8983-6981c5144bcc',version: 2};(function () {var w = window;if (w.LeadBooster) {console.warn('LeadBooster already exists');} else {w.LeadBooster = {q: [],on: function (n, h) {this.q.push({ t: 'o', n: n, h: h });},trigger: function (n) {this.q.push({ t: 't', n: n });},};}})();</script><script src="https://leadbooster-chat.pipedrive.com/assets/loader.js" async></script>
  18.             {% endif %} ##}
  19.         {% block favicon %}
  20.             {% if is_agency() == true %}
  21.                 <link rel="shortcut icon" href="{{ asset(dynamic_favicon()) }}"/>
  22.             {% else %}
  23.                 <link rel="shortcut icon" href="{{ asset('build/media/favicon.ico') }}"/>
  24.             {% endif %}
  25.         {% endblock %}
  26.         <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  27.         <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  28.         <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
  29.         <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
  30.         <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
  31.         {# <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script> #}
  32.         {% block stylesheets %}
  33.             {{ encore_entry_link_tags('plugins/global/plugins.bundle') }}
  34.             {{ encore_entry_link_tags('css/style.bundle') }}
  35.             {{ encore_entry_link_tags('app') }}
  36.         {% endblock %}
  37.         {% block scripts %}
  38.             {{ encore_entry_script_tags('app') }}
  39.         {% endblock %}
  40.     </head>
  41.     <body id="kt_body" class="header-tablet-and-mobile-fixed aside-enabled" {% if app.user.userData is not null  %}{% if app.user.userData.menuState == true %}data-kt-aside-minimize="on"{% endif %} {% endif %}>
  42.         {# {% if is_granted('ROLE_CLIENT_ADMIN') or is_granted('ROLE_CLIENT') or is_granted('ROLE_ADMIN_AGENCY')  %} #}
  43.             {% set userCompanyDataContent = get_user_company_data() %}
  44.             {% set user_primary_color = userCompanyDataContent.primary_color is not empty ? userCompanyDataContent.primary_color : '#f975c4'%}
  45.             {% set user_second_color = userCompanyDataContent.second_color is not empty ? userCompanyDataContent.second_color : '#08085c' %}
  46.             {% set user_text_color = userCompanyDataContent.text_color is not empty ? userCompanyDataContent.text_color : '#1968CD' %}
  47.             {% set user_icon_color = userCompanyDataContent.icon_color is not empty ? userCompanyDataContent.icon_color : '#4a4b68' %}
  48.             {% set user_background_color = userCompanyDataContent.background_color is not empty ? userCompanyDataContent.background_color : '#04006E' %}
  49.             {% set user_title_color = userCompanyDataContent.title_color is not empty ? userCompanyDataContent.title_color : '#08085c' %}
  50.             {% set user_company_logo = userCompanyDataContent.logo_company is not empty ? userCompanyDataContent.logo_company : '' %}
  51.             
  52.         {# {% else %}
  53.             {% set userCompanyDataContent = ''%}
  54.             {% set user_primary_color = '#f975c4' %}
  55.             {% set user_second_color = '#08085c' %}
  56.             {% set user_text_color = '#1968CD' %}
  57.             {% set user_icon_color = '#4a4b68' %}
  58.             {% set user_background_color = '#04006E' %}
  59.             {% set user_title_color = '#08085c' %}
  60.             {% set user_company_logo = '' %}
  61.             
  62.         {% endif %} #}
  63.         <style>
  64.             /* ___________ */
  65.             #modal-promo .close {
  66.   position: absolute;
  67.   right: 24px;
  68.   top: 10px;
  69.   font-size: 38px;
  70.   color: #fff;
  71.   opacity: 1;
  72. }
  73. #modal-promo .modal-content {
  74.   overflow: hidden;
  75. }
  76. #modal-promo .phone {
  77.   width: 100%;
  78. }
  79. #modal-promo .text-center {
  80.   padding: 2rem;
  81. }
  82. #modal-promo h2 {
  83.   font-size: clamp(22px, 1.458vw, 28px);
  84. }
  85. #modal-promo p {
  86.   font-size: clamp(16px, 0.938vw, 18px);
  87.   margin-top: 14px;
  88.   margin-bottom: 0;
  89. }
  90. #modal-promo p .bold {
  91.   font-weight: 700;
  92.   text-decoration: underline;
  93. }
  94. #modal-promo .qr-code {
  95.   margin-top: 16px;
  96. }
  97. #modal-promo .qr-code img {
  98.   max-width: 120px;
  99.   width: 100%;
  100. }
  101. #modal-promo .links {
  102.   display: flex;
  103.   justify-content: end;
  104.   margin-top: 24px;
  105. }
  106. @media (max-width: 576px) {
  107.   #modal-promo .links {
  108.     justify-content: center;
  109.   }
  110. }
  111. #modal-promo .links a {
  112.   color: #000;
  113.   font-size: 16px;
  114.   text-decoration: underline !important;
  115. }
  116. #modal-promo .links a.closed {
  117.   font-size: 14px;
  118. }
  119.             /* --------------- */
  120.             {
  121.                 # début custom color #
  122.             }
  123.             :root {
  124.                 --my-flow-pink: {{user_primary_color}}; /*couleur principale #f975c4*/
  125.                 --my-flow-secondaire: {{user_second_color}}
  126.                 ; /*couleur secondaire #08085c*/
  127.                 --text-active: {{user_text_color}}
  128.                 ; /* couleur text active #1968CD*/
  129.                 --bs-custom-blue: var(--my-flow-secondaire) !important;
  130.                 --bs-custom-pink:var(--my-flow-pink) !important;
  131.                 --fond-status: pink; /* couleur fond status #04006E*/
  132.                 --my-flow-black: #4a4b68; /*couleur des icones*/
  133.                 --my-flow-block-fond: {{user_background_color}}
  134.                 ; /*couleur fond des blocs */
  135.                 --my-flow-titre-block: {{user_title_color}}
  136.                 ; /*couleur fond des blocs */
  137.                 --my-flow-text: {{user_title_color}}
  138.                 ; /* couleur des titre */
  139.                 --my-flow-black-rgb: 74, 75, 104;
  140.                 --my-flow-blue: #EDF6FE;
  141.                 --my-flow-light-pink: #F6E4F4;
  142.             }
  143.             {
  144.                 # debut Custom primary color #
  145.             }
  146.             body .btn-primary-custom,
  147.             body .bg-custom-pink,
  148.             body .button-for-edit-with-icon-play,
  149.             body .button-for-edit-with-icon-clock,
  150.             body .button-for-edit-with-icon-pen,
  151.             body .text-custom-pink,
  152.             body .text-custom-pink,
  153.             body .containt-planning > span {
  154.                 background-color: var(--my-flow-pink) !important;
  155.             }
  156.             .btn-check:checked + .btn.btn-primary,
  157.             .btn-check:active + .btn.btn-primary,
  158.             .btn.btn-primary:focus:not(.btn-active),
  159.             .btn.btn-primary:hover:not(.btn-active),
  160.             .btn.btn-primary:active:not(.btn-active),
  161.             .btn.btn-primary.active,
  162.             .btn.btn-primary.show,
  163.             .show > .btn.btn-primary {
  164.                 color: #181C32 !important;
  165.                 text-decoration: none !important;
  166.             }
  167.             body .content-mission-tooltips .text-custom-pink,
  168.             body .bi-exclamation-triangle-fill {
  169.                 color: var(--my-flow-pink) !important;
  170.                 background-color: transparent !important;
  171.             }
  172.             body .profil-image-label:hover,
  173.             body .profil-image-delete:hover {
  174.                 background: var(--my-flow-pink) !important;
  175.             }
  176.             .back-line2 input:checked[type=checkbox],
  177.             input:checked[type=checkbox],
  178.             body .btn.btn-primary,
  179.             .btn-check:checked + .btn.btn-primary,
  180.             .btn-check:active + .btn.btn-primary,
  181.             .btn.btn-primary:focus:not(.btn-active),
  182.             .btn.btn-primary:hover:not(.btn-active),
  183.             .btn.btn-primary:active:not(.btn-active),
  184.             .btn.btn-primary.active,
  185.             .btn.btn-primary.show,
  186.             .show > .btn.btn-primary {
  187.                 background-color: var(--my-flow-pink) !important
  188.             }
  189.             {
  190.                 # fin Custom primary color #
  191.             }
  192.             {
  193.                 # debut Custom secondaire color #
  194.             }
  195.             body .text-custom-blue,
  196.             body .custom-facture-attente,
  197.             body .color-blue-custom,
  198.             body .notification-list-mission > li,
  199.             body .content-message-system-date {
  200.                 color: var(--bs-custom-blue) !important;
  201.             }
  202.             body .mission-tooltips::after {
  203.                 border-bottom: 5px solid var(--bs-custom-blue) !important;
  204.             }
  205.             body .bg-custom-blue,
  206.             body .container-recurrent-label .no-label-recurrent.no-recurrent,
  207.             body .page-item.active .page-link,
  208.             .select2-container--bootstrap5 .select2-selection--multiple:not(.form-select-sm):not(.form-select-lg) .select2-selection__choice,
  209.             .active-blue {
  210.                 background-color: var(--bs-custom-blue) !important;
  211.             }
  212.             body .mission-tooltips,
  213.             body .notification-title {
  214.                 background: var(--bs-custom-blue) !important;
  215.             }
  216.             {
  217.                 # fin Custom secondaire color #
  218.             }
  219.             {
  220.                 # début texte active #
  221.             }
  222.             body .text-active-primary.active,
  223.             .menu-state-bg-light-primary .menu-item.hover > .menu-link:not(.disabled):not(.active),
  224.             .menu-state-bg-light-primary .menu-item .menu-link:hover:not(.disabled):not(.active) {
  225.                 color: var(--text-active) !important;
  226.             }
  227.             body a .aside-user-info,
  228.             body .title-compaign a,
  229.             .nav-link:hover,
  230.             .nav-link:focus {
  231.                 color: var(--text-active) !important;
  232.             }
  233.             body .btn-join-file-chat {
  234.                 color: var(--text-active) !important;
  235.                 border: var(--text-active) dashed 1px !important
  236.             }
  237.             {
  238.                 # fin texte active #
  239.             }
  240.             {
  241.                 # debut text de détails #
  242.             }
  243.             body .estimated-time-or-income-content .color-blue-custom,
  244.             body div.resume_marge .color-blue-custom,
  245.             .resumer-commande tbody tr td,
  246.             body .state-provider .text-custom-blue {
  247.                 color: var(--my-flow-text) !important;
  248.             }
  249.             {
  250.                 # fin text de détails #
  251.             }
  252.             {
  253.                 # fin custom color #
  254.             }
  255.             .menu-link.active > svg.icn.faq path,
  256.             .menu-link:hover > svg.icn.faq path {
  257.                 stroke: var(--my-flow-pink);
  258.             }
  259.             .menu-link > svg.icn.faq path {
  260.                 fill: #fff;
  261.                 width: 20px;
  262.             }
  263.             .hidden {
  264.                 display: none !important;
  265.             }
  266.             svg.icn-grey {
  267.                 fill: #a1a5b7 !important;
  268.             }
  269.             svg.icn-pink {
  270.                 fill: var(--my-flow-pink) !important;
  271.             }
  272.             i.icn-pink {
  273.                 color: var(--my-flow-pink) !important;
  274.             }
  275.             .myflow-line {
  276.                 padding: 10px;
  277.             }
  278.             .myflow-line:not(.fw-bold):hover {
  279.                 background-color: #eff2f5;
  280.             }
  281.             .pagination:hover {
  282.                 color: var(--my-flow-pink);
  283.             }
  284.             .pagination:hover svg {
  285.                 fill: var(--my-flow-pink);
  286.             }
  287.             .info-general-2 >div > button:hover,
  288.             .info-general-2 >div > button:hover * {
  289.                 color: var(--my-flow-pink) !important;
  290.                 fill: var(--my-flow-pink) !important;
  291.                 text-decoration: underline;
  292.             }
  293.             .info-general-2 > div > button {
  294.                 color: #97ABF4;
  295.                 font-weight: bolder;
  296.                 cursor: pointer;
  297.                 font-size: 13px;
  298.             }
  299.             .info-general:hover,
  300.             .info-general:hover * {
  301.                 color: var(--my-flow-pink) !important;
  302.                 fill: var(--my-flow-pink) !important;
  303.             }
  304.             .info-general,
  305.             .info-general-2 > div > button {
  306.                 text-decoration: underline;
  307.             }
  308.             svg.icn-greyhoverpink {
  309.                 fill: #a1a5b7 !important;
  310.             }
  311.             i.icn-greyhoverpink {
  312.                 color: #a1a5b7 !important;
  313.             }
  314.             svg.icn-greyhoverpink:hover {
  315.                 fill: var(--my-flow-pink) !important;
  316.             }
  317.             i.icn-greyhoverpink:hover {
  318.                 color: var(--my-flow-pink) !important;
  319.             }
  320.             .box-fichier-joints-mission:hover form h3 div button svg.icn-greyhoverpink {
  321.                 fill: var(--my-flow-pink) !important;
  322.             }
  323.             .box-fichier-joints-mission:hover form h3 div button i.icn-greyhoverpink {
  324.                 color: var(--my-flow-pink) !important;
  325.             }
  326.             .box-fichier-joints-mission:hover {
  327.                 border: 1px solid var(--my-flow-pink);
  328.             }
  329.             {
  330.                 # Ce qui suit est pas ouf, je le sais, faudrait le mettre directement dans le CSS #
  331.             }
  332.             div.gestion-temps {
  333.                 text-decoration: none;
  334.             }
  335.             
  336.         </style>
  337.         
  338.         <div class="d-flex flex-column flex-root">
  339.             <div class="page d-flex flex-row flex-column-fluid">
  340.                 {% if app.request.get('_route') != 'campaign_recapitulatif' %}
  341.                     {{ include('_aside.html.twig') }}
  342.                 {% endif %}
  343.                 <input type="hidden" value="0" id="emoji_id_id">
  344.                 <div class="wrapper d-flex flex-column flex-row-fluid" id="kt_wrapper" {% if app.request.get('_route') == 'campaign_recapitulatif' %} style="padding-left: 0;" {% endif %}>
  345.                     {% if app.request.get('_route') != 'campaign_recapitulatif' %}
  346.                         {{ include('_header.html.twig') }}
  347.                     {% endif %}
  348.                     <div class="content d-flex flex-column flex-column-fluid pt-5 pb-2" id="kt_content">
  349.                         <div class="post d-flex flex-column-fluid" id="kt_post">
  350.                             <div id="kt_content_container" class="container-fluid">
  351.                                 {% if maintenance_info_app == 1 %}
  352.                                     <div class="alert align-center text-center" style="border: 1px solid #f77dc6;color: #f975c4;">
  353.                                         Nous sommes en train d'effectuer une mise à jour du site. Nous vous remercions de votre patience.
  354.                                     </div>
  355.                                 {% endif %}
  356.                                 {% block body %}{% endblock %}
  357.                             </div>
  358.                         </div>
  359.                     </div>
  360.                     {{ include('_flashbag.html.twig') }}
  361.                     {#            {{ include('_footer.html.twig') }}#}
  362.                 </div>
  363.             </div>
  364.         </div>
  365.         <div id="kt_scrolltop" class="scrolltop" data-kt-scrolltop="true">
  366.             <span class="svg-icon">
  367.                 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none">
  368.                     <rect opacity="0.5" x="13" y="6" width="13" height="2" rx="1" transform="rotate(90 13 6)" fill="black"/>
  369.                     <path d="M12.5657 8.56569L16.75 12.75C17.1642 13.1642 17.8358 13.1642 18.25 12.75C18.6642 12.3358 18.6642 11.6642 18.25 11.25L12.7071 5.70711C12.3166 5.31658 11.6834 5.31658 11.2929 5.70711L5.75 11.25C5.33579 11.6642 5.33579 12.3358 5.75 12.75C6.16421 13.1642 6.83579 13.1642 7.25 12.75L11.4343 8.56569C11.7467 8.25327 12.2533 8.25327 12.5657 8.56569Z" fill="black"/>
  370.                 </svg>
  371.             </span>
  372.         </div>
  373.         
  374.             
  375.         
  376.     
  377.         
  378.         
  379.              {% if not app.user|user_have_app  %}
  380.                 {% set user_can_show_promotion = app.user|can_show_promation_app %}
  381.                 {% set cookie_app_promotion = app.request.cookies.get('hide-bd-app-application-'~app.user.id)  %}
  382.                 {{ include('_modal_app_promotion.html.twig') }}
  383.                 <div id="bandeau-mobile" 
  384.                     style="{{ not user_can_show_promotion and cookie_app_promotion == '1' ? ' display:none; ' : ' '  }}">
  385.                     <div id="promo-banner"  {{ stimulus_controller('mission--mobile') }} >
  386.                         <img src="https://my-flow.fr/wp-content/uploads/2025/04/tel.png" loading="lazy" width="24" height="50" alt="App Icon">
  387.                         <div class="text" >Téléchargez l’application myFlow pour améliorer votre productivité, suivre vos projets et interagir avec nos experts, où que vous soyez.</div>
  388.                         <div style="display: grid;grid-template-columns: 1fr 32px;align-items: center;" class="mobile-w100">
  389.                             <span {{ stimulus_action('mission--mobile', 'showModalMobile', 'click') }} class="button display-desktop">Télécharger l'application</span>
  390.                             <a href="https://app.my-flow.fr/get-myflow-mobil-application"  target="_blank" class="button display-mobile">Télécharger l'application</a>
  391.                             <button 
  392.                                 id="close-button-promotion-base"
  393.                                 style="font-size: 29px;background: transparent;color: white;border: none;padding: 0 10px;"
  394.                             >&times;</button>
  395.                         </div>
  396.                     </div>
  397.                 </div>
  398.                 
  399.                 <div id="app-promotion-icon-base" style="background: #07075b;z-index: 111;display: inline-block;width: auto;padding: 5px;border-radius: 5px;margin-left: 5px;position: fixed;bottom: 3px;left: 0;">
  400.                     <img src="https://my-flow.fr/wp-content/uploads/2025/04/tel.png" loading="lazy" width="24" height="50" alt="App Icon" style="height: 58px;border-radius: 4px;">
  401.                 </div> 
  402.             
  403.             {% endif  %}
  404.         {# {% endif %} #}
  405.         <script>
  406.             // for application promotion
  407.             
  408.         
  409.             function handleCheckboxClick(checkbox) {
  410.                 var checkboxValue = checkbox.value;
  411.                 var isChecked = checkbox.checked;
  412.                 var checkboxesContent1 = document.querySelectorAll('.content-1 input[type="checkbox"][value="' + checkboxValue + '"]');
  413.                 var checkboxesContent2 = document.querySelectorAll('.content-2 input[type="checkbox"][value="' + checkboxValue + '"]');
  414.                 var checkboxesContent3 = document.querySelectorAll('.content-3 input[type="checkbox"][value="' + checkboxValue + '"]');
  415.                 var checkboxesContent4 = document.querySelectorAll('.content-4 input[type="checkbox"][value="' + checkboxValue + '"]');
  416.                 checkboxesContent1.forEach(function (checkbox) {
  417.                 checkbox.checked = false;
  418.                 });
  419.                 checkboxesContent2.forEach(function (checkbox) {
  420.                 checkbox.checked = false;
  421.                 });
  422.                 checkboxesContent3.forEach(function (checkbox) {
  423.                 checkbox.checked = false;
  424.                 });
  425.                 checkboxesContent4.forEach(function (checkbox) {
  426.                 checkbox.checked = false;
  427.                 });
  428.                 checkbox.checked = isChecked;
  429.             }
  430.             var activeLink = document.querySelector('.menu-item .menu-link.active');
  431.             if (activeLink) {
  432.                 var parentMenuItem = activeLink.closest('.menu-sub');
  433.                 var parentMenuItems = activeLink.closest('.menu-accordion');
  434.                 if (parentMenuItem) {
  435.                 parentMenuItem.classList.add('show');
  436.                 parentMenuItems.classList.add('show');
  437.                 }
  438.             
  439.             }
  440.             $('[data-toggle="collapse"]').on('click', function(event) {
  441.                  if ($(this).attr('id') === 'show-filter') {
  442.                     return;
  443.                 }
  444.                 var isExpanded = $(this).attr('aria-expanded') === 'true';
  445.                 if (isExpanded) {
  446.                     event.stopPropagation();
  447.                     event.preventDefault();
  448.                 }
  449.             });
  450.             function goTo(location, rmcache) {
  451.                 if (rmcache && 'caches' in window) {
  452.                     caches.open('my-cache-name').then(cache => { // alert('Cache supprimé')
  453.                     cache.delete(location); // Suppression d'une entrée du cache
  454.                     });
  455.                 }
  456.                 window.location.href = location;
  457.             }
  458.         </script>
  459.         <script>
  460.             function handleCheckboxClick(checkbox) {
  461.                 var checkboxValue = checkbox.value;
  462.                 var isChecked = checkbox.checked;
  463.                 var checkboxesContent1 = document.querySelectorAll('.content-1 input[type="checkbox"][value="' + checkboxValue + '"]');
  464.                 var checkboxesContent2 = document.querySelectorAll('.content-2 input[type="checkbox"][value="' + checkboxValue + '"]');
  465.                 var checkboxesContent3 = document.querySelectorAll('.content-3 input[type="checkbox"][value="' + checkboxValue + '"]');
  466.                 var checkboxesContent4 = document.querySelectorAll('.content-4 input[type="checkbox"][value="' + checkboxValue + '"]');
  467.                 checkboxesContent1.forEach(function (checkbox) {
  468.                 checkbox.checked = false;
  469.                 });
  470.                 checkboxesContent2.forEach(function (checkbox) {
  471.                 checkbox.checked = false;
  472.                 });
  473.                 checkboxesContent3.forEach(function (checkbox) {
  474.                 checkbox.checked = false;
  475.                 });
  476.                 checkboxesContent4.forEach(function (checkbox) {
  477.                 checkbox.checked = false;
  478.                 });
  479.                 checkbox.checked = isChecked;
  480.             }
  481.             var activeLink = document.querySelector('.menu-item .menu-link.subcontrat.active');
  482.             if (activeLink) {
  483.                 var parentMenuItem = activeLink.closest('.menu-sub');
  484.                 var parentMenuItems = activeLink.closest('.menu-accordion');
  485.                 if (parentMenuItem) {
  486.                 parentMenuItem.classList.add('show');
  487.                 parentMenuItems.classList.add('show');
  488.                 }
  489.             }
  490.             function goTo(location, rmcache) {
  491.                 if (rmcache && 'caches' in window) {
  492.                     caches.open('my-cache-name').then(cache => { // alert('Cache supprimé')
  493.                     cache.delete(location); // Suppression d'une entrée du cache
  494.                     });
  495.                 }
  496.                 window.location.href = location;
  497.             }
  498.             $(document).ready(function() {
  499.                 var base_url = window.location.origin;
  500.                 var search = window.location.search;
  501.                 var search_art_nb = search.match(/\d+/);
  502.                 var search_nb = search_art_nb ? search_art_nb[0] : '';
  503.                 var url = base_url;
  504.                 if (window.location.pathname === '/faq' && search === "?id=23") {
  505.                     var targetElement = $('#25');
  506.                     if (targetElement.length) {
  507.                         $('html, body').animate(
  508.                             {
  509.                                 scrollTop: targetElement.offset().top,
  510.                             },
  511.                             800 // speed
  512.                         );
  513.                     }
  514.                 }
  515.                 //--------------- Password
  516.                     $('.toggle-password').wrap("<div class='p-relative container-password'></div>")
  517.                     $('.toggle-password').after("<button id='toggle-password-sb' class='toggle-password-sb' type='button' style='position: absolute;top: 10px;right: 20px;background-color: transparent;border: none;'><img  alt='img_toggle_password' src='https://my-flow.fr/wp-content/themes/astra-child/assets/images/view-password.png'/></button>")
  518.                     
  519.                     $('body').on('click','.toggle-password-sb',function(e){
  520.                         
  521.                         const parentDiv = $(this).parent('.container-password'); 
  522.                         const passwordInput = parentDiv.children('input')[0]; 
  523.                         const isPassword = passwordInput.type === 'password';
  524.                         const imgUrl = !isPassword ?'https://my-flow.fr/wp-content/themes/astra-child/assets/images/view-password.png' : 'https://my-flow.fr/wp-content/themes/astra-child/assets/images/hide-password.png'; 
  525.                         
  526.                         passwordInput.type = isPassword ? 'text' : 'password';
  527.                         parentDiv.children('button').children('img').attr('src', imgUrl); 
  528.                     })
  529.                 //-----------------------
  530.             });
  531.         {# Coloris({
  532.         el: '.color-picker',
  533.         swatches: [
  534.         "#ffffff",
  535.         "#000000",
  536.         "#f975c4",
  537.         "#08085c",
  538.         "#1968cd",
  539.         '#264653',
  540.         '#2a9d8f',
  541.         '#e9c46a',
  542.         '#f4a261',
  543.         '#e76f51',
  544.         '#d62828',
  545.         '#023e8a',
  546.         '#0077b6',
  547.         '#0096c7',
  548.         '#00b4d8',
  549.         '#48cae4'
  550.         ]
  551.         }); #}
  552. </script>
  553.     </body>
  554. </html>