Initial commit: Lash Vanshy - Complete project with admin panel, gallery, products, and contact
This commit is contained in:
138
resources/views/admin/mensajes/index.blade.php
Executable file
138
resources/views/admin/mensajes/index.blade.php
Executable file
@@ -0,0 +1,138 @@
|
||||
@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
|
||||
119
resources/views/admin/mensajes/show.blade.php
Executable file
119
resources/views/admin/mensajes/show.blade.php
Executable file
@@ -0,0 +1,119 @@
|
||||
@extends('admin.layouts.master')
|
||||
|
||||
@section('title', 'Ver Mensaje - Lash Vanshy')
|
||||
|
||||
@section('page-title', 'Detalle del Mensaje')
|
||||
|
||||
@section('content')
|
||||
<!-- Breadcrumb -->
|
||||
<nav aria-label="breadcrumb" class="mb-4">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{ route('admin.mensajes.index') }}">Mensajes</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">Ver Mensaje</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card-admin">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<span>
|
||||
<i class="fas fa-envelope me-2"></i>Mensaje de {{ $mensaje->nombre }}
|
||||
</span>
|
||||
<span class="badge-admin {{ $mensaje->leido ? 'bg-success' : 'bg-warning' }}">
|
||||
{{ $mensaje->leido ? 'Leído' : 'Sin leer' }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- Message Info -->
|
||||
<div class="message-meta mb-4">
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="text-muted small">Nombre</label>
|
||||
<p class="mb-0 fw-bold">{{ $mensaje->nombre }}</p>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="text-muted small">Email</label>
|
||||
<p class="mb-0">
|
||||
<a href="mailto:{{ $mensaje->email }}">{{ $mensaje->email }}</a>
|
||||
</p>
|
||||
</div>
|
||||
@if($mensaje->telefono)
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="text-muted small">Teléfono</label>
|
||||
<p class="mb-0">
|
||||
<a href="tel:{{ $mensaje->telefono }}">{{ $mensaje->telefono }}</a>
|
||||
</p>
|
||||
</div>
|
||||
@endif
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="text-muted small">Fecha</label>
|
||||
<p class="mb-0">{{ $mensaje->created_at->format('d/m/Y H:i') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<!-- Message Content -->
|
||||
<div class="message-content">
|
||||
<label class="text-muted small d-block mb-2">Mensaje</label>
|
||||
<div class="p-3 bg-light rounded">
|
||||
{{ $mensaje->mensaje }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Actions -->
|
||||
<div class="d-flex justify-content-between mt-4">
|
||||
<a href="{{ route('admin.mensajes.index') }}" class="btn btn-secondary-admin">
|
||||
<i class="fas fa-arrow-left me-2"></i>Volver
|
||||
</a>
|
||||
<div class="d-flex gap-2">
|
||||
@if(!$mensaje->leido)
|
||||
<form action="{{ route('admin.mensajes.leido', $mensaje) }}" method="POST">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
<button type="submit" class="btn btn-primary-admin">
|
||||
<i class="fas fa-check me-2"></i>Marcar como leído
|
||||
</button>
|
||||
</form>
|
||||
@endif
|
||||
<form action="{{ route('admin.mensajes.destroy', $mensaje) }}" method="POST" onsubmit="return confirm('¿Estás seguro de que deseas eliminar este mensaje?')">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="btn btn-danger-admin">
|
||||
<i class="fas fa-trash me-2"></i>Eliminar
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card-admin">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-info-circle me-2"></i>Información
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted">
|
||||
Este mensaje fue enviado a través del formulario de contacto en el sitio web.
|
||||
</p>
|
||||
<ul class="text-muted">
|
||||
<li class="mb-2">Puedes responder directamente al email del cliente</li>
|
||||
<li class="mb-2">Los mensajes no leídos aparecen resaltados</li>
|
||||
<li>Puedes eliminar mensajes que ya no necesites</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<a href="mailto:{{ $mensaje->email }}?subject=Re: Tu mensaje desde Lash Vanshy" class="btn btn-primary-admin w-100">
|
||||
<i class="fas fa-reply me-2"></i>Responder por Email
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user