templates/app/user/index.html.twig line 1

  1. {% extends 'app/index.html.twig' %} {% block title %}liste d'enfants {% endblock
  2. %} {% block content %} {% include "app/_partials/breadcrumb.html.twig" with {
  3. 'title': 'Collaborateurs'|trans, 'parent': 'Compte & Utilisateurs'|trans } %}
  4. <div class="row">
  5.   <div class="col-12">
  6.     <div class="card">
  7.       <div class="card-header">
  8.         <div class="row align-items-center">
  9.           <div class="col-md-6">
  10.             <div class="mb-3">
  11.               <h5 class="card-title">
  12.                 {% trans %} Tous les utilisateurs {% endtrans %}
  13.                 <span class="text-muted fw-normal ms-2"
  14.                   >({{ users | length }})</span
  15.                 >
  16.               </h5>
  17.             </div>
  18.           </div>
  19.           <div class="col-md-6">
  20.             <div
  21.               class="d-flex flex-wrap align-items-center justify-content-end gap-2 mb-3"
  22.             >
  23.               <div>
  24.                 <ul class="nav nav-pills"></ul>
  25.               </div>
  26.               <div>
  27.                 {# <a
  28.                   href="{{ path('app_user_new') }}"
  29.                   class="btn btn-primary"
  30.                   data-bs-toggle="modal"
  31.                   data-bs-target="#add-modal"
  32.                 >
  33.                   <i class="bx bx-plus me-1"></i>
  34.                   {% trans %} Ajouter un nouveau {% endtrans %}
  35.                 </a> #}
  36.               </div>
  37.               {% include "app/user/add-modal.html.twig" %}
  38.             </div>
  39.           </div>
  40.         </div>
  41.       </div>
  42.       <div class="card-body">
  43.         <div class="table">
  44.           <table
  45.             id="datatable"
  46.             class="table table-bordered dt-responsive nowrap w-100"
  47.           >
  48.             <thead>
  49.               <tr>
  50.                 <th>#</th>
  51.                 <th>{% trans %} Nom et prénom{% endtrans %}</th>
  52.                 <th>{% trans %} Email / téléphone {% endtrans %}</th>
  53.                 <th>{% trans %} Rôle {% endtrans %}</th>
  54.                 <th>{% trans %} Dernière connexion{% endtrans %}</th>
  55.                 <th>{% trans %} Statut {% endtrans %}</th>
  56.                 <th width="220px">{% trans %} Actions {% endtrans %}</th>
  57.               </tr>
  58.             </thead>
  59.             <tbody data-controller="user">
  60.               {% for user in users %}
  61.               <tr>
  62.                 <th scope="row">
  63.                   {{ loop.index }}
  64.                 </th>
  65.                 <td>
  66.                   <div class="d-flex align-items-center">
  67.                     {% set avatar =
  68.                       "data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="%}
  69.                       {% if 'http' in app.user.photo %} {% set avatar = app.user.photo %} {%
  70.                       elseif app.user.photo is defined and app.user.photo is not null %} {% set
  71.                       avatar = '/uploads/users/' ~ app.user.photo %} {% endif %}
  72.                   
  73.                     <div class="flex-shrink-0 me-3">
  74.                       <img
  75.                         class="rounded-circle avatar-md"
  76.                         src="{{ avatar }}"
  77.                         alt="{{ user.firstName }} {{ user.lastName }}"
  78.                       />
  79.                     </div>
  80.                     <div class="flex-grow-1">
  81.                       <a href="{{ path('app_user_edit', { id: user.id }) }}">
  82.                         <h5 class="font-size-14 mb-0">
  83.                           {{ user.lastName }}
  84.                           {{ user.firstName }}
  85.                         </h5>
  86.                       </a>
  87.                     </div>
  88.                   </div>
  89.                 </td>
  90.                 <td>
  91.                   <a
  92.                     target="_blank"
  93.                     href="mailto:{{ user.email }}"
  94.                     class="text-info"
  95.                   >
  96.                     {{ user.email }}
  97.                   </a>
  98.                   <br />
  99.                   <a
  100.                     target="_blank"
  101.                     href="tel:{{ user.phone }}"
  102.                     class="text-info"
  103.                   >
  104.                     {{ user.phone }}
  105.                   </a>
  106.                 </td>
  107.                 <td>
  108.                   {% for role in user.roles %} {% if role == 'ROLE_SUPER_ADMIN'
  109.                   %}
  110.                   <span class="badge badge-soft-info font-size-14">
  111.                     <i class="bx bx-edit font-size-14 align-middle"></i>
  112.                     {% trans %} Administrateur {% endtrans %}
  113.                   </span>
  114.                   {% endif %} {% if role == 'ROLE_OWNER' %}
  115.                   <span class="badge badge-soft-info font-size-14">
  116.                     <i class="bx bx-edit font-size-14 align-middle"></i>
  117.                     {% trans %} Propriétaire {% endtrans %}
  118.                   </span>
  119.                   {% endif %} {% if role == 'ROLE_USER' %}
  120.                   <span class="badge badge-soft-info font-size-14">
  121.                     <i class="bx bx-edit font-size-14 align-middle"></i>
  122.                     {% trans %} Utilisateur {% endtrans %}
  123.                   </span>
  124.                   {% endif %} {% endfor %}
  125.                 </td>
  126.                 <td>
  127.                   {{ user.lastLogin ? user.lastLogin|date('d-m-Y H:i:s') : '' }}
  128.                 </td>
  129.                 <td>
  130.                   {% if user.isVerified %}
  131.                   <span class="badge bg-success text-uppercase">
  132.                     {% trans %}Vérifié{% endtrans %}
  133.                   </span>
  134.                   {% else %}
  135.                   <span class="badge bg-warning text-uppercase">
  136.                     {% trans %}Non vérifié{% endtrans %}
  137.                   </span>
  138.                   {% endif %} {% if user.isIsActive %}
  139.                   <span class="badge bg-succinfoess text-uppercase">
  140.                     {% trans %}Active{% endtrans %}
  141.                   </span>
  142.                   {% else %}
  143.                   <span class="badge bg-danger text-uppercase">
  144.                     {% trans %}Suspendu{% endtrans %}
  145.                   </span>
  146.                   {% endif %}
  147.                 </td>
  148.                 <td class="d-flex">
  149.                   <a
  150.                     href="{{ path('app_user_edit', { id: user.id }) }}"
  151.                     class="btn btn-primary waves-effect waves-light me-2"
  152.                     data-toggle="tooltip"
  153.                     data-placement="top"
  154.                     title="{{ 'Profile' | trans }}"
  155.                   >
  156.                     <i class="bx bx-user font-size-16 align-middle"></i>
  157.                   </a>
  158.                   {% if 'ROLE_OWNER' not in user.roles %} {% if user.isIsActive
  159.                   %}
  160.                   <a
  161.                     href="{{ path('app_user_toggle_active', { id: user.id }) }}"
  162.                     class="btn btn-warning waves-effect waves-light me-2"
  163.                     data-toggle="tooltip"
  164.                     data-placement="top"
  165.                     title="{{ 'Suspendre' | trans }}"
  166.                   >
  167.                     <i class="bx bx-minus-circle font-size-16 align-middle"></i>
  168.                   </a>
  169.                   {% else %}
  170.                   <a
  171.                     href="{{ path('app_user_toggle_active', { id: user.id }) }}"
  172.                     class="btn btn-info waves-effect waves-light me-2"
  173.                     data-toggle="tooltip"
  174.                     data-placement="top"
  175.                     title="{{ 'Activer' | trans }}"
  176.                   >
  177.                     <i class="bx bx-check-circle font-size-16 align-middle"></i>
  178.                   </a>
  179.                   {% endif %}
  180.                   <form
  181.                     id="delete-form-{{ user.id }}"
  182.                     method="post"
  183.                     action="{{ path('app_user_delete', { id: user.id }) }}"
  184.                     onclick="alertify.set('notifier','position', 'top-right'); alertify.confirm('Supprimer', 'Voulez-vous vraiment supprimer cet objet?', function(e){ document.getElementById('delete-form-{{
  185.                       user.id
  186.                     }}').submit(); }, function(){ alertify.error('Annuler')});"
  187.                   >
  188.                     <input
  189.                       type="hidden"
  190.                       name="_token"
  191.                       value="{{ csrf_token('delete' ~ user.id) }}"
  192.                     />
  193.                     <a
  194.                       href="javascript:void(0);"
  195.                       type="button"
  196.                       class="btn btn-danger waves-effect waves-light me-2"
  197.                       data-toggle="tooltip"
  198.                       data-placement="top"
  199.                       title="{{ 'Supprimer' | trans }}"
  200.                     >
  201.                       <i class="bx bx-trash font-size-16 align-middle"></i>
  202.                     </a>
  203.                   </form>
  204.                   {% endif %} {% if is_granted('ROLE_SUPER_ADMIN') and
  205.                   app.user.id != user.id %}
  206.                   <a
  207.                     class="btn btn-info waves-effect waves-light me-2"
  208.                     href="/app/dashboard?_switch_user={{ user.email }}"
  209.                     data-toggle="tooltip"
  210.                     data-placement="top"
  211.                     title="{{ 'Login with account' | trans }}"
  212.                   >
  213.                     <i
  214.                       class="bx bx-log-in-circle font-size-16 align-middle"
  215.                     ></i>
  216.                   </a>
  217.                   {% endif %}
  218.                 </td>
  219.               </tr>
  220.               {% endfor %}
  221.             </tbody>
  222.           </table>
  223.         </div>
  224.       </div>
  225.     </div>
  226.   </div>
  227. </div>
  228. {% endblock %}