Add hero sections to Queue index pages and soften analytics cards.
Deploy Ladill Queue / deploy (push) Successful in 36s
Deploy Ladill Queue / deploy (push) Successful in 36s
Introduce shared x-qms.page-hero with summary stats across queues, tickets, counters, admin pages, and insights; remove bordered cards on Analytics, Reports, Feedback, and Branches list views. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,29 +1,37 @@
|
||||
<x-app-layout title="Customer feedback">
|
||||
<div class="mb-6">
|
||||
<h1 class="text-2xl font-semibold">Customer feedback</h1>
|
||||
<p class="mt-1 text-sm text-slate-600">Average rating: {{ $avgRating ?: '—' }} / 5</p>
|
||||
<div class="space-y-6">
|
||||
<x-qms.page-hero
|
||||
badge="Ratings · Comments · Service quality"
|
||||
title="Customer feedback"
|
||||
description="Reviews collected after service — track average ratings and read customer comments by ticket."
|
||||
:stats="[
|
||||
['value' => number_format($heroStats['total']), 'label' => 'Responses'],
|
||||
['value' => $heroStats['avg_rating'] ?: '—', 'label' => 'Avg rating'],
|
||||
['value' => number_format($heroStats['this_month']), 'label' => 'This month'],
|
||||
]" />
|
||||
|
||||
<div class="overflow-hidden rounded-2xl bg-white">
|
||||
<table class="min-w-full divide-y divide-slate-200">
|
||||
<thead class="bg-slate-50"><tr>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Ticket</th>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Rating</th>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Comments</th>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">When</th>
|
||||
</tr></thead>
|
||||
<tbody class="divide-y divide-slate-200">
|
||||
@forelse ($feedback as $item)
|
||||
<tr>
|
||||
<td class="px-4 py-3 text-sm">{{ $item->ticket?->ticket_number }}</td>
|
||||
<td class="px-4 py-3 text-sm">{{ $item->rating }}/5</td>
|
||||
<td class="px-4 py-3 text-sm text-slate-600">{{ Str::limit($item->comments, 80) }}</td>
|
||||
<td class="px-4 py-3 text-sm">{{ $item->created_at->diffForHumans() }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr><td colspan="4" class="px-6 py-12 text-center text-sm text-slate-500">No feedback yet.</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>{{ $feedback->links() }}</div>
|
||||
</div>
|
||||
<div class="overflow-hidden rounded-2xl border bg-white dark:border-slate-700 dark:bg-slate-900">
|
||||
<table class="min-w-full divide-y divide-slate-200">
|
||||
<thead class="bg-slate-50"><tr>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Ticket</th>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Rating</th>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Comments</th>
|
||||
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">When</th>
|
||||
</tr></thead>
|
||||
<tbody class="divide-y divide-slate-200">
|
||||
@forelse ($feedback as $item)
|
||||
<tr>
|
||||
<td class="px-4 py-3 text-sm">{{ $item->ticket?->ticket_number }}</td>
|
||||
<td class="px-4 py-3 text-sm">{{ $item->rating }}/5</td>
|
||||
<td class="px-4 py-3 text-sm text-slate-600">{{ Str::limit($item->comments, 80) }}</td>
|
||||
<td class="px-4 py-3 text-sm">{{ $item->created_at->diffForHumans() }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr><td colspan="4" class="px-6 py-12 text-center text-sm text-slate-500">No feedback yet.</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mt-4">{{ $feedback->links() }}</div>
|
||||
</x-app-layout>
|
||||
|
||||
Reference in New Issue
Block a user