Car-Repairs-Shop/resources/views/layouts/customer-portal.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

106 lines
4.8 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-6">
<div class="flex items-center">
<x-app-logo class="h-8 w-auto" />
<div class="ml-4">
<h1 class="text-2xl font-bold text-gray-900">Customer Portal</h1>
<p class="text-sm text-gray-600">Track your vehicle service progress</p>
</div>
</div>
<div class="flex items-center space-x-4">
<div class="text-right">
<p class="text-sm font-medium text-gray-900">{{ $jobCard->customer->name ?? 'Customer' }}</p>
<p class="text-xs text-gray-600">{{ $jobCard->customer->email ?? '' }}</p>
</div>
<div class="h-8 w-8 rounded-full bg-blue-500 flex items-center justify-center text-white font-medium">
{{ substr($jobCard->customer->name ?? 'C', 0, 1) }}
</div>
</div>
</div>
</div>
</header>
<!-- Main content -->
<main class="max-w-7xl mx-auto py-8 px-4 sm:px-6 lg:px-8">
<!-- Job Card Info Bar -->
<div class="mb-8 bg-white rounded-lg shadow p-6">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<div>
<h3 class="text-sm font-medium text-gray-500">Job Card</h3>
<p class="mt-1 text-lg font-semibold text-gray-900">#{{ $jobCard->id }}</p>
</div>
<div>
<h3 class="text-sm font-medium text-gray-500">Vehicle</h3>
<p class="mt-1 text-lg font-semibold text-gray-900">
{{ $jobCard->vehicle->year ?? '' }} {{ $jobCard->vehicle->make ?? '' }} {{ $jobCard->vehicle->model ?? '' }}
</p>
<p class="text-sm text-gray-600">{{ $jobCard->vehicle->license_plate ?? '' }}</p>
</div>
<div>
<h3 class="text-sm font-medium text-gray-500">Status</h3>
<span class="inline-flex mt-1 px-2 py-1 text-xs font-medium rounded-full
@switch($jobCard->status)
@case('pending')
bg-yellow-100 text-yellow-800
@break
@case('in_progress')
bg-blue-100 text-blue-800
@break
@case('completed')
bg-green-100 text-green-800
@break
@default
bg-gray-100 text-gray-800
@endswitch
">
{{ ucfirst(str_replace('_', ' ', $jobCard->status)) }}
</span>
</div>
</div>
</div>
<!-- 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>