Car-Repairs-Shop/resources/views/layouts/customer-portal-app.blade.php
sackey cbae4564b9
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
Add customer portal views for dashboard, estimates, invoices, vehicles, and work orders
- Implemented dashboard view with vehicle stats, active services, recent activity, and upcoming appointments.
- Created estimates view with filtering options and a list of service estimates.
- Developed invoices view to manage service invoices and payment history with filtering.
- Added vehicles view to display registered vehicles and their details.
- Built work orders view to track the progress of vehicle services with filtering and detailed information.
2025-08-08 09:56:26 +00:00

122 lines
6.4 KiB
PHP

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" class="h-full">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'AutoRepair Pro') }} - Customer Portal</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
@livewireStyles
</head>
<body class="font-sans antialiased h-full bg-gray-50">
<div class="min-h-full">
<!-- Header -->
<header class="bg-white shadow-sm border-b border-gray-200">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between items-center py-4">
<div class="flex items-center">
<x-app-logo class="h-8 w-auto" />
<div class="ml-4">
<h1 class="text-xl font-bold text-gray-900">Customer Portal</h1>
</div>
</div>
<div class="flex items-center space-x-4">
<div class="text-right">
<p class="text-sm font-medium text-gray-900">{{ Auth::user()->name }}</p>
<p class="text-xs text-gray-600">{{ Auth::user()->email }}</p>
</div>
<div class="h-8 w-8 rounded-full bg-blue-500 flex items-center justify-center text-white font-medium">
{{ substr(Auth::user()->name, 0, 1) }}
</div>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit" class="text-sm text-gray-600 hover:text-gray-900">
Logout
</button>
</form>
</div>
</div>
</div>
</header>
<!-- Navigation -->
<nav class="bg-white border-b border-gray-200">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex space-x-8">
<a href="{{ route('customer-portal.dashboard') }}"
class="border-b-2 {{ request()->routeIs('customer-portal.dashboard') ? 'border-blue-500 text-blue-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }} py-4 px-1 text-sm font-medium">
Dashboard
</a>
<a href="{{ route('customer-portal.appointments') }}"
class="border-b-2 {{ request()->routeIs('customer-portal.appointments') ? 'border-blue-500 text-blue-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }} py-4 px-1 text-sm font-medium">
Appointments
</a>
<a href="{{ route('customer-portal.vehicles') }}"
class="border-b-2 {{ request()->routeIs('customer-portal.vehicles') ? 'border-blue-500 text-blue-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }} py-4 px-1 text-sm font-medium">
My Vehicles
</a>
<a href="{{ route('customer-portal.work-orders') }}"
class="border-b-2 {{ request()->routeIs('customer-portal.work-orders') ? 'border-blue-500 text-blue-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }} py-4 px-1 text-sm font-medium">
Work Orders
</a>
<a href="{{ route('customer-portal.estimates') }}"
class="border-b-2 {{ request()->routeIs('customer-portal.estimates') ? 'border-blue-500 text-blue-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }} py-4 px-1 text-sm font-medium">
Estimates
</a>
<a href="{{ route('customer-portal.invoices') }}"
class="border-b-2 {{ request()->routeIs('customer-portal.invoices') ? 'border-blue-500 text-blue-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }} py-4 px-1 text-sm font-medium">
Invoices
</a>
</div>
</div>
</nav>
<!-- Main content -->
<main class="max-w-7xl mx-auto py-8 px-4 sm:px-6 lg:px-8">
<!-- Flash Messages -->
@if (session()->has('message'))
<div class="mb-6 rounded-md bg-green-50 p-4">
<div class="flex">
<div class="flex-shrink-0">
<svg class="h-5 w-5 text-green-400" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
</svg>
</div>
<div class="ml-3">
<p class="text-sm font-medium text-green-800">{{ session('message') }}</p>
</div>
</div>
</div>
@endif
<!-- Page Content -->
{{ $slot }}
</main>
<!-- Footer -->
<footer class="bg-white border-t border-gray-200 mt-16">
<div class="max-w-7xl mx-auto py-8 px-4 sm:px-6 lg:px-8">
<div class="text-center">
<p class="text-sm text-gray-600">
Questions about your service? Contact us at
<a href="tel:{{ app(\App\Settings\GeneralSettings::class)->shop_phone ?? '' }}" class="text-blue-600 hover:text-blue-800">
{{ app(\App\Settings\GeneralSettings::class)->shop_phone ?? 'Contact Shop' }}
</a>
</p>
</div>
</div>
</footer>
</div>
@livewireScripts
</body>
</html>