This commit is contained in:
Laucha1312
2026-06-04 15:20:26 -03:00
parent fdd0fef3f0
commit cc049c6cb6
64 changed files with 8914 additions and 0 deletions
@@ -0,0 +1,95 @@
@extends('admin.layout')
@section('title', ($usuario ? 'Editar' : 'Nuevo') . ' Administrador - Admin OnAPB')
@section('content')
<div class="page-header">
<h2><i class="bi bi-person-fill-lock"></i> {{ $usuario ? 'Editar Administrador' : 'Nuevo Administrador' }}</h2>
<a href="{{ route('admin.usuarios.index') }}" class="btn-admin-outline">
<i class="bi bi-arrow-left"></i> Volver
</a>
</div>
<div class="admin-card">
<div class="card-body">
<form method="POST" action="{{ $usuario ? route('admin.usuarios.update', $usuario->id) : route('admin.usuarios.store') }}" class="admin-form">
@csrf
@if($usuario) @method('PUT') @endif
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label class="form-label">Nombre de Usuario *</label>
<input type="text" name="username" class="form-control" value="{{ old('username', $usuario->username ?? '') }}" placeholder="Ej: admin_paracao" required>
@error('username') <div class="text-danger small mt-1">{{ $message }}</div> @enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label class="form-label">Contraseña {{ $usuario ? '(Dejar en blanco para no cambiarla)' : '*' }}</label>
<input type="password" name="password" class="form-control" placeholder="******" {{ $usuario ? '' : 'required' }}>
@error('password') <div class="text-danger small mt-1">{{ $message }}</div> @enderror
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label class="form-label">Rol del Administrador *</label>
<select name="role" id="roleSelect" class="form-select" required>
<option value="1" {{ old('role', $usuario->role ?? '') == 1 ? 'selected' : '' }}>Super Administrador (Acceso total)</option>
<option value="2" {{ old('role', $usuario->role ?? '') == 2 || (!old('role') && !$usuario) ? 'selected' : '' }}>Administrador de Club</option>
</select>
@error('role') <div class="text-danger small mt-1">{{ $message }}</div> @enderror
</div>
</div>
<div class="col-md-6" id="clubSelectContainer">
<div class="mb-3">
<label class="form-label">Club Asociado (Solo para Admin de Club)</label>
<select name="id_club" class="form-select">
<option value="">Seleccione el Club...</option>
@foreach($clubes as $club)
<option value="{{ $club->id_club }}" {{ old('id_club', $usuario->id_club ?? '') == $club->id_club ? 'selected' : '' }}>
{{ $club->nombre }}
</option>
@endforeach
</select>
@error('id_club') <div class="text-danger small mt-1">{{ $message }}</div> @enderror
</div>
</div>
</div>
<button type="submit" class="btn-admin mt-3">
<i class="bi bi-save"></i> {{ $usuario ? 'Guardar Cambios' : 'Crear Administrador' }}
</button>
</form>
</div>
</div>
@endsection
@section('scripts')
<script>
document.addEventListener("DOMContentLoaded", function() {
const roleSelect = document.getElementById('roleSelect');
const clubContainer = document.getElementById('clubSelectContainer');
const clubSelect = clubContainer.querySelector('select');
function toggleClubSelect() {
if (roleSelect.value == '2') {
clubContainer.style.display = 'block';
clubSelect.setAttribute('required', 'required');
} else {
clubContainer.style.display = 'none';
clubSelect.removeAttribute('required');
clubSelect.value = '';
}
}
roleSelect.addEventListener('change', toggleClubSelect);
toggleClubSelect(); // Ejecutar al cargar la página
});
</script>
@endsection
@@ -0,0 +1,74 @@
@extends('admin.layout')
@section('title', 'Administradores - Admin OnAPB')
@section('content')
<div class="mb-5 d-flex justify-content-between align-items-end">
<div>
<span class="text-primary fw-bold text-uppercase tracking-widest d-block mb-2">Control de Accesos</span>
<h1 class="display-4 fw-bold font-header mb-0">Administradores<span class="text-primary">.</span></h1>
</div>
<a href="{{ route('admin.usuarios.create') }}" class="btn-admin-primary">
<i class="bi bi-person-plus-fill me-2"></i> NUEVO USUARIO
</a>
</div>
<div class="admin-card">
@if($usuarios->isEmpty())
<div class="text-center py-5">
<i class="bi bi-person-lock text-muted mb-3" style="font-size: 3rem;"></i>
<p class="fs-5 text-muted">No hay otros administradores registrados.</p>
</div>
@else
<div class="table-responsive">
<table class="kinetic-table">
<thead>
<tr>
<th>Usuario</th>
<th>Nivel de Acceso</th>
<th>Club Responsable</th>
<th class="text-end">Acciones</th>
</tr>
</thead>
<tbody>
@foreach($usuarios as $user)
<tr>
<td>
<span class="fw-bold fs-5">{{ $user->username }}</span>
</td>
<td>
@if($user->role == 1)
<span class="badge bg-dark text-white text-uppercase px-2 py-1"><i class="bi bi-shield-lock-fill me-1"></i> Súper Admin</span>
@else
<span class="badge bg-light text-dark border text-uppercase px-2 py-1"><i class="bi bi-shield-check me-1"></i> Admin Club</span>
@endif
</td>
<td>
<span class="fw-bold">{{ $user->club->nombre ?? 'SISTEMA INTEGRAL' }}</span>
</td>
<td class="text-end">
<a href="{{ route('admin.usuarios.edit', $user->id) }}" class="btn btn-sm btn-light border me-1">
<i class="bi bi-pencil"></i>
</a>
@if($user->id != session('admin_id'))
<form action="{{ route('admin.usuarios.destroy', $user->id) }}" method="POST" class="d-inline delete-form confirm-submit" data-confirm-text="¿Eliminar este administrador?">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-sm btn-outline-danger">
<i class="bi bi-trash"></i>
</button>
</form>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-4 d-flex justify-content-center">
{{ $usuarios->links('pagination::bootstrap-5') }}
</div>
@endif
</div>
@endsection