Arch/templates/users/list.html

108 lines
4.9 KiB
HTML

{% extends "base.html" %}
{% block title %}Usuarios - ARCH{% endblock %}
{% block content %}
<div class="container my-5">
<div class="d-flex justify-content-between align-items-center mb-4">
<h1>Usuarios del Sistema</h1>
{% if current_user.has_permission(9000) %}
<a href="{{ url_for('users.create') }}" class="btn btn-primary">
<i class="fas fa-plus"></i> Nuevo Usuario
</a>
{% endif %}
</div>
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Usuario</th>
<th>Nombre</th>
<th>Email</th>
<th>Nivel</th>
<th>Estado</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
{% if users and users|length > 0 %}
{% for user in users %}
<tr>
<td>{{ user.username }}</td>
<td>{{ user.nombre }}</td>
<td>{{ user.email }}</td>
<td>{{ user.nivel }}</td>
<td>
{% if user.estado == 'activo' %}
<span class="badge bg-success">Activo</span>
{% else %}
<span class="badge bg-danger">Inactivo</span>
{% endif %}
</td>
<td>
<div class="btn-group btn-group-sm" role="group">
<a href="{{ url_for('users.edit', username=user.username) }}"
class="btn btn-outline-primary" title="Editar">
<i class="fas fa-edit"></i>
</a>
{% if user_id != current_user.get_id() and current_user.has_permission(9000) %}
<button type="button" class="btn btn-outline-danger"
onclick="confirmDelete('{{ user.username }}', '{{ user.username }}')" title="Eliminar">
<i class="fas fa-trash"></i>
</button>
{% endif %}
</div>
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="6" class="text-center">No hay usuarios registrados.</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% if current_user.has_permission(9000) %}
<!-- Modal de confirmación para eliminar usuario -->
<div class="modal fade" id="deleteUserModal" tabindex="-1" aria-labelledby="deleteUserModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteUserModalLabel">Confirmar Eliminación</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>¿Está seguro que desea eliminar el usuario <strong id="deleteUserName"></strong>?</p>
<p class="text-danger">Esta acción no se puede deshacer.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
<form id="deleteUserForm" method="POST" action="">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
<button type="submit" class="btn btn-danger">Eliminar</button>
</form>
</div>
</div>
</div>
</div>
<script>
function confirmDelete(username, displayName) {
document.getElementById('deleteUserName').textContent = displayName;
document.getElementById('deleteUserForm').action = "{{ url_for('users.delete', username='') }}" + username;
var deleteModal = new bootstrap.Modal(document.getElementById('deleteUserModal'));
deleteModal.show();
}
</script>
{% endif %}
{% endblock %}