Files
ladill-events/resources/views/events/speakers-hub.blade.php
T
isaaccladandCursor d2ec31f7a5
Deploy Ladill Events / deploy (push) Successful in 28s
Fix post-registration 404, add speaker management, and simplify event creation.
Proxy registration transaction paths on Events, add a join button on the
confirmation page, introduce speaker roster management, and replace the QR
design wizard with merchant-style create/show flows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 13:44:53 +00:00

47 lines
3.1 KiB
PHP

<x-user-layout>
<x-slot name="title">Speakers</x-slot>
<div class="mx-auto max-w-5xl space-y-6">
<div>
<h1 class="text-2xl font-bold text-slate-900">Speakers</h1>
<p class="mt-1 text-sm text-slate-500">Manage speaker rosters and programme assignments for each event.</p>
</div>
<form method="GET" class="flex items-center gap-2">
<input type="text" name="search" value="{{ $search }}" placeholder="Search events…"
class="w-full max-w-sm rounded-xl border border-slate-200 px-3.5 py-2 text-sm focus:border-indigo-400 focus:outline-none focus:ring-1 focus:ring-indigo-400/30">
<button type="submit" class="rounded-xl border border-slate-200 px-4 py-2 text-sm font-semibold text-slate-600 hover:bg-slate-50 transition">Search</button>
</form>
<div class="overflow-hidden rounded-2xl border border-slate-200 bg-white">
@if($events->isEmpty())
<div class="px-6 py-14 text-center">
<p class="text-sm text-slate-500">{{ $search ? 'No events match your search.' : 'No events yet.' }}</p>
@unless($search)
<a href="{{ route('events.create') }}" class="mt-4 btn-primary">Create your first event</a>
@endunless
</div>
@else
<div class="divide-y divide-slate-100">
@foreach($events as $event)
@php $content = $event->content(); @endphp
<a href="{{ route('speakers.show', $event) }}" class="flex items-center gap-4 px-6 py-4 transition hover:bg-slate-50">
<div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-violet-50 text-violet-600">
<svg class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 0 1 6 0v8.25a3 3 0 0 1-3 3Z"/></svg>
</div>
<div class="min-w-0 flex-1">
<p class="truncate text-sm font-semibold text-slate-900">{{ $content['name'] ?? $event->label }}</p>
<p class="truncate text-xs text-slate-500">{{ $event->label }}</p>
</div>
<div class="hidden text-right text-xs text-slate-500 sm:block">
<p class="font-semibold text-slate-900">{{ number_format($event->speaker_count) }} speakers</p>
</div>
<svg class="h-4 w-4 shrink-0 text-slate-300" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5"/></svg>
</a>
@endforeach
</div>
@endif
</div>
</div>
</x-user-layout>