templates/app/user/index.html.twig line 1
{% extends 'app/index.html.twig' %} {% block title %}liste d'enfants {% endblock
%} {% block content %} {% include "app/_partials/breadcrumb.html.twig" with {
'title': 'Collaborateurs'|trans, 'parent': 'Compte & Utilisateurs'|trans } %}
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<div class="row align-items-center">
<div class="col-md-6">
<div class="mb-3">
<h5 class="card-title">
{% trans %} Tous les utilisateurs {% endtrans %}
<span class="text-muted fw-normal ms-2"
>({{ users | length }})</span
>
</h5>
</div>
</div>
<div class="col-md-6">
<div
class="d-flex flex-wrap align-items-center justify-content-end gap-2 mb-3"
>
<div>
<ul class="nav nav-pills"></ul>
</div>
<div>
{# <a
href="{{ path('app_user_new') }}"
class="btn btn-primary"
data-bs-toggle="modal"
data-bs-target="#add-modal"
>
<i class="bx bx-plus me-1"></i>
{% trans %} Ajouter un nouveau {% endtrans %}
</a> #}
</div>
{% include "app/user/add-modal.html.twig" %}
</div>
</div>
</div>
</div>
<div class="card-body">
<div class="table">
<table
id="datatable"
class="table table-bordered dt-responsive nowrap w-100"
>
<thead>
<tr>
<th>#</th>
<th>{% trans %} Nom et prénom{% endtrans %}</th>
<th>{% trans %} Email / téléphone {% endtrans %}</th>
<th>{% trans %} Rôle {% endtrans %}</th>
<th>{% trans %} Dernière connexion{% endtrans %}</th>
<th>{% trans %} Statut {% endtrans %}</th>
<th width="220px">{% trans %} Actions {% endtrans %}</th>
</tr>
</thead>
<tbody data-controller="user">
{% for user in users %}
<tr>
<th scope="row">
{{ loop.index }}
</th>
<td>
<div class="d-flex align-items-center">
{% set avatar =
"data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="%}
{% if 'http' in app.user.photo %} {% set avatar = app.user.photo %} {%
elseif app.user.photo is defined and app.user.photo is not null %} {% set
avatar = '/uploads/users/' ~ app.user.photo %} {% endif %}
<div class="flex-shrink-0 me-3">
<img
class="rounded-circle avatar-md"
src="{{ avatar }}"
alt="{{ user.firstName }} {{ user.lastName }}"
/>
</div>
<div class="flex-grow-1">
<a href="{{ path('app_user_edit', { id: user.id }) }}">
<h5 class="font-size-14 mb-0">
{{ user.lastName }}
{{ user.firstName }}
</h5>
</a>
</div>
</div>
</td>
<td>
<a
target="_blank"
href="mailto:{{ user.email }}"
class="text-info"
>
{{ user.email }}
</a>
<br />
<a
target="_blank"
href="tel:{{ user.phone }}"
class="text-info"
>
{{ user.phone }}
</a>
</td>
<td>
{% for role in user.roles %} {% if role == 'ROLE_SUPER_ADMIN'
%}
<span class="badge badge-soft-info font-size-14">
<i class="bx bx-edit font-size-14 align-middle"></i>
{% trans %} Administrateur {% endtrans %}
</span>
{% endif %} {% if role == 'ROLE_OWNER' %}
<span class="badge badge-soft-info font-size-14">
<i class="bx bx-edit font-size-14 align-middle"></i>
{% trans %} Propriétaire {% endtrans %}
</span>
{% endif %} {% if role == 'ROLE_USER' %}
<span class="badge badge-soft-info font-size-14">
<i class="bx bx-edit font-size-14 align-middle"></i>
{% trans %} Utilisateur {% endtrans %}
</span>
{% endif %} {% endfor %}
</td>
<td>
{{ user.lastLogin ? user.lastLogin|date('d-m-Y H:i:s') : '' }}
</td>
<td>
{% if user.isVerified %}
<span class="badge bg-success text-uppercase">
{% trans %}Vérifié{% endtrans %}
</span>
{% else %}
<span class="badge bg-warning text-uppercase">
{% trans %}Non vérifié{% endtrans %}
</span>
{% endif %} {% if user.isIsActive %}
<span class="badge bg-succinfoess text-uppercase">
{% trans %}Active{% endtrans %}
</span>
{% else %}
<span class="badge bg-danger text-uppercase">
{% trans %}Suspendu{% endtrans %}
</span>
{% endif %}
</td>
<td class="d-flex">
<a
href="{{ path('app_user_edit', { id: user.id }) }}"
class="btn btn-primary waves-effect waves-light me-2"
data-toggle="tooltip"
data-placement="top"
title="{{ 'Profile' | trans }}"
>
<i class="bx bx-user font-size-16 align-middle"></i>
</a>
{% if 'ROLE_OWNER' not in user.roles %} {% if user.isIsActive
%}
<a
href="{{ path('app_user_toggle_active', { id: user.id }) }}"
class="btn btn-warning waves-effect waves-light me-2"
data-toggle="tooltip"
data-placement="top"
title="{{ 'Suspendre' | trans }}"
>
<i class="bx bx-minus-circle font-size-16 align-middle"></i>
</a>
{% else %}
<a
href="{{ path('app_user_toggle_active', { id: user.id }) }}"
class="btn btn-info waves-effect waves-light me-2"
data-toggle="tooltip"
data-placement="top"
title="{{ 'Activer' | trans }}"
>
<i class="bx bx-check-circle font-size-16 align-middle"></i>
</a>
{% endif %}
<form
id="delete-form-{{ user.id }}"
method="post"
action="{{ path('app_user_delete', { id: user.id }) }}"
onclick="alertify.set('notifier','position', 'top-right'); alertify.confirm('Supprimer', 'Voulez-vous vraiment supprimer cet objet?', function(e){ document.getElementById('delete-form-{{
user.id
}}').submit(); }, function(){ alertify.error('Annuler')});"
>
<input
type="hidden"
name="_token"
value="{{ csrf_token('delete' ~ user.id) }}"
/>
<a
href="javascript:void(0);"
type="button"
class="btn btn-danger waves-effect waves-light me-2"
data-toggle="tooltip"
data-placement="top"
title="{{ 'Supprimer' | trans }}"
>
<i class="bx bx-trash font-size-16 align-middle"></i>
</a>
</form>
{% endif %} {% if is_granted('ROLE_SUPER_ADMIN') and
app.user.id != user.id %}
<a
class="btn btn-info waves-effect waves-light me-2"
href="/app/dashboard?_switch_user={{ user.email }}"
data-toggle="tooltip"
data-placement="top"
title="{{ 'Login with account' | trans }}"
>
<i
class="bx bx-log-in-circle font-size-16 align-middle"
></i>
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock %}