3
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user