From 895a764b88ad13be348fc10d63c475c591491905 Mon Sep 17 00:00:00 2001 From: PeterChrz Date: Mon, 5 Oct 2026 00:20:19 -0400 Subject: [PATCH] ui: group suite rows under their devlogic/sysops total header Each category now renders as a self-contained section: its colored total strip, its own column headings, and its suite rows directly beneath. Empty categories are omitted entirely. Removes the old single-column-header layout that sat above all rows regardless of category. --- .../views/livewire/summary/index.blade.php | 189 +++++++++++------- 1 file changed, 115 insertions(+), 74 deletions(-) diff --git a/resources/views/livewire/summary/index.blade.php b/resources/views/livewire/summary/index.blade.php index 383b79d..6e72333 100644 --- a/resources/views/livewire/summary/index.blade.php +++ b/resources/views/livewire/summary/index.blade.php @@ -164,85 +164,126 @@ class="w-64" {{ $session->band->runner_name ?? 'anonymous' }} {{ optional($session->band->ran_at)->format('M j Y') }} - {{-- Dual totals: Devlogic (soft/prose/psych/depthsweep) + Sysops (infra/scenario) --}} - @if ($session->band->devlogic_tps !== null || $session->band->sysops_tps !== null) -
- @if ($session->band->devlogic_tps !== null) -
- {{ __('Devlogic total') }} - - {{ number_format($session->band->devlogic_tps, 1) }} - {{ __('tok/s') }} + @php + $devlogicSuites = ['softbench', 'prosebench', 'psychbench', 'depthsweep']; + $sysopsSuites = ['infrabench', 'scenariobench']; + $devlogicRows = $session->suites->filter(fn ($r) => in_array($r->suite, $devlogicSuites)); + $sysopsRows = $session->suites->filter(fn ($r) => in_array($r->suite, $sysopsSuites)); + @endphp + {{-- Devlogic section: total strip + column headers + suite rows --}} + @if ($devlogicRows->isNotEmpty() && $session->band->devlogic_tps !== null) +
+ {{ __('Devlogic total') }} + + {{ number_format($session->band->devlogic_tps, 1) }} + {{ __('tok/s') }} + + + {{ number_format($session->band->devlogic_tokens) }} + {{ __('tokens') }} + + + ✔ {{ $session->band->devlogic_passed }} + ✘ {{ $session->band->devlogic_failed }} + +
+ + - @endif - @if ($session->band->sysops_tps !== null) -
- {{ __('Sysops total') }} - - {{ number_format($session->band->sysops_tps, 1) }} - {{ __('tok/s') }} - - - {{ number_format($session->band->sysops_tokens) }} - {{ __('tokens') }} - - - ✔ {{ $session->band->sysops_passed }} - ✘ {{ $session->band->sysops_failed }} - -
- @endif + {{ number_format($row->total_tokens) }} + {{ __('per-task detail') }} → +
+ @endforeach +
+ @endif + {{-- Sysops section: total strip + column headers + suite rows --}} + @if ($sysopsRows->isNotEmpty() && $session->band->sysops_tps !== null) +
+ {{ __('Sysops total') }} + + {{ number_format($session->band->sysops_tps, 1) }} + {{ __('tok/s') }} + + + {{ number_format($session->band->sysops_tokens) }} + {{ __('tokens') }} + + + ✔ {{ $session->band->sysops_passed }} + ✘ {{ $session->band->sysops_failed }} + +
+ +
+ @foreach ($sysopsRows as $row) + @php + $detailUrl = $row->suite === 'scenariobench' + ? route('sessions.scenarios', $session->band->id) + : route('runs.show', $row->run_id) . ($row->level && $row->suite === 'depthsweep' ? '?level=' . $row->level : ''); + @endphp + + {{ $row->suite }} + + @if ($row->level) + {{ $row->level }} + @endif + + + ✔ {{ $row->passed }} + ✘ {{ $row->failed }} + + + @if ($row->weighted_user_tps !== null) + {{ number_format($row->weighted_user_tps, 1) }} + @elseif ($row->gen_tps !== null) + {{ number_format($row->gen_tps, 1) }} {{ __('gen') }} + @endif + + {{ number_format($row->total_tokens) }} + {{ __('per-task detail') }} → + + @endforeach
@endif - {{-- Column titles aligned over the suite rows (md+ only) --}} - -
- @foreach ($session->suites as $row) - @php - $detailUrl = $row->suite === 'scenariobench' - ? route('sessions.scenarios', $session->band->id) - : route('runs.show', $row->run_id) . ($row->level && $row->suite === 'depthsweep' ? '?level=' . $row->level : ''); - @endphp - - {{ $row->suite }} - - @if ($row->level) - {{ $row->level }} - @endif - - - ✔ {{ $row->passed }} - ✘ {{ $row->failed }} - - - @if ($row->weighted_user_tps !== null) - {{ number_format($row->weighted_user_tps, 1) }} - @elseif ($row->gen_tps !== null) - {{ number_format($row->gen_tps, 1) }} {{ __('gen') }} - @endif - - {{ number_format($row->total_tokens) }} - {{ __('per-task detail') }} → - - @endforeach -
@endforeach