Files
lash_vanshy/resources/views/admin/mensajes/index.blade.php

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