138 lines
5.4 KiB
PHP
Executable File
138 lines
5.4 KiB
PHP
Executable File
@extends('admin.layouts.master')
|
|
|
|
@section('title', 'Mensajes - Lash Vanshy')
|
|
|
|
@section('page-title', 'Mensajes de Contacto')
|
|
|
|
@section('content')
|
|
<!-- Header Actions -->
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<div>
|
|
<h2 class="mb-0">Mensajes</h2>
|
|
<p class="text-muted mb-0">Gestiona los mensajes recibidos del formulario de contacto</p>
|
|
</div>
|
|
@if($mensajes->where('leido', false)->count() > 0)
|
|
<form action="{{ route('admin.mensajes.leer-todos') }}" method="POST" class="d-inline">
|
|
@csrf
|
|
<button type="submit" class="btn btn-secondary-admin">
|
|
<i class="fas fa-check-double me-2"></i>Marcar todos como leídos
|
|
</button>
|
|
</form>
|
|
@endif
|
|
</div>
|
|
|
|
<!-- Stats -->
|
|
<div class="row g-3 mb-4">
|
|
<div class="col-sm-4">
|
|
<div class="stat-card py-3">
|
|
<div class="stat-info">
|
|
<h3>{{ $mensajes->total() }}</h3>
|
|
<p>Total Mensajes</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="stat-card py-3">
|
|
<div class="stat-info">
|
|
<h3>{{ $mensajes->where('leido', false)->count() }}</h3>
|
|
<p>Sin Leer</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="stat-card py-3">
|
|
<div class="stat-info">
|
|
<h3>{{ $mensajes->where('leido', true)->count() }}</h3>
|
|
<p>Leídos</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Messages Table -->
|
|
<div class="card-admin">
|
|
<div class="card-body">
|
|
@if($mensajes->isNotEmpty())
|
|
<div class="table-responsive">
|
|
<table class="table table-admin">
|
|
<thead>
|
|
<tr>
|
|
<th>Nombre</th>
|
|
<th>Email</th>
|
|
<th>Mensaje</th>
|
|
<th>Fecha</th>
|
|
<th>Estado</th>
|
|
<th>Acciones</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($mensajes as $mensaje)
|
|
<tr class="{{ !$mensaje->leido ? 'table-warning' : '' }}">
|
|
<td>
|
|
<strong>{{ $mensaje->nombre }}</strong>
|
|
@if($mensaje->telefono)
|
|
<br><small class="text-muted">{{ $mensaje->telefono }}</small>
|
|
@endif
|
|
</td>
|
|
<td>
|
|
<a href="mailto:{{ $mensaje->email }}">{{ $mensaje->email }}</a>
|
|
</td>
|
|
<td>{{ Str::limit($mensaje->mensaje, 50) }}</td>
|
|
<td>
|
|
<small>{{ $mensaje->created_at->format('d/m/Y H:i') }}</small>
|
|
</td>
|
|
<td>
|
|
@if($mensaje->leido)
|
|
<span class="badge-admin bg-success">Leído</span>
|
|
@else
|
|
<span class="badge-admin bg-warning">Nuevo</span>
|
|
@endif
|
|
</td>
|
|
<td>
|
|
<div class="actions">
|
|
<a href="{{ route('admin.mensajes.show', $mensaje) }}"
|
|
class="btn btn-sm btn-primary-admin"
|
|
title="Ver mensaje">
|
|
<i class="fas fa-eye"></i>
|
|
</a>
|
|
@if(!$mensaje->leido)
|
|
<form action="{{ route('admin.mensajes.leido', $mensaje) }}" method="POST" class="d-inline">
|
|
@csrf
|
|
@method('PATCH')
|
|
<button type="submit" class="btn btn-sm btn-secondary-admin" title="Marcar como leído">
|
|
<i class="fas fa-check"></i>
|
|
</button>
|
|
</form>
|
|
@endif
|
|
<form action="{{ route('admin.mensajes.destroy', $mensaje) }}"
|
|
method="POST"
|
|
class="d-inline"
|
|
onsubmit="return confirm('¿Estás seguro de que deseas eliminar este mensaje?')">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button type="submit" class="btn btn-sm btn-danger-admin" title="Eliminar">
|
|
<i class="fas fa-trash"></i>
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Pagination -->
|
|
<div class="d-flex justify-content-center">
|
|
{{ $mensajes->links() }}
|
|
</div>
|
|
@else
|
|
<div class="empty-state">
|
|
<i class="fas fa-envelope-open"></i>
|
|
<h4>No hay mensajes</h4>
|
|
<p>Los mensajes del formulario de contacto aparecerán aquí</p>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
@endsection |