templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. {% if app.request.locale == 'en' %}
  3. <html dir="ltr" lang="en" data-lg="en">
  4. {% elseif app.request.locale == 'fr'%}
  5. <html dir="ltr" lang="fr" data-lg="fr">
  6. {% endif %}
  7. <head>
  8.     <meta charset="utf-8">
  9.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  10.     {# Tell the browser to be responsive to screen width #}
  11.     <meta name="viewport" content="width=device-width, initial-scale=1">
  12.     <meta name="description" content="">
  13.     <meta name="author" content="">
  14.     {# Favicon icon #}
  15.     <link rel="icon" type="image/png" sizes="32x32" href="{{ asset('/favicon-32x32.png') }}">
  16.     <title>MainChain {% block title %}{% endblock %}</title>
  17.     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  18.     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  19.     <!--[if lt IE 9]>
  20.     <script src="{{ asset('libs/html5shiv/3.7.0/html5shiv.js') }}"></script>
  21.     <script src="{{ asset('libs/respond/1.4.2/respond.min.js') }}"></script>
  22.     <![endif]-->
  23.     {% block stylesheets %}
  24.         <link href="{{ asset('css/import.css') }}" rel="stylesheet" />
  25.         <link href="{{ asset('css/style.css') }}" rel="stylesheet" />
  26.         <link href="{{ asset('css/app.css') }}" rel="stylesheet" />
  27.         <link href="{{ asset('css/bootstrap-datepicker-1.9.0.css') }}" rel="stylesheet" />
  28.         <link href="{{ asset('libs/datatables.net-dt-2.0.3/css/datatables-dt-2.0.3.min.css') }}" rel="stylesheet" />
  29.         {% if app.request.attributes.get('_route') == 'dashboard' %}
  30.             <link href="{{ asset('libs/morris.js/morris.css') }}" rel="stylesheet" />
  31.             <link href="{{ asset('libs/daterangepicker/daterangepicker.css') }}" rel="stylesheet" />
  32.         {% endif %}
  33.     {% endblock %}
  34. </head>
  35. <body>
  36. {# ============================================================== #}
  37. {# Main wrapper - style you can find in pages.scss #}
  38. {# ============================================================== #}
  39. <div id="main-wrapper" data-theme="light" data-layout="vertical" data-navbarbg="skin6" data-sidebartype="full"
  40.      data-sidebar-position="fixed" data-header-position="fixed" data-boxed-layout="full">
  41.     {# ============================================================== #}
  42.     {# Topbar header - style you can find in pages.scss #}
  43.     {# ============================================================== #}
  44.     <header class="topbar" data-navbarbg="skin6">
  45.         <nav class="navbar top-navbar navbar-expand-md">
  46.             <div class="navbar-header" data-logobg="skin6">
  47.                 {# This is for the sidebar toggle which is visible on mobile only #}
  48.                 <a class="nav-toggler waves-effect waves-light d-block d-md-none" href="javascript:void(0)">
  49.                     <i class="ti-menu ti-close"></i></a>
  50.                 {# ============================================================== #}
  51.                 {# Logo #}
  52.                 {# ============================================================== #}
  53.                 <div class="navbar-brand">
  54.                     {# Logo icon #}
  55.                     <a href="{{ path('home') }}">
  56.                         <b class="logo-icon">
  57.                             {# Dark Logo icon #}
  58.                             <img src="{{ asset('img/logo-icon.png') }}" width="45" alt="homepage" class="dark-logo" />
  59.                             {# Light Logo icon #}
  60.                             <img src="{{ asset('/images/logo-icon.png') }}" alt="homepage" class="light-logo" />
  61.                         </b>
  62.                         {# End Logo icon #}
  63.                         {# Logo text #}
  64.                         <span class="logo-text">
  65.                             <img src="{{ asset('img/logo-text.png') }}" width="132" alt="homepage" class="dark-logo" />
  66.                         </span>
  67.                     </a>
  68.                 </div>
  69.                 {# ============================================================== #}
  70.                 {# End Logo #}
  71.                 {# ============================================================== #}
  72.                 {# ============================================================== #}
  73.                 {# Toggle which is visible on mobile only #}
  74.                 {# ============================================================== #}
  75.                 <a class="topbartoggler d-block d-md-none waves-effect waves-light" href="javascript:void(0)"
  76.                    data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
  77.                    aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  78.                     {# <i class="ti-more"></i> #}
  79.                 </a>
  80.                 {# <a class="topbartogglerclose d-none waves-effect waves-light" href="javascript:void(0)"
  81.                    data-bs-target="#navbarSupportedContent"
  82.                    aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  83.                     <i class="ti-close" style="padding: 0 15px"></i>
  84.                 </a> #}
  85.             </div>
  86.             {# ============================================================== #}
  87.             {# End Logo #}
  88.             {# ============================================================== #}
  89.             <div class="navbar-collapse d-flex justify-content-between" id="navbarSupportedContent">
  90.                 {# ============================================================== #}
  91.                 {# toggle and nav items #}
  92.                 {# ============================================================== #}
  93.                 {# <a id="miniSidebar" class="d-none d-md-block" href=""><i class="fas fa-chevron-left d-none d-md-block"></i></a> #}
  94.                 <div class="union-ul">
  95.                     <ul class="navbar-nav ml-3">
  96.                         {# ============================================================== #}
  97.                         {# create new #}
  98.                         {# ============================================================== #}
  99.                         {% set route = app.request.attributes.get('_route') %}
  100.                         {% set route_params = app.request.attributes.get('_route_params') %}
  101.                         {% set params = route_params|merge(app.request.query.all) %}
  102.                         {% if app.request.locale == 'en' %}
  103.                             {% set locale =  'fr' %}
  104.                             {% set value =  'on' %}
  105.                             {% set title =  'Changer la langue pour : Français' %}
  106.                         {% elseif app.request.locale == 'fr'%}
  107.                             {% set locale =  'en' %}
  108.                             {% set value =  'off' %}
  109.                             {% set title =  'Change the language to : English' %}
  110.                         {% endif %}
  111.                         <li>
  112.                             <div class="translation-action-block" >
  113.                                 <a href="{{ path(route, params|merge({ _locale: locale })) }}">
  114.                                     <div class="translation-action">
  115.                                         <img src="{{ asset('img/flags/FR.png') }}"  alt="FR"/>
  116.                                         <div class="{{ value }} on-off-btn" data-bs-toggle="tooltip" title="{{ title }}" ><span class="on-off-cursor"></span></div>
  117.                                         <img src="{{ asset('img/flags/GB.png') }}"  alt="BG"/>
  118.                                     </div>
  119.                                 </a>
  120.                             </div>
  121.                         </li>                    
  122.                     </ul>
  123.                     {#                ============================================================== #}
  124.                     {#                Right side toggle and nav items #}
  125.                     {#                ============================================================== #}
  126.                     <ul class="navbar-nav">
  127.                         <li>
  128.                             {% block bubble_nav %}
  129.                             {% endblock %}
  130.                         </li>
  131.                     </ul>
  132.                 </div>
  133.                 <ul class="navbar-nav credit-nav-bar">
  134.                     {% set b_key = app.session.get('b_key', 0) %}
  135.                     {% set profiles = app.user.getProfiles() %}
  136.                     <div class="nav-item bubble-info credit">
  137.                         <div class="bubble-credits">
  138.                             {% if profiles[b_key].is_sa != 1 %}
  139.                                 {% set bubble_info = bubble_service.getBubbleCreditInfo(app.user, app.user.profiles[b_key].b_id) %}
  140.                                 {% if (profiles[b_key].is_ind != 1) %}
  141.                                     {% if profiles[b_key].is_op != 1 %}
  142.                                         {% if bubble_info.number_credit is defined and bubble_info.number_credit >= 0 %}
  143.                                             <li class="nav-item dropdown float-right">
  144.                                                 <a class="nav-link dropdown-toggle dropdown-toggle-credit" style="padding-top: 0 !important" data-btn="not_cancelled" href="javascript:void(0)" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  145.                                                     <div class="bubble-credits-block">
  146.                                                         <span class="number-credit">
  147.                                                             {{ bubble_info.number_credit | number_format(2) }}
  148.                                                             {% if bubble_info.number_credit == 1 %}
  149.                                                                 {% trans %}crédit{% endtrans %}
  150.                                                             {% else %}
  151.                                                                 {% trans %}crédits{% endtrans %}
  152.                                                             {% endif %}
  153.                                                         </span>
  154.                                                         <span><i data-feather="chevron-down" class="svg-icon"></i></span>
  155.                                                     </div>
  156.                                                 </a>
  157.                                                 <div class="dropdown-menu dropdown-credits user-dd animated flipInY">
  158.                                                     <div class="bubble-credits-block" style="display: flex;">
  159.                                                         <span>{{ ((bubble_info.number_credit)*(bubble_info.credit_value)) | number_format(2) }}</span>
  160.                                                         <span style="margin-left: 5px;">{% trans %}€{% endtrans %}</span>
  161.                                                     </div>
  162.                                                 </div>
  163.                                             </li>
  164.                                         {% endif %}
  165.                                     {% endif %}
  166.                                 {% endif %}
  167.                             {% endif %}
  168.                         </div>
  169.                         
  170.                         <div class="d-none position-relative credit-on-mobile">
  171.                             <a class="nav-link dropdown-toggle dropdown-toggle-credit" style="padding-top: 0 !important" data-btn="not_cancelled" href="javascript:void(0)" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  172.                                 <div class="bubble-credits-block">
  173.                                     <span class="number-credit">
  174.                                         <img src="{{asset('img/monero.png')}}" alt="credit" width="80">
  175.                                     </span>
  176.                                     <span><i data-feather="chevron-down" class="svg-icon"></i></span>
  177.                                 </div>
  178.                             </a>
  179.                             {% if profiles[b_key].is_sa != 1 %}
  180.                             <div class="dropdown-menu dropdown-credits user-dd animated flipInY t-flex">
  181.                                 <span class="number-credit">
  182.                                 {% if bubble_info.number_credit is defined and bubble_info.number_credit >= 0 %}
  183.                                     {{ bubble_info.number_credit | number_format(2) }}
  184.                                     {% if bubble_info.number_credit == 1 %}
  185.                                         {% trans %}crédit{% endtrans %}
  186.                                     {% else %}
  187.                                         {% trans %}crédits{% endtrans %}
  188.                                     {% endif %}
  189.                                     </span>
  190.                                     <div class="dropdown-divider user-connect"></div>
  191.                                     <span class="value-credit">{{ ((bubble_info.number_credit)*(bubble_info.credit_value)) | number_format(2) }}</span>
  192.                                     <span style="margin-left: 5px;">{% trans %}€{% endtrans %}</span>
  193.                                 {% endif %}
  194.                             </div>
  195.                             {% endif %}
  196.                         </div>
  197.                     </div>
  198.                 </ul>
  199.                 <ul class="navbar-nav mr-2">
  200.                     {#                ============================================================== #}
  201.                     {#                    User profile and search #}
  202.                     {#                ============================================================== #}
  203.                     <div class="nav-item  bubble-info">
  204.                         <div class="bubble-profile col-12">
  205.                             <li class="nav-item dropdown float-right col-12">
  206.                                 <a class="d-flex align-items-center justify-content-end nav-link dropdown-toggle dropdown-toggle-profile text-truncate col-12" data-btn="not_cancelled" href="javascript:void(0)" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  207.                                     {% set username = app.user.username|split('@') %}
  208.                                     <span class="bubble-profile-block text-truncate" style="font-size: 16px; padding-right : 5px;">
  209.                                         {{ app.user.uFname ? app.user.uFname : '' }} {{ app.user.uLname ? app.user.uLname : username[0] }}
  210.                                     </span>
  211.                                     <img src="{{asset('img/logo-icon.png')}}" alt="user"
  212.                                             {% set b_key = app.session.get('b_key', 0) %}
  213.                                             {% set profiles = app.user.getProfiles() %}
  214.                                             {% if app.user.getIsSa == 1 %}
  215.                                                 class="d-block rounded-circle icon-sa" data-bs-toggle="tooltip" title="SUPER ADMIN"
  216.                                             {% elseif profiles[b_key].is_ba == 1 %}
  217.                                                 class="d-block rounded-circle icon-ba" data-bs-toggle="tooltip" title="{% trans %}Administrateur{% endtrans %}"
  218.                                             {% elseif profiles[b_key].is_op == 1 %}
  219.                                                 class="d-block rounded-circle icon-op" data-bs-toggle="tooltip" title="{% trans %}Opérateur{% endtrans %}"
  220.                                             {% elseif profiles[b_key].is_ind == 1 %}
  221.                                                 class="d-block rounded-circle icon-ind" data-bs-toggle="tooltip" title="{% trans %}Industriel{% endtrans %}"
  222.                                             {% elseif profiles[b_key].is_vp == 1 %}
  223.                                                 class="d-block rounded-circle icon-va" data-bs-toggle="tooltip" title="{% trans %}Validateur de plan{% endtrans %}"
  224.                                             {% elseif profiles[b_key].is_vp == 1 %}
  225.                                                 class="d-block rounded-circle icon-va" data-bs-toggle="tooltip" title="{% trans %}Validateur d'impression{% endtrans %}"
  226.                                             {% elseif profiles[b_key].is_man == 1 %}
  227.                                                 class="d-block rounded-circle icon-man" data-bs-toggle="tooltip" title="{% trans %}Fabricant{% endtrans %}"
  228.                                             {% elseif profiles[b_key].is_fm == 1 %}
  229.                                                 class="d-block rounded-circle icon-sm" data-bs-toggle="tooltip" title="{% trans %}Responsable de formation{% endtrans %}"
  230.                                             {% elseif profiles[b_key].is_om == 1 %}
  231.                                                 class="d-block rounded-circle icon-sm" data-bs-toggle="tooltip" title="{% trans %}Responsable délégué{% endtrans %}"
  232.                                             {% elseif profiles[b_key].is_cl == 1 %}
  233.                                                 class="d-block rounded-circle icon-sm" data-bs-toggle="tooltip" title="Client"
  234.                                             {% endif %} width="40">
  235.                                 </a>
  236.                                 {# <div class="dropdown-menu dropdown-profile user-dd animated flipInY">
  237.                                     <a class="dropdown-item" href="{{ path('user_update') }}">
  238.                                         <i data-feather="edit" class="svg-icon mr-2 ml-1"></i>
  239.                                         {% trans %}Mon compte{% endtrans %}
  240.                                     </a>
  241.                                     <a class="dropdown-item text-danger" href="{{ path('logout') }}">
  242.                                         <i data-feather="power" class="svg-icon mr-2 ml-1"></i>
  243.                                         {% trans %}Déconnexion{% endtrans %}
  244.                                     </a>
  245.                                 </div> #}
  246.                             </li>
  247.                         </div>
  248.                     </div>
  249.                     {% if profiles[b_key].is_sa != 1 and profiles[b_key].is_cl != 1 %}
  250.                         <div class="nav-item dropdown">
  251.                             <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  252.                                 <i data-feather="settings" class="svg-icon" id="svg-icon-setting"></i>
  253.                             </a>
  254.                             <div class="dropdown-menu dropdown-parameters dropdown-menu-end" aria-labelledby="navbarDropdown">
  255.                                 <div class="info-user-connect">
  256.                                     <a class="d-flex align-items-center justify-content-end nav-link dropdown-toggle dropdown-toggle-profile text-truncate col-12 user-connect-dropdown" data-btn="not_cancelled" href="javascript:void(0)" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  257.                                         {% set username = app.user.username|split('@') %}
  258.                                         <span class="bubble-profile-block text-truncate" style="font-size: 16px; padding-right : 5px;">
  259.                                             {{ app.user.uFname ? app.user.uFname : '' }} {{ app.user.uLname ? app.user.uLname : username[0] }} / 
  260.                                             {% set b_key = app.session.get('b_key', 0) %}
  261.                                             {% set profiles = app.user.getProfiles() %}
  262.                                             {% if app.user.getIsSa == 1 %}
  263.                                             SUPER ADMIN
  264.                                             {% elseif profiles[b_key].is_ba == 1 %}
  265.                                                 Administrateur
  266.                                             {% elseif profiles[b_key].is_op == 1 %}
  267.                                                 Opérateur
  268.                                             {% elseif profiles[b_key].is_ind == 1 %}
  269.                                                 "Industriel"
  270.                                             {% elseif profiles[b_key].is_vp == 1 %}
  271.                                                 Validateur de plan
  272.                                             {% elseif profiles[b_key].is_vp == 1 %}
  273.                                                 Validateur d'impression
  274.                                             {% elseif profiles[b_key].is_man == 1 %}
  275.                                                 Fabricant
  276.                                             {% elseif profiles[b_key].is_cl == 1 %}
  277.                                                 Client
  278.                                             {% endif %}
  279.                                         </span>
  280.                                         <img src="{{asset('img/logo-icon.png')}}" alt="user" width="40">
  281.                                     </a>
  282.                                 </div>
  283.                                 <div class="dropdown-divider user-connect"></div>
  284.                                 {% if (profiles[b_key].user.read == 1) or (profiles[b_key].user.create == 1) %}
  285.                                     {% if profiles[b_key].user.read == 1 %}
  286.                                         <a class="dropdown-item" href="{{ path('bubble_user_list') }}">{% trans %}Voir les utilisateurs{% endtrans %}</a>
  287.                                     {% endif %}
  288.                                     {% if profiles[b_key].user.create == 1 %}
  289.                                         <a class="dropdown-item" href="{{ path('bubble_user_add') }}">{% trans %}Ajouter un utilisateur{% endtrans %}</a>
  290.                                     {% endif %}
  291.                                     <div class="dropdown-divider"></div>
  292.                                 {% endif %}
  293.                                 {% if (profiles[b_key].industrial.read == 1) or (profiles[b_key].industrial.create == 1) %}
  294.                                     {% if profiles[b_key].industrial.read == 1 %}
  295.                                         <a class="dropdown-item" href="{{ path('industrial_list') }}">{% trans %}Voir les industriels{% endtrans %}</a>
  296.                                     {% endif %}
  297.                                     {% if profiles[b_key].industrial.create == 1 %}
  298.                                         <a class="dropdown-item" href="{{ path('industrial_add') }}">{% trans %}Ajouter un industriel{% endtrans %}</a>
  299.                                     {% endif %}
  300.                                     <div class="dropdown-divider"></div>
  301.                                 {% endif %}
  302.                                 {% if profiles[b_key].token.read == 1 %}
  303.                                     <a class="dropdown-item" href="{{ path('api_data') }}">{% trans %}Accès API MainChain{% endtrans %}</a>
  304.                                 {% endif %}
  305.                             </div>
  306.                         </div>
  307.                     {% endif %}
  308.                     {# ============================================================== #}
  309.                     {# Change language French <--> English #}
  310.                     {# ============================================================== #}
  311.                     {% if app.request.locale == 'en' %}
  312.                         {% set locale = 'fr' %}
  313.                         {% set title = 'Changer la langue pour : Français' %}
  314.                     {% elseif app.request.locale == 'fr'%}
  315.                         {% set locale = 'en' %}
  316.                         {% set title = 'Change the language to : English' %}
  317.                     {% endif %}
  318.                 </ul>
  319.             </div>
  320.         </nav>
  321.     </header>
  322.     {# ============================================================== #}
  323.     {# End Topbar header #}
  324.     {# ============================================================== #}
  325.     {# ============================================================== #}
  326.     {# Left Sidebar - style you can find in sidebar.scss #}
  327.     {# ============================================================== #}
  328.     <aside class="left-sidebar" data-sidebarbg="skin6">
  329.         {# Sidebar scroll #}
  330.         <div class="scroll-sidebar" data-sidebarbg="skin6">
  331.             {# Sidebar navigation #}
  332.             <nav class="sidebar-nav">
  333.                 <ul id="sidebarnav">
  334.                     {% if app.user.getIsSa != 1 %}
  335.                         <div class="group-nav" id="menu1000">
  336.                             <ol style="list-style-type: none; padding: 0 0 0 4px;">
  337.                                 <li id="item1000" class="sidebar-item {% if 'home' in app.request.attributes.get('_route') %} selected {% endif %}">
  338.                                     <a class="sidebar-link dropdown-item" href="{{ path('home') }}" aria-expanded="false">
  339.                                         <i style="width: 22px; height: 22px;" data-feather="home" class="feather-icon"></i>
  340.                                         <span class="hide-menu" style="text-transform: capitalize; font-size: 14px;">{% trans %}Accueil{% endtrans %}</span>
  341.                                     </a>
  342.                                 </li>
  343.                             </ol>
  344.                         </div>
  345.                     {% endif %}
  346.                     {# PARTIE BULLE POUR SUPER ADMIN #}
  347.                     {% if app.user.getIsSa == 1 %}
  348.                         <li class="nav-small-cap"><span class="hide-menu">{% trans %}Gestion des bulles{% endtrans %}</span></li>
  349.                         <li class="sidebar-item {% if app.request.attributes.get('_route') == 'bubble' %} selected {% endif %}">
  350.                             <a class="sidebar-link" href="{{ path('bubble') }}" aria-expanded="false">
  351.                                 <i data-feather="cloud" class="feather-icon"></i>
  352.                                 <span class="hide-menu">{% trans %}Mes bulles{% endtrans %}</span>
  353.                             </a>
  354.                         </li>
  355.                         <li class="sidebar-item {% if '/bubble/add' in app.request.attributes.get('_route') %} selected {% endif %}">
  356.                             <a class="sidebar-link" href="{{ path('bubble_add') }}" aria-expanded="false">
  357.                                 <i data-feather="plus-square" class="feather-icon"></i>
  358.                                 <span class="hide-menu">{% trans %}Créer une bulle{% endtrans %}</span>
  359.                             </a>
  360.                         </li>
  361.                     {% endif %}
  362.                     {#  NAV SITE  #}
  363.                     {% if app.user.getIsSa != 1 %}
  364.                         {% set profiles = app.user.getProfiles() %}
  365.                         {% set b_key = app.session.get('b_key', 0) %}
  366.                         {# BLOCk IMPRESSIONS >>> #}
  367.                         {% if profiles[b_key].job_order.read == 1 or profiles[b_key].job_order.create == 1 or profiles[b_key].history.read == 1 or profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_op == 1 %}
  368.                             <div class="group-nav" id="menu1">
  369.                             <span class="nav-small-cap" style="color: #818181">
  370.                                 <a href="#" class="hide-menu dropdown-btn">
  371.                                     <i style="color: #9eabc0;">
  372.                                         <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-layers">
  373.                                             <polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/>
  374.                                         </svg>
  375.                                     </i>
  376.                                 </a>
  377.                                 <li style="padding-left: 0" class="sidebar-item hide-item {% if 'all_job_order_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  378.                                     {% if profiles[b_key].job_order.read == 1 %}
  379.                                         <a style="padding-left: 2px" class="sidebar-link" href="{{ path('all_job_order_list') }}" aria-expanded="false">
  380.                                         <span class="hide-menu" style="text-transform: capitalize; font-size: 14px;">{% trans %}Impressions{% endtrans %}</span>
  381.                                     </a>
  382.                                     {% else %}
  383.                                         <a class="sidebar-item hide-item">
  384.                                         <span class="hide-menu" style="text-transform: capitalize; font-size: 14px;">{% trans %}Impressions{% endtrans %}</span>
  385.                                     </a>
  386.                                     {% endif %}
  387.                                 </li>
  388.                             </span>
  389.                                 <div class="dropdown-container">
  390.                                     <ol style="list-style-type: none;">
  391.                                         {# ORDRES D'IMPRESSIONS - Créer >>> #}
  392.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_op == 1 or profiles[b_key].job_order.create == 1 %}
  393.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  394.                                                 {% trans %}Créer{% endtrans %}
  395.                                             </li>
  396.                                         {% endif %}
  397.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_op == 1 %}
  398.                                             <li id="item1" class="sidebar-item hide-item {% if 'production_order_received' in app.request.attributes.get('_route') %} selected {% endif %}">
  399.                                                 <a class="sidebar-link dropdown-item" href="{{ path('production_order_received') }}" aria-expanded="false">
  400.                                                     <span class="hide-menu">{% trans %}Production à décliner{% endtrans %}</span>
  401.                                                 </a>
  402.                                             </li>
  403.                                         {% endif %}
  404.                                         {% if profiles[b_key].job_order.create == 1 %}
  405.                                             <li id="item2" class="sidebar-item hide-item  {% if 'plan_create_job_order' in app.request.attributes.get('_route') %} selected {% endif %}">
  406.                                                 <a class="sidebar-link dropdown-item" href="{{ path('plan_create_job_order', {'plan_id' : 'null', 'production_order_id': 'null'}) }}" aria-expanded="false">
  407.                                                     <span class="hide-menu">{% trans %}Impression catalogue{% endtrans %}</span>
  408.                                                 </a>
  409.                                             </li>
  410.                                         {% endif %}
  411.                                         {# <<< ORDRES D'IMPRESSIONS - Créer #}
  412.                                         {# ORDRES D'IMPRESSIONS - Gérer / Imprimer >>> #}
  413.                                         {% if profiles[b_key].job_order.read == 1 or profiles[b_key].job_order.create == 1 %}
  414.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  415.                                                 {% trans %}Gérer / Imprimer{% endtrans %}
  416.                                             </li>
  417.                                         {% endif %}
  418.                                         {% if profiles[b_key].job_order.read == 1 %}
  419.                                             <li id="item3" class="sidebar-item hide-item {% if 'crm_job_order_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  420.                                                 <a class="sidebar-link dropdown-item" href="{{ path('crm_job_order_list') }}" aria-expanded="false">
  421.                                                     <span class="hide-menu">{% trans %}Ordres d'impression{% endtrans %}</span>
  422.                                                 </a>
  423.                                             </li>
  424.                                         {% endif %}
  425. {#                                        {% if profiles[b_key].job_order.create == 1 %}#}
  426. {#                                            <li id="item4" class="sidebar-item hide-item  {% if 'non_catalog_file' in app.request.attributes.get('_route') %} selected {% endif %}">#}
  427. {#                                                <a class="sidebar-link dropdown-item" href="{{ path('non_catalog_file') }}" aria-expanded="false">#}
  428. {#                                                    <span class="hide-menu">{% trans %}Impression hors catalogue{% endtrans %}</span>#}
  429. {#                                                </a>#}
  430. {#                                            </li>#}
  431. {#                                        {% endif %}#}
  432.                                         {# <<< ORDRES D'IMPRESSIONS - Gérer / Imprimer #}
  433.                                         {# ORDRES D'IMPRESSIONS - Valider >>> #}
  434.                                         {% if profiles[b_key].job_order.read == 1 %}
  435.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  436.                                                 {% trans %}Valider{% endtrans %}
  437.                                             </li>
  438.                                         {% endif %}
  439.                                         {% if profiles[b_key].job_order.read == 1 %}
  440.                                             <li id="item5" class="sidebar-item hide-item {% if 'finished_job_order_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  441.                                                 <a class="sidebar-link dropdown-item" href="{{ path('finished_job_order_list') }}" aria-expanded="false">
  442.                                                     <span class="hide-menu">{% trans %}Contrôle qualité{% endtrans %}</span>
  443.                                                 </a>
  444.                                             </li>
  445.                                         {% endif %}
  446.                                         {# <<< ORDRES D'IMPRESSIONS - Valider #}
  447.                                         {# ORDRES D'IMPRESSIONS - Historique >>> #}
  448.                                         {% if profiles[b_key].history.read == 1 %}
  449.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  450.                                                 {% trans %}Historique{% endtrans %}
  451.                                             </li>
  452.                                         {% endif %}
  453.                                         {% if profiles[b_key].history.read == 1 %}
  454.                                             <li id="item6" class="sidebar-item hide-item  {% if 'print_logs' in app.request.attributes.get('_route') %} selected {% endif %}">
  455.                                                 <a class="sidebar-link dropdown-item" href="{{ path('print_logs') }}" aria-expanded="false">
  456.                                                     <span class="hide-menu">{% trans %}Historique{% endtrans %}</span>
  457.                                                 </a>
  458.                                             </li>
  459.                                         {% endif %}
  460.                                         {# <<< ORDRES D'IMPRESSIONS - Historique #}
  461.                                     </ol>
  462.                                 </div>
  463.                             </div>
  464.                         {% endif %}
  465.                         {# <<< BLOCk IMPRESSIONS #}
  466.                         {# BLOCk PRODUCTIONS >>> #}
  467.                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_ba == 1 or profiles[b_key].is_op == 1 or profiles[b_key].is_cl == 1 %}
  468.                             <div class="group-nav" id="menu2">
  469.                             <span class="nav-small-cap" style="padding: 0 0 0 -2px;">
  470.                                 <a href="#" class="hide-menu dropdown-btn">
  471.                                     <i class="fa fa-cubes" aria-hidden="true" style="font-size: 24px; color: #9eabc0"></i>
  472.                                 </a>
  473.                                 <a class="sidebar-item hide-item">
  474.                                     <span class="hide-menu" style="text-transform: capitalize; font-size: 14px; color: #818181">{% trans %}Productions{% endtrans %}</span>
  475.                                 </a>
  476.                             </span>
  477.                                 <div class="dropdown-container">
  478.                                     <ol style="list-style-type: none;">
  479.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_ba == 1 or profiles[b_key].is_cl == 1 %}
  480.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  481.                                                 {% trans %}Créer{% endtrans %}
  482.                                             </li>
  483.                                         {% endif %}
  484.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_ba == 1 or profiles[b_key].is_cl == 1 %}
  485.                                             <li id="item7" class="sidebar-item hide-item {% if 'plan_create_production_order' in app.request.attributes.get('_route') %} selected {% endif %}">
  486.                                                 <a class="sidebar-link dropdown-item" href="{{ path('plan_create_production_order', {'plan_id' : 'null'}) }}" aria-expanded="false">
  487.                                                     <span class="hide-menu">{% trans %}Production à initier{% endtrans %}</span>
  488.                                                 </a>
  489.                                             </li>
  490.                                         {% endif %}
  491.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_ba == 1 or profiles[b_key].is_op == 1 or profiles[b_key].is_cl == 1 %}
  492.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  493.                                                 {% trans %}Gérer / Suivre{% endtrans %}
  494.                                             </li>
  495.                                         {% endif %}
  496.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_ba == 1 or profiles[b_key].is_cl == 1 %}
  497.                                             <li id="item8" class="sidebar-item hide-item  {% if 'get_production_order' in app.request.attributes.get('_route') %} selected {% endif %}">
  498.                                                 <a class="sidebar-link dropdown-item" href="{{ path('get_production_order') }}" aria-expanded="false">
  499.                                                     <span class="hide-menu">{% trans %}Ordres générés{% endtrans %}</span>
  500.                                                 </a>
  501.                                             </li>
  502.                                         {% endif %}
  503.                                         {% if profiles[b_key].is_om == 1 or profiles[b_key].is_fm == 1 or profiles[b_key].is_op == 1 %}
  504.                                             <li id="item9" class="sidebar-item hide-item {% if 'production_order_received' in app.request.attributes.get('_route') %} selected {% endif %}">
  505.                                                 <a class="sidebar-link dropdown-item" href="{{ path('production_order_received') }}" aria-expanded="false">
  506.                                                     <span class="hide-menu">{% trans %}Ordres reçus{% endtrans %}</span>
  507.                                                 </a>
  508.                                             </li>
  509.                                         {% endif %}
  510.                                     </ol>
  511.                                 </div>
  512.                             </div>
  513.                         {% endif %}
  514.                         {# <<< BLOCk PRODUCTIONS #}
  515.                         {# BLOCk IMPRIMANTES >>> #}
  516.                         {% if (profiles[b_key].planning.read == 1 or profiles[b_key].printer.read == 1) and profiles[b_key].is_cl != 1 %}
  517.                             <div class="group-nav" id="menu3">
  518.                             <span class="nav-small-cap" style="color: #818181">
  519.                                 <a href="#" class="hide-menu dropdown-btn">
  520.                                     <span style="padding: 0 0 0 2px">
  521.                                         <svg width="28px" height="26px" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
  522.                                           <rect x="8" y="12" width="48" height="40" rx="4" fill="#B0BEC5"/> <rect x="12" y="16" width="40" height="28" fill="#FFFFFF"/>
  523.                                           <path d="M16 48L24 32H40L48 48H16Z" fill="#999999"/> <rect x="22" y="26" width="20" height="2" rx="1" fill="#B0BEC5"/>
  524.                                           <rect x="22" y="30" width="20" height="2" rx="1" fill="#B0BEC5"/> <rect x="12" y="46" width="4" height="2" rx="1" fill="#B0BEC5"/>
  525.                                           <rect x="48" y="46" width="4" height="2" rx="1" fill="#B0BEC5"/> <rect x="14" y="52" width="36" height="2" fill="#90A4AE"/>
  526.                                           <rect x="14" y="58" width="36" height="2" fill="#90A4AE"/> <circle cx="18" cy="8" r="2" fill="#B0BEC5"/>
  527.                                           <circle cx="24" cy="8" r="2" fill="#B0BEC5"/> <rect x="32" y="6" width="14" height="4" rx="2" fill="#B0BEC5"/>
  528.                                         </svg>
  529.                                     </span>
  530.                                 </a>
  531.                                 <a class="sidebar-item hide-item">
  532.                                     <span class="hide-menu" style="text-transform: capitalize; padding: 0 0 0 4px; font-size: 14px; color: #818181">{% trans %}Imprimantes{% endtrans %}</span>
  533.                                 </a>
  534.                             </span>
  535.                                 <div class="dropdown-container">
  536.                                     <ol style="list-style-type: none;">
  537.                                         {% if profiles[b_key].printer.read == 1 or profiles[b_key].planning.read == 1 %}
  538.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  539.                                                 {% trans %}Gérer{% endtrans %}
  540.                                             </li>
  541.                                         {% endif %}
  542.                                         {% if profiles[b_key].printer.read == 1 %}
  543.                                             <li id="item10" class="sidebar-item hide-item {% if 'printer_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  544.                                                 <a class="sidebar-link dropdown-item" href="{{ path('printer_list') }}" aria-expanded="false">
  545.                                                     <span class="hide-menu">{% trans %}Liste des imprimantes{% endtrans %}</span>
  546.                                                 </a>
  547.                                             </li>
  548.                                         {% endif %}
  549.                                         {% if profiles[b_key].planning.read == 1%}
  550.                                             <li id="item11" class="sidebar-item hide-item  {% if 'production_planning' in app.request.attributes.get('_route') %} selected {% endif %}">
  551.                                                 <a class="sidebar-link dropdown-item" href="{{ path('production_planning') }}" aria-expanded="false">
  552.                                                     <span class="hide-menu">{% trans %}Planning d'impressions{% endtrans %}</span>
  553.                                                 </a>
  554.                                             </li>
  555.                                         {% endif %}
  556.                                     </ol>
  557.                                 </div>
  558.                             </div>
  559.                         {% endif %}
  560.                         {# <<< BLOCk IMPRIMANTES #}
  561.                         {# BLOCk CATALOGUE >>> #}
  562.                         {% if profiles[b_key].plan.read == 1 and profiles[b_key].is_op == 0 %}
  563.                             <div class="group-nav" id="menu4">
  564.                             <span class="nav-small-cap" style="padding: 0 33px !important; color: #818181">
  565.                                 <a href="#" class="hide-menu dropdown-btn">
  566.                                     <span style="color: #9eabc0">
  567.                                         <svg xmlns="http://www.w3.org/2000/svg" width="26" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
  568.                                             <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/>
  569.                                             <line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/>
  570.                                         </svg>
  571.                                     </span>
  572.                                 </a>
  573.                                 <li style="padding-left: 0" class="sidebar-item hide-item {% if 'plan_l_gen' in app.request.attributes.get('_route') %} selected {% endif %}">
  574.                                     <a style="padding-left: 2px" class="sidebar-link" href="{{ path('plan_l_gen') }}" aria-expanded="false">
  575.                                         <span class="hide-menu"style="text-transform: capitalize; font-size: 14px;">{% trans %}Catalogue{% endtrans %}</span>
  576.                                     </a>
  577.                                 </li>
  578.                             </span>
  579.                                 <div class="dropdown-container">
  580.                                     <ol style="list-style-type: none;">
  581.                                         {% if profiles[b_key].plan.read == 1 %}
  582.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  583.                                                 {% trans %}Gérer{% endtrans %}
  584.                                             </li>
  585.                                         {% endif %}
  586.                                         {% if profiles[b_key].plan.read == 1 %}
  587.                                             <li id="item12" class="sidebar-item hide-item {% if 'plan_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  588.                                                 <a class="sidebar-link dropdown-item" href="{{ path('plan_list') }}" aria-expanded="false">
  589.                                                     <span class="hide-menu">{% trans %}Catalogue de fichiers{% endtrans %}</span>
  590.                                                 </a>
  591.                                             </li>
  592.                                         {% endif %}
  593.                                     </ol>
  594.                                 </div>
  595.                             </div>
  596.                         {% endif %}
  597.                         {# <<< BLOCk CATALOGUE #}
  598.                         {# BLOCk ADMINISTRATION >>> #}
  599.                         {% if profiles[b_key].industrial.read == 1 or profiles[b_key].industrial.create == 1 or profiles[b_key].user.read == 1 or profiles[b_key].user.create == 1 or profiles[b_key].structures.read == 1 or profiles[b_key].structures.create == 1 or profiles[b_key].site.read == 1 or profiles[b_key].site.create == 1 %}
  600.                             <div class="group-nav" id="menu5">
  601.                             <span class="nav-small-cap" style="padding: 0 33px !important; color: #818181">
  602.                                 <a href="#" class="hide-menu dropdown-btn">
  603.                                     <i class="fas fa-edit" style="color: #9eabc0; font-size: 18px"></i>
  604.                                 </a>
  605.                                 <a class="sidebar-item hide-item">
  606.                                     <span class="hide-menu" style="text-transform: capitalize; padding: 0 0 0 1px; font-size: 14px;">{% trans %}Administration{% endtrans %}</span>
  607.                                 </a>
  608.                             </span>
  609.                                 <div class="dropdown-container">
  610.                                     <ol style="list-style-type: none;">
  611.                                         {% if profiles[b_key].user.create == 1 or profiles[b_key].structures.create == 1 or profiles[b_key].site.create == 1 or profiles[b_key].industrial.create == 1 %}
  612.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  613.                                                 {% trans %}Créer{% endtrans %}
  614.                                             </li>
  615.                                         {% endif %}
  616.                                         {% if profiles[b_key].user.create == 1 %}
  617.                                             <li id="item13" class="sidebar-item hide-item {% if 'bubble_user_add' in app.request.attributes.get('_route') %} selected {% endif %}">
  618.                                                 <a class="sidebar-link dropdown-item" href="{{ path('bubble_user_add') }}" aria-expanded="false">
  619.                                                     <span class="hide-menu">{% trans %}Un utilisateur{% endtrans %}</span>
  620.                                                 </a>
  621.                                             </li>
  622.                                         {% endif %}
  623.                                         {# {% if profiles[b_key].structures.create == 1 %}
  624.                                             <li id="item14" class="sidebar-item hide-item {% if 'organizations_add' in app.request.attributes.get('_route') %} selected {% endif %}">
  625.                                                 <a class="sidebar-link dropdown-item" href="{{ path('organizations_add') }}" aria-expanded="false">
  626.                                                     <span class="hide-menu">{% trans %}Une organisation{% endtrans %}</span>
  627.                                                 </a>
  628.                                             </li>
  629.                                         {% endif %} #}
  630.                                         {# {% if profiles[b_key].structures.create == 1 %}
  631.                                             <li id="item15" class="sidebar-item hide-item {% if 'formation_add' in app.request.attributes.get('_route') %} selected {% endif %}">
  632.                                                 <a class="sidebar-link dropdown-item" href="{{ path('formation_add') }}" aria-expanded="false">
  633.                                                     <span class="hide-menu">{% trans %}Une formation{% endtrans %}</span>
  634.                                                 </a>
  635.                                             </li>
  636.                                         {% endif %} #}
  637.                                         {% if profiles[b_key].site.create == 1 %}
  638.                                             <li id="item16" class="sidebar-item hide-item {% if 'site_add' in app.request.attributes.get('_route') %} selected {% endif %}">
  639.                                                 <a class="sidebar-link dropdown-item" href="{{ path('site_add') }}" aria-expanded="false">
  640.                                                     <span class="hide-menu">{% trans %}Un site{% endtrans %}</span>
  641.                                                 </a>
  642.                                             </li>
  643.                                         {% endif %}
  644.                                         {% if profiles[b_key].industrial.create == 1 %}
  645.                                             <li id="item17" class="sidebar-item hide-item {% if 'industrial_add' in app.request.attributes.get('_route') %} selected {% endif %}">
  646.                                                 <a class="sidebar-link dropdown-item" href="{{ path('industrial_add') }}" aria-expanded="false">
  647.                                                     <span class="hide-menu">{% trans %}Un industriel{% endtrans %}</span>
  648.                                                 </a>
  649.                                             </li>
  650.                                         {% endif %}
  651.                                         {% if profiles[b_key].user.read == 1 or profiles[b_key].structures.read == 1 or profiles[b_key].industrial.read == 1 or profiles[b_key].site.read == 1 %}
  652.                                             <li class="items-subtitle sidebar-item hide-item" style="text-align: left; font-weight: bold; padding: 12px 0 0 30px;">
  653.                                                 {% trans %}Gérer{% endtrans %}
  654.                                             </li>
  655.                                         {% endif %}
  656.                                         {% if profiles[b_key].user.read == 1 %}
  657.                                             <li id="item18" class="sidebar-item hide-item {% if 'bubble_user_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  658.                                                 <a class="sidebar-link dropdown-item" href="{{ path('bubble_user_list') }}" aria-expanded="false">
  659.                                                     <span class="hide-menu">{% trans %}Liste des utilisateurs{% endtrans %}</span>
  660.                                                 </a>
  661.                                             </li>
  662.                                         {% endif %}
  663.                                         {# {% if profiles[b_key].structures.read == 1 %}
  664.                                             <li id="item19" class="sidebar-item hide-item {% if 'organizations_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  665.                                                 <a class="sidebar-link dropdown-item" href="{{ path('organizations_list') }}" aria-expanded="false">
  666.                                                     <span class="hide-menu">{% trans %}Liste des organisations{% endtrans %}</span>
  667.                                                 </a>
  668.                                             </li>
  669.                                         {% endif %} #}
  670.                                         {# {% if profiles[b_key].structures.read == 1 %}
  671.                                             <li id="item20" class="sidebar-item hide-item {% if 'formation_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  672.                                                 <a class="sidebar-link dropdown-item" href="{{ path('formation_list') }}" aria-expanded="false">
  673.                                                     <span class="hide-menu">{% trans %}Liste des formations{% endtrans %}</span>
  674.                                                 </a>
  675.                                             </li>
  676.                                         {% endif %} #}
  677.                                         {% if profiles[b_key].site.read == 1 %}
  678.                                             <li id="item21" class="sidebar-item hide-item {% if 'site_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  679.                                                 <a class="sidebar-link dropdown-item" href="{{ path('site_list') }}" aria-expanded="false">
  680.                                                     <span class="hide-menu">{% trans %}Liste des sites{% endtrans %}</span>
  681.                                                 </a>
  682.                                             </li>
  683.                                         {% endif %}
  684.                                         {% if profiles[b_key].industrial.read == 1 %}
  685.                                             <li id="item22" class="sidebar-item hide-item {% if 'industrial_list' in app.request.attributes.get('_route') %} selected {% endif %}">
  686.                                                 <a class="sidebar-link dropdown-item" href="{{ path('industrial_list') }}" aria-expanded="false">
  687.                                                     <span class="hide-menu">{% trans %}Liste des industriels{% endtrans %}</span>
  688.                                                 </a>
  689.                                             </li>
  690.                                         {% endif %}
  691.                                     </ol>
  692.                                 </div>
  693.                             </div>
  694.                         {% endif %}
  695.                         {# <<< BLOCk ADMINISTRATION #}
  696.                         {# BLOCk INDICATEURS >>> #}
  697.                         {# {% if profiles[b_key].dashboard.read == 1 %}
  698.                             <div class="group-nav" id="menu1001">
  699.                                 <ol style="list-style-type: none; padding: 0 0 0 3px;">
  700.                                     <li id="item1001" class="sidebar-item {% if 'dashboard' in app.request.attributes.get('_route') %} selected {% endif %}">
  701.                                         <a class="sidebar-link dropdown-item" href="{{ path('dashboard') }}" aria-expanded="false">
  702.                                             <i style="color: #9eabc0">
  703.                                                 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bar-chart-2">
  704.                                                     <line x1="18" y1="20" x2="18" y2="10"/>
  705.                                                     <line x1="12" y1="20" x2="12" y2="4"/>
  706.                                                     <line x1="6" y1="20" x2="6" y2="14"/>
  707.                                                 </svg>
  708.                                             </i>
  709.                                             <span class="hide-menu" style="text-transform: capitalize; padding: 0 0 0 2px; font-size: 14px;">{% trans %}Indicateurs{% endtrans %}</span>
  710.                                         </a>
  711.                                     </li>
  712.                                 </ol>
  713.                             </div>
  714.                         {% endif %} #}
  715.                         {# <<< BLOCk INDICATEUR #}
  716.                         {#  END NAV SITE  #}
  717.                     {% endif %}
  718.                     <li class="nav-small-cap"><span class="hide-menu">{% trans %}Aide{% endtrans %}</span></li>
  719.                     <div class="group-nav" id="menu1002">
  720.                         <ol style="list-style-type: none; padding: 0 0 0 3px;">
  721.                             <li id="item1002" class="sidebar-item {% if 'contact' in app.request.attributes.get('_route') %} selected {% endif %}">
  722.                                 <a class="sidebar-link dropdown-item" href="{{ path('contact') }}" aria-expanded="false">
  723.                                     <i data-feather="message-square" class="feather-icon"></i>
  724.                                     <span class="hide-menu" style="text-transform: capitalize; padding: 0 0 0 2px; font-size: 14px;">{% trans %}Assistance{% endtrans %}</span>
  725.                                 </a>
  726.                             </li>
  727.                         </ol>
  728.                     </div>
  729.                     <div class="group-nav" id="menu1003">
  730.                         <ol style="list-style-type: none; padding: 0 0 0 3px;">
  731.                             <li id="item1003" class="sidebar-item {% if 'logout' in app.request.attributes.get('_route') %} selected {% endif %}">
  732.                                 <a class="sidebar-link dropdown-item" href="{{ path('logout') }}" aria-expanded="false">
  733.                                     <i data-feather="log-out" class="feather-icon"></i>
  734.                                     <span class="hide-menu" style="text-transform: capitalize; padding: 0 0 0 2px; font-size: 14px;">{% trans %}Déconnexion{% endtrans %}</span>
  735.                                 </a>
  736.                             </li>
  737.                         </ol>
  738.                     </div>
  739.                 </ul>
  740.             </nav>
  741.             {# End Sidebar navigation #}
  742.             <div class="creditArea">
  743.                 <div class="version">MainChain v{{ MC_VERSION }}</div>
  744.                 <a target="_blank" href="https://www.vistory.com">
  745.                     <span>Copyright ©{{ "now"|date("Y") }} Vistory</span>
  746.                 </a>
  747.             </div>
  748.         </div>
  749.     </aside>
  750.     {# ============================================================== #}
  751.     {# End Left Sidebar - style you can find in sidebar.scss #}
  752.     {# ============================================================== #}
  753.     {# ============================================================== #}
  754.     {# Page wrapper #}
  755.     {# ============================================================== #}
  756.     <div class="page-wrapper">
  757.         {# ============================================================== #}
  758.         {# Bread crumb and right sidebar toggle #}
  759.         {# ============================================================== #}
  760.         {% block breadcrumb %}
  761.         {% endblock %}
  762.         {# ============================================================== #}
  763.         {# End Bread crumb and right sidebar toggle #}
  764.         {# ============================================================== #}
  765.         {# ============================================================== #}
  766.         {# Container fluid  #}
  767.         {# ============================================================== #}
  768.         <div class="container-fluid">
  769.             {% for message in app.flashes('success') %}
  770.                 <div class="alert alert-success alert-dismissible bg-success text-white border-0 fade show" role="alert">
  771.                     <button type="button" class="close" data-bs-dismiss="alert" aria-label="Close">
  772.                         <span aria-hidden="true">×</span>
  773.                     </button>
  774.                     {{ message | raw }}
  775.                 </div>
  776.             {% endfor %}
  777.             {% for message in app.flashes('errors') %}
  778.                 <div class="alert alert-danger alert-dismissible border-0 fade show" role="alert">
  779.                     <button type="button" class="close" data-bs-dismiss="alert" aria-label="Close">
  780.                         <span aria-hidden="true">×</span>
  781.                     </button>
  782.                     {{ message | raw }}
  783.                 </div>
  784.             {% endfor %}
  785.             {% for message in app.flashes('warning') %}
  786.                 <div class="alert alert-warning alert-dismissible bg-warning text-white border-0 fade show" role="alert">
  787.                     <button type="button" class="close" data-bs-dismiss="alert" aria-label="Close">
  788.                         <span aria-hidden="true">×</span>
  789.                     </button>
  790.                     {{ message | raw }}<br>
  791.                 </div>
  792.             {% endfor %}
  793.             {% for message in app.flashes('info') %}
  794.                 <div class="alert alert-info alert-dismissible bg-info text-white border-0 fade show" role="alert">
  795.                     <button type="button" class="close" data-bs-dismiss="alert" aria-label="Close">
  796.                         <span aria-hidden="true">×</span>
  797.                     </button>
  798.                     {{ message | raw }}
  799.                 </div>
  800.             {% endfor %}
  801.             {% block content %}
  802.             {% endblock %}
  803.         </div>
  804.         {# ============================================================== #}
  805.         {# End Container fluid #}
  806.         {# ============================================================== #}
  807.         {# ============================================================= #}
  808.         {# footer #}
  809.         {# ============================================================== #}
  810.         <footer class="footer text-center text-muted"></footer>
  811.         {# ============================================================== #}
  812.         {# End footer #}
  813.         {# ============================================================== #}
  814.     </div>
  815.     {# ============================================================== #}
  816.     {# End Page wrapper #}
  817.     {# ============================================================== #}
  818. </div>
  819. {% block javascripts %}
  820.     <script src="{{ asset('js/jquery-3.6.1.js') }}"></script>
  821.     <script src="{{ asset('js/app.js') }}"></script>
  822.     <script src="{{ asset('utils/string-cleaner-utils.js') }}"></script>
  823.     {# custom JS #}
  824.     <script src="{{ asset('js/perfect-scrollbar.jquery.min.js') }}"></script>
  825.     <script src="{{ asset('js/feather.min.js') }}"></script>
  826.     <script src="{{ asset('js/custom.js') }}"></script>
  827.     <script src="{{ asset('libs/bootstrap/dist/js/bootstrap.js') }}"></script>
  828.     <script src="{{ asset('libs/bootstrap/dist/js/bootstrap.bundle.js') }}"></script>
  829.     <script src="{{ asset('js/dompurify-3.0.3-purify.min.js') }}"></script>
  830.     <script type="text/javascript" nonce="fb36db628485fc3a388a259581f9057d">
  831.         $(document).ready(function() {
  832.             {# Display Navbar collaps #}
  833.             /*const toggleNavbar = (isOpen) => {
  834.                 $('.topbartoggler').toggleClass('d-none', isOpen).toggleClass('d-block', !isOpen);
  835.                 $('.topbartogglerclose').toggleClass('d-none d-block d-md-none', !isOpen);
  836.                 $('.navbar-collapse').toggleClass('d-flex', isOpen)
  837.                     .toggleClass('d-none', !isOpen)
  838.                     .css('transition', 'height 0.35s ease');
  839.             }
  840.             $('.topbartoggler').on('click', function() {
  841.                 toggleNavbar(true);
  842.             });
  843.             $('.topbartogglerclose').on('click', function() {
  844.                 toggleNavbar(false);
  845.             });*/
  846.             {# Show items on over #}
  847.             // Show hidden items when mouse hovers over the sidebar
  848.             $('.scroll-sidebar').on('mouseover', function() {
  849.                 if ($('#main-wrapper').data('sidebartype') === 'mini-sidebar') {
  850.                     $('.hide-item').show();
  851.                 }
  852.             });
  853.             // Resets the sidebar to the initial scroll position when the mouse hovers over the page
  854.             $('.page-wrapper').on('mouseover', function() {
  855.                 $('.scroll-sidebar').scrollTop(0);
  856.             });
  857.             if ($('.bubble-info > .bubble-credits').children().length == 0) {
  858.                 $('.credit-nav-bar').css('display', 'none')
  859.             }
  860.         });
  861.              
  862.         
  863.         var one = false;
  864.         $('.nav-item.dropdown > a#navbarDropdown').on('click', () => {
  865.             if ($('a#navbarDropdown').hasClass("show") && one) {
  866.                 $('.nav-item.dropdown > a#navbarDropdown').removeClass("show")
  867.                 $('.nav-item.dropdown > a#navbarDropdown').attr("aria-expanded", "false");
  868.                 $('.dropdown-parameters.dropdown-menu-end').removeClass("show")
  869.                 one= false;
  870.             } else {
  871.                 $('.nav-item.dropdown > a#navbarDropdown').addClass("show")
  872.                 $('.nav-item.dropdown > a#navbarDropdown').attr("aria-expanded", "true");
  873.                 $('.dropdown-parameters.dropdown-menu-end').addClass("show")  
  874.                 one = true              
  875.             }
  876.         })
  877.         $(window).on('resize', function() {
  878.             var windowWidth = $(window).width();
  879.             if (windowWidth < 769) {
  880.                 $('.plan-mozaik-nav-container').css('display', 'none');
  881.             } else {
  882.                 $('.plan-mozaik-nav-container').css('display', 'block');
  883.             }
  884.             if (windowWidth < 768) {
  885.                 $('#item12 > .sidebar-link').attr('href', '{{ path('plan_list_mozaik') }}');
  886.                 $('#menu4 > span:nth-child(1) > li:nth-child(2) > a:nth-child(1)').attr('href', '{{ path('plan_list_mozaik') }}');
  887.             } else {
  888.                 $('#item12 > .sidebar-link').attr('href', '{{ path('plan_list') }}');
  889.                 $('#menu4 > span:nth-child(1) > li:nth-child(2) > a:nth-child(1)').attr('href', '{{ path('plan_list') }}');
  890.             }
  891.             if (windowWidth < 711) {
  892.                 $('.info-user-connect, .user-connect').removeClass('d-none').addClass('d-flex');                         
  893.                 $('.nav-item.bubble-info.credit .credit-on-mobile').removeClass('d-none').addClass('d-flex');                         
  894.                 $('.nav-item.bubble-info.credit .bubble-credits').removeClass('d-flex').addClass('d-none');  
  895.                 $('.union-ul').children().unwrap();          
  896.                 $('ul.navbar-nav:nth-child(1)').removeClass('mr-auto')           
  897.             } else {
  898.                 $('.info-user-connect, .user-connect').removeClass('d-flex').addClass('d-none');             
  899.                 $('.nav-item.bubble-info.credit .credit-on-mobile').removeClass('d-flex').addClass('d-none');                         
  900.                 $('.nav-item.bubble-info.credit .bubble-credits').removeClass('d-none').addClass('d-flex');                  
  901.                 $('ul.navbar-nav').slice(0, 2).wrapAll('<div class="union-ul d-flex align-items-center"></div>');           
  902.                 $('ul.navbar-nav:nth-child(1)').addClass('mr-auto')          
  903.             }
  904.             
  905.             if (windowWidth < 710) {
  906.                 $('.translation-action-block img').each(function() {
  907.                     const localChange = '{{locale}}';
  908.                     if (localChange.toUpperCase() == 'FR') {
  909.                         $(`img[alt="FR"]`).css('display', 'block');
  910.                         $(`img[alt="BG"]`).css('display', 'none');
  911.                     } 
  912.                     
  913.                     if (localChange.toUpperCase() == 'EN') {
  914.                         $(`img[alt="FR"]`).css('display', 'none');
  915.                         $(`img[alt="BG"]`).css('display', 'block');
  916.                     }               
  917.                 });
  918.             } else {            
  919.                 $(`img[alt="FR"]`).css('display', 'block');
  920.                 $(`img[alt="BG"]`).css('display', 'block');
  921.             }
  922.         });
  923.         $(document).on('click', function(e) {
  924.             // Vérifie si le clic est en dehors de la div et du bouton
  925.             if (!$(e.target).closest('.scroll-sidebar').length && !$(e.target).is('.ti-close')) {
  926.                 if($('#main-wrapper').hasClass('show-sidebar')){
  927.                     $('#main-wrapper').removeClass('show-sidebar')
  928.                     $('.ti-close').addClass('ti-menu')
  929.                 }
  930.             }
  931.         });
  932.         const dropdownToggle = document.querySelector('.dropdown-toggle-credit');
  933.         const dropdownCredits = document.querySelector('.dropdown-credits');
  934.         if (dropdownToggle != null) {
  935.             dropdownToggle.addEventListener('mouseover', () => {
  936.                 dropdownCredits.style.display = 'block';
  937.             });
  938.         }
  939.         if (dropdownToggle != null) {
  940.             dropdownToggle.addEventListener('mouseleave', () => {
  941.                 dropdownCredits.style.display = 'none';
  942.             });
  943.         }
  944.         $('.mc-form-control').each(function(){
  945.             if($(this).val().length > 0){
  946.                 $(this).next('.mc-label').addClass('mc-label-fixed');
  947.             }
  948.         });
  949.     </script>
  950.     <script type="text/javascript" src="https://cdn.datatables.net/plug-ins/1.10.24/i18n/French.json"></script>
  951.     <script type="text/javascript" src="{{ asset('/extra-libs/c3/d3.min.js') }}"></script>
  952.     <script type="text/javascript" src="{{ asset('/extra-libs/c3/c3.min.js') }}"></script>
  953.     <script type="text/javascript" src="{{ asset('/extra-libs/jvector/jquery-jvectormap-2.0.2.min.js') }}"></script>
  954.     <script type="text/javascript" src="{{ asset('/extra-libs/jvector/jquery-jvectormap-world-mill-en.js') }}"></script>
  955.     {# Select2 #}
  956.     <script type="text/javascript" src="{{ asset('js/select2.min.js')}}"></script>
  957.     <script type="text/javascript" src="{{ asset('js/app-style-switcher.js') }}"></script>
  958.     <script type="text/javascript" src="{{ asset('js/printers.js') }}"></script>
  959.     <script type="text/javascript" src="{{ asset('js/sidebarmenu.js') }}"></script>
  960.     <script type="text/javascript" src="{{ asset('libs/datatables.net-dt-2.0.3/js/datatables-dt-2.0.3.min.js') }}"></script>
  961.     {# Sweetalert #}
  962.     <script type="text/javascript" src="{{ asset('js/sweetalert.min.js') }}"></script>
  963.     <script src="{{ asset('js/app-style-switcher.js') }}" ></script>
  964.     {# Dashboard page including libraries #}
  965.     {% if app.request.attributes.get('_route') == 'dashboard' %}
  966.     <script type="text/javascript" src="{{ asset('libs/raphael/2.0.2/raphael_2.0.2.js') }}"></script>
  967.     <script type="text/javascript" src="{{ asset('libs/morris.js/morris.min.js') }}"></script>
  968.     <script type="text/javascript" src="{{ asset('libs/daterangepicker/moment.min.js') }}" ></script>
  969.     <script type="text/javascript" src="{{ asset('libs/daterangepicker/daterangepicker.js') }}" ></script>
  970.     {% endif %}
  971.     {# ****** SIDEBAR WITH DROPDOWN >>> ****** #}
  972.     <script>
  973.         $(document).ready(function() {
  974.             // Restore the state from localStorage
  975.             var activeMenu = localStorage.getItem('activeMenu');
  976.             var selectedItem = localStorage.getItem('selectedItem');
  977.             if (activeMenu) {
  978.                 var $activeGroupNav = $('#' + activeMenu);
  979.                 $activeGroupNav.addClass('active');
  980.                 $activeGroupNav.find('.dropdown-container').show();
  981.             }
  982.             // Handle dropdown button click
  983.             $('.dropdown-btn').on('click', function(e) {
  984.                 e.preventDefault();
  985.                 var $this = $(this);
  986.                 var $dropdownContent = $this.next('.dropdown-container');
  987.                 var $groupNav = $this.closest('.group-nav');
  988.                 // Close all other dropdowns
  989.                 $('.group-nav.active').not($groupNav).removeClass('active').find('.dropdown-container').slideUp();
  990.                 // Toggle the current dropdown
  991.                 $dropdownContent.slideToggle();
  992.                 $groupNav.toggleClass('active');
  993.                 // Store the state in localStorage
  994.                 if ($groupNav.hasClass('active')) {
  995.                     localStorage.setItem('activeMenu', $groupNav.attr('id'));
  996.                 } else {
  997.                     localStorage.removeItem('activeMenu');
  998.                 }
  999.             });
  1000.             $('.dropdown-container').css('padding-left', '20px');
  1001.             // Handle item click
  1002.             // Handle window resize
  1003.             $(window).on('resize', function() {
  1004.                 const currentWidth = $(window).width();
  1005.                 const leftSidebar = $('.left-sidebar').width();
  1006.                 if (currentWidth < 768 && leftSidebar > 260) {
  1007.                     // Hide text and show icons only
  1008.                     $('.left-sidebar .sidebar-nav .hide-menu').hide();
  1009.                     $('.dropdown-container').slideUp();
  1010.                 } else {
  1011.                     // Show text and dropdown content if the menu was active
  1012.                     $('.left-sidebar .sidebar-nav .hide-menu').show();
  1013.                     $('.group-nav.active .dropdown-container').show();
  1014.                 }
  1015.                 const dropdownItem = $('.dropdown-item');
  1016.                 const item1000EltIconSvg = $('#item1000 i svg');
  1017.                 const item1000EltIconSvgTxt = $('#item1000 .hide-menu');
  1018.                 const item1001EltIconSvg = $('#item1001 i svg');
  1019.                 const item1001EltIconSvgTxt = $('#item1001 .hide-menu');
  1020.                 const item1002EltIconSvg = $('#item1002 i svg');
  1021.                 const item1002EltIconSvgTxt = $('#item1002 .hide-menu');
  1022.                 const item1003EltIconSvg = $('#item1003 i svg');
  1023.                 const item1003EltIconSvgTxt = $('#item1003 .hide-menu');
  1024.                 if (currentWidth > 767 && currentWidth < 1170) {
  1025.                     dropdownItem.css('padding-left', '8px');
  1026.                     item1000EltIconSvg.show();
  1027.                     item1000EltIconSvg.css('padding-left', '0px');
  1028.                     item1000EltIconSvgTxt.hide();
  1029.                     item1001EltIconSvg.show();
  1030.                     item1001EltIconSvg.css('padding-left', '0px');
  1031.                     item1001EltIconSvgTxt.hide();
  1032.                     item1002EltIconSvg.show();
  1033.                     item1002EltIconSvg.css('padding-left', '0px');
  1034.                     item1002EltIconSvgTxt.hide();
  1035.                     item1003EltIconSvg.show();
  1036.                     item1003EltIconSvg.css('padding-left', '0px');
  1037.                     item1003EltIconSvgTxt.hide();
  1038.                 } else {
  1039.                     dropdownItem.each(function() {
  1040.                         $(this).css('cssText', 'padding-left: 30px !important;');
  1041.                     });
  1042.                     item1000EltIconSvg.show();
  1043.                     item1000EltIconSvgTxt.show();
  1044.                     item1001EltIconSvg.show();
  1045.                     item1001EltIconSvgTxt.show();
  1046.                     item1002EltIconSvg.show();
  1047.                     item1002EltIconSvgTxt.show();
  1048.                     item1003EltIconSvg.show();
  1049.                     item1003EltIconSvgTxt.show();
  1050.                 }
  1051.             });
  1052.             // Trigger resize event on page load
  1053.             $(window).trigger('resize');
  1054.             // Close dropdowns when clicking on specific links
  1055.             $('#item1000 a, #item1001 a, #item1002 a, #item1003 a').on('click', function(e) {
  1056.                 // Remove 'active' class and hide the dropdown
  1057.                 $('.group-nav.active').removeClass('active').find('.dropdown-container').slideUp();
  1058.                 // Clear the activeMenu state in localStorage
  1059.                 localStorage.removeItem('activeMenu');
  1060.             });
  1061.             var $liElement = $('#item1000');
  1062.             // Check if the class contains "selected"
  1063.             if ($liElement.hasClass('selected')) {
  1064.                 // Remove 'active' class and hide the dropdown
  1065.                 $('.group-nav.active').removeClass('active').find('.dropdown-container').slideUp();
  1066.                 // Clear the activeMenu state in localStorage
  1067.                 localStorage.removeItem('activeMenu');
  1068.             }
  1069.         });
  1070.     </script>
  1071.     {# ****** <<< SIDEBAR WITH DROPDOWN ****** #}
  1072. {% endblock %}
  1073. {% block modal %}{% endblock %}
  1074. </body>
  1075. </html>