Polish marketplace UX
This commit is contained in:
@@ -5,16 +5,28 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Work Order {{ $workOrder->id }} - {{ $workOrder->jobPost->title }}</title>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; color: #111827; margin: 32px; }
|
||||
h1, h2 { margin-bottom: 8px; }
|
||||
body { font-family: Arial, sans-serif; color: #111827; margin: 32px; line-height: 1.45; }
|
||||
h1, h2, h3 { margin-bottom: 8px; }
|
||||
h1 { font-size: 26px; }
|
||||
h2 { font-size: 18px; }
|
||||
h3 { font-size: 14px; }
|
||||
section { border-top: 1px solid #d1d5db; padding-top: 16px; margin-top: 20px; }
|
||||
.muted { color: #4b5563; }
|
||||
.small { font-size: 12px; }
|
||||
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
||||
.box { border: 1px solid #d1d5db; padding: 12px; border-radius: 6px; }
|
||||
.summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 18px; }
|
||||
.summary div { border: 1px solid #d1d5db; border-radius: 6px; padding: 10px; }
|
||||
.label { display: block; color: #4b5563; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
|
||||
.value { display: block; margin-top: 3px; font-weight: 700; }
|
||||
.notice { background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 6px; padding: 12px; }
|
||||
ul { padding-left: 20px; }
|
||||
li { margin-bottom: 4px; }
|
||||
@media print {
|
||||
body { margin: 18mm; }
|
||||
button { display: none; }
|
||||
section { break-inside: avoid; }
|
||||
.page-break { break-before: page; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
@@ -22,6 +34,26 @@
|
||||
<button onclick="window.print()">Print</button>
|
||||
<h1>{{ $workOrder->jobPost->title }}</h1>
|
||||
<p class="muted">Work Order #{{ $workOrder->id }} | {{ str_replace('_', ' ', $workOrder->status) }}</p>
|
||||
<p class="muted small">Packet generated {{ now()->format('M j, Y g:i A') }}</p>
|
||||
|
||||
<div class="summary">
|
||||
<div>
|
||||
<span class="label">Schedule</span>
|
||||
<span class="value">{{ $workOrder->scheduled_at?->format('M j, Y g:i A') ?? 'Not set' }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="label">Window</span>
|
||||
<span class="value">{{ $workOrder->appointment_window ?: 'Not set' }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="label">Scope</span>
|
||||
<span class="value">{{ str_replace('_', ' ', $workOrder->scope_clarity_status) }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="label">Level</span>
|
||||
<span class="value">{{ $workOrder->technicianLevel()['short_name'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="grid">
|
||||
<div class="box">
|
||||
@@ -41,6 +73,7 @@
|
||||
|
||||
<section>
|
||||
<h2>Scope Safeguards</h2>
|
||||
<p class="notice small">Supplemental instructions are reference material only. They do not override the structured scope, excluded work, change-request path, or agreed terms in this packet.</p>
|
||||
<p class="muted">Scope clarity: {{ str_replace('_', ' ', $workOrder->scope_clarity_status) }}</p>
|
||||
<p class="muted">Technician level: {{ $workOrder->technicianLevel()['name'] }}</p>
|
||||
@if (is_array($workOrder->risk_flags) && $workOrder->risk_flags)
|
||||
@@ -66,7 +99,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<section class="page-break">
|
||||
<h2>Contact And Support</h2>
|
||||
<p class="muted">Certified: {{ $workOrder->contactSnapshotValue('contact_certified') ? 'Yes' : 'No' }}</p>
|
||||
<div class="grid">
|
||||
|
||||
Reference in New Issue
Block a user