Add citas module: scheduling, calendar, blocked schedules
This commit is contained in:
226
resources/views/admin/citas/edit.blade.php
Normal file
226
resources/views/admin/citas/edit.blade.php
Normal file
@@ -0,0 +1,226 @@
|
||||
@extends('admin.layouts.master')
|
||||
|
||||
@section('title', 'Editar Cita - Lash Vanshy')
|
||||
|
||||
@section('page-title', 'Editar Cita')
|
||||
|
||||
@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.citas.index') }}">Citas</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">Editar Cita</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card-admin">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-edit me-2"></i>Editar Cita
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form method="POST" action="{{ route('admin.citas.update', $cita) }}">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div class="row">
|
||||
<!-- Cliente Nombre -->
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="cliente_nombre" class="form-label">
|
||||
Nombre del Cliente <span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text"
|
||||
class="form-control @error('cliente_nombre') is-invalid @enderror"
|
||||
id="cliente_nombre"
|
||||
name="cliente_nombre"
|
||||
value="{{ old('cliente_nombre', $cita->cliente_nombre) }}"
|
||||
required>
|
||||
@error('cliente_nombre')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<!-- Cliente Email -->
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="cliente_email" class="form-label">
|
||||
Email <span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="email"
|
||||
class="form-control @error('cliente_email') is-invalid @enderror"
|
||||
id="cliente_email"
|
||||
name="cliente_email"
|
||||
value="{{ old('cliente_email', $cita->cliente_email) }}"
|
||||
required>
|
||||
@error('cliente_email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<!-- Cliente Teléfono -->
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="cliente_telefono" class="form-label">
|
||||
Teléfono
|
||||
</label>
|
||||
<input type="tel"
|
||||
class="form-control @error('cliente_telefono') is-invalid @enderror"
|
||||
id="cliente_telefono"
|
||||
name="cliente_telefono"
|
||||
value="{{ old('cliente_telefono', $cita->cliente_telefono) }}">
|
||||
@error('cliente_telefono')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<!-- Servicio -->
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="servicio" class="form-label">
|
||||
Servicio
|
||||
</label>
|
||||
<select class="form-select @error('servicio') is-invalid @enderror"
|
||||
id="servicio"
|
||||
name="servicio">
|
||||
<option value="Lash Extensions" {{ old('servicio', $cita->servicio) == 'Lash Extensions' ? 'selected' : '' }}>Lash Extensions</option>
|
||||
<option value="Lash Lift" {{ old('servicio', $cita->servicio) == 'Lash Lift' ? 'selected' : '' }}>Lash Lift</option>
|
||||
<option value="Lash Removal" {{ old('servicio', $cita->servicio) == 'Lash Removal' ? 'selected' : '' }}>Lash Removal</option>
|
||||
<option value="Relleno" {{ old('servicio', $cita->servicio) == 'Relleno' ? 'selected' : '' }}>Relleno</option>
|
||||
<option value="Otro" {{ old('servicio', $cita->servicio) == 'Otro' ? 'selected' : '' }}>Otro</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="my-4">
|
||||
|
||||
<div class="row">
|
||||
<!-- Fecha -->
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="fecha" class="form-label">
|
||||
Fecha <span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="date"
|
||||
class="form-control @error('fecha') is-invalid @enderror"
|
||||
id="fecha"
|
||||
name="fecha"
|
||||
value="{{ old('fecha', $cita->fecha->format('Y-m-d')) }}"
|
||||
min="{{ date('Y-m-d') }}"
|
||||
required>
|
||||
@error('fecha')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@else
|
||||
<small class="text-muted">
|
||||
<i class="fas fa-info-circle me-1"></i>
|
||||
Horario: 9:00 AM - 7:00 PM
|
||||
</small>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<!-- Hora Inicio -->
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="hora_inicio" class="form-label">
|
||||
Hora <span class="text-danger">*</span>
|
||||
</label>
|
||||
<select class="form-select @error('hora_inicio') is-invalid @enderror"
|
||||
id="hora_inicio"
|
||||
name="hora_inicio"
|
||||
required
|
||||
disabled>
|
||||
<option value="{{ $cita->hora_inicio }}">{{ \Carbon\Carbon::parse($cita->hora_inicio)->format('h:i A') }}</option>
|
||||
</select>
|
||||
@error('hora_inicio')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@else
|
||||
<small class="text-muted" id="horaHelp">
|
||||
Duración: 60 minutos
|
||||
</small>
|
||||
@enderror
|
||||
<div class="loading-spinner d-none" id="horaLoading">
|
||||
<div class="spinner"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Estado -->
|
||||
<div class="mb-3">
|
||||
<label for="estado" class="form-label">Estado</label>
|
||||
<select class="form-select @error('estado') is-invalid @enderror"
|
||||
id="estado"
|
||||
name="estado">
|
||||
<option value="pendiente" {{ old('estado', $cita->estado) == 'pendiente' ? 'selected' : '' }}>Pendiente</option>
|
||||
<option value="confirmada" {{ old('estado', $cita->estado) == 'confirmada' ? 'selected' : '' }}>Confirmada</option>
|
||||
<option value="completada" {{ old('estado', $cita->estado) == 'completada' ? 'selected' : '' }}>Completada</option>
|
||||
<option value="cancelada" {{ old('estado', $cita->estado) == 'cancelada' ? 'selected' : '' }}>Cancelada</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Notas -->
|
||||
<div class="mb-3">
|
||||
<label for="notas" class="form-label">Notas</label>
|
||||
<textarea class="form-control @error('notas') is-invalid @enderror"
|
||||
id="notas"
|
||||
name="notas"
|
||||
rows="3"
|
||||
placeholder="Notas adicionales...">{{ old('notas', $cita->notas) }}</textarea>
|
||||
@error('notas')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-between mt-4">
|
||||
<a href="{{ route('admin.citas.index') }}" class="btn btn-secondary-admin">
|
||||
<i class="fas fa-arrow-left me-2"></i>Volver
|
||||
</a>
|
||||
<button type="submit" class="btn btn-primary-admin">
|
||||
<i class="fas fa-save me-2"></i>Guardar Cambios
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sidebar Info -->
|
||||
<div class="col-lg-4">
|
||||
<div class="card-admin mb-3">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-info-circle me-2"></i>Información de la Cita
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<dl class="row mb-0">
|
||||
<dt class="col-sm-5">Fecha Creación:</dt>
|
||||
<dd class="col-sm-7">{{ $cita->created_at->format('d/m/Y H:i') }}</dd>
|
||||
|
||||
<dt class="col-sm-5">Última Actualización:</dt>
|
||||
<dd class="col-sm-7">{{ $cita->updated_at->format('d/m/Y H:i') }}</dd>
|
||||
|
||||
@if($cita->mensaje)
|
||||
<dt class="col-sm-5">Desde Mensaje:</dt>
|
||||
<dd class="col-sm-7">
|
||||
<a href="{{ route('admin.mensajes.show', $cita->mensaje) }}">Ver mensaje</a>
|
||||
</dd>
|
||||
@endif
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-admin">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-exclamation-triangle me-2"></i>¿Cancelar Cita?
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-3">
|
||||
¿Necesita cancelar esta cita? Puede cambiar el estado a "Cancelada" desde el formulario o eliminarla permanentemente.
|
||||
</p>
|
||||
<form action="{{ route('admin.citas.destroy', $cita) }}" method="POST"
|
||||
onsubmit="return confirm('¿Estás seguro de que deseas eliminar esta cita? Esta acción no se puede deshacer.')">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="btn btn-danger-admin w-100">
|
||||
<i class="fas fa-trash me-2"></i>Eliminar Cita
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user