3
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
@extends('admin.layout')
|
||||
|
||||
@section('title', 'Configuración del Sistema')
|
||||
|
||||
@section('content')
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-header bg-white py-3 border-0">
|
||||
<h4 class="mb-0 text-primary"><i class="bi bi-gear-fill me-2"></i>Configuración General</h4>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<form action="{{ route('admin.settings.update') }}" method="POST" class="confirm-submit" data-confirm-text="¿Deseas actualizar la configuración del sistema?">
|
||||
@csrf
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="dias_expiracion_eventos" class="form-label fw-bold">Días para expiración de eventos</label>
|
||||
<div class="input-group">
|
||||
<input type="number" name="dias_expiracion_eventos" id="dias_expiracion_eventos"
|
||||
class="form-control @error('dias_expiracion_eventos') is-invalid @enderror"
|
||||
value="{{ old('dias_expiracion_eventos', $diasExpiracion) }}"
|
||||
min="1" required>
|
||||
<span class="input-group-text">Días</span>
|
||||
</div>
|
||||
<div class="form-text text-muted mt-2">
|
||||
<i class="bi bi-info-circle me-1"></i>
|
||||
Los eventos cuya fecha sea anterior a esta cantidad de días serán eliminados automáticamente junto con sus QRs asociados.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="backup_frequency" class="form-label fw-bold">Frecuencia del Backup Automático</label>
|
||||
<select name="backup_frequency" id="backup_frequency" class="form-select @error('backup_frequency') is-invalid @enderror">
|
||||
<option value="daily" {{ old('backup_frequency', $backupFreq) == 'daily' ? 'selected' : '' }}>Diario (Cada noche)</option>
|
||||
<option value="weekly" {{ old('backup_frequency', $backupFreq) == 'weekly' ? 'selected' : '' }}>Semanal (Cada lunes)</option>
|
||||
<option value="monthly" {{ old('backup_frequency', $backupFreq) == 'monthly' ? 'selected' : '' }}>Mensual (Día 1 de cada mes)</option>
|
||||
</select>
|
||||
<div class="form-text text-muted mt-2">
|
||||
<i class="bi bi-shield-check me-1"></i>
|
||||
Define con qué frecuencia el sistema generará un respaldo completo de la base de datos y archivos multimedia.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="email_reportes" class="form-label fw-bold">Email para Reportes Semanales</label>
|
||||
<input type="email" name="email_reportes" id="email_reportes"
|
||||
class="form-control @error('email_reportes') is-invalid @enderror"
|
||||
value="{{ old('email_reportes', $emailReportes) }}"
|
||||
placeholder="ejemplo@onapb.com" required>
|
||||
<div class="form-text text-muted mt-2">
|
||||
<i class="bi bi-envelope-at me-1"></i>
|
||||
Dirección donde se enviará el resumen de actividad de la liga todos los lunes.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="my-4">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<span class="text-muted small">
|
||||
<i class="bi bi-clock-history me-1"></i>
|
||||
Tarea programada: <code>app:cleanup-old-events</code> (Ejecución diaria)
|
||||
</span>
|
||||
<button type="submit" class="btn btn-primary px-4">
|
||||
<i class="bi bi-save me-2"></i>Guardar Cambios
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow-sm border-0 mt-4">
|
||||
<div class="card-header bg-white py-3 border-0">
|
||||
<h4 class="mb-0 text-success"><i class="bi bi-heart-pulse-fill me-2"></i>Salud del Sistema (CRON)</h4>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="row align-items-center mb-4">
|
||||
<div class="col-md-6 border-end">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<i class="bi bi-calendar-check fs-3 text-success me-3"></i>
|
||||
<div>
|
||||
<small class="text-muted d-block uppercase small">Última ejecución del Programador</small>
|
||||
<span class="fw-bold fs-5 text-dark">{{ $lastRun }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="bi bi-clock fs-3 text-info me-3"></i>
|
||||
<div>
|
||||
<small class="text-muted d-block uppercase small">Hora actual del servidor</small>
|
||||
<span class="fw-bold fs-5">{{ now()->format('d/m/Y H:i:s') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 ps-md-4 mt-3 mt-md-0">
|
||||
<div class="alert alert-info border-0 shadow-sm py-2 px-3 mb-0">
|
||||
<i class="bi bi-info-circle-fill me-2"></i>
|
||||
<small>Si el "Última ejecución" no coincide con el minuto actual, es posible que el <b>Cron Job de Hostinger</b> no esté configurado correctamente.</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="text-dark mb-3 small fw-bold">EJECUCIÓN MANUAL DE TAREAS</h5>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<form action="{{ route('admin.settings.manual.task') }}" method="POST" class="confirm-submit" data-confirm-text="¿Ejecutar limpieza de QRs antiguos ahora?">
|
||||
@csrf
|
||||
<input type="hidden" name="command" value="cleanup">
|
||||
<button type="submit" class="btn btn-outline-danger btn-sm">
|
||||
<i class="bi bi-trash me-1"></i>Limpiar QRs Antiguos
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<form action="{{ route('admin.settings.manual.task') }}" method="POST" class="confirm-submit" data-confirm-text="¿Iniciar backup manual? Esto puede tardar unos segundos.">
|
||||
@csrf
|
||||
<input type="hidden" name="command" value="backup">
|
||||
<button type="submit" class="btn btn-outline-primary btn-sm">
|
||||
<i class="bi bi-cloud-arrow-up me-1"></i>Forzar Backup
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<form action="{{ route('admin.settings.manual.task') }}" method="POST" class="confirm-submit" data-confirm-text="¿Enviar informe semanal de rendimiento ahora?">
|
||||
@csrf
|
||||
<input type="hidden" name="command" value="report">
|
||||
<button type="submit" class="btn btn-outline-info btn-sm">
|
||||
<i class="bi bi-envelope me-1"></i>Enviar Informe Semanal
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user