Add kiosk join/leave pages, waiting room, and meeting feedback.
Deploy Ladill Meet / deploy (push) Successful in 47s

Redesign public join flows on the Frontdesk kiosk template, enforce host
admission when waiting room is enabled, and collect star ratings after leave.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-01 13:33:48 +00:00
co-authored by Cursor
parent 5e34d71de0
commit 7ae26a467c
26 changed files with 865 additions and 124 deletions
+22 -25
View File
@@ -1,27 +1,24 @@
<!DOCTYPE html>
<html lang="en" 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>Join · {{ $room->title }} · Ladill Meet</title>
@include('partials.favicon')
@vite(['resources/css/app.css'])
</head>
<body class="flex min-h-screen items-center justify-center bg-slate-900 p-4 font-sans text-white">
<div class="w-full max-w-md rounded-2xl bg-slate-800 p-8 shadow-xl">
<h1 class="text-xl font-semibold">{{ $room->title }}</h1>
<p class="mt-2 text-sm text-slate-400">Enter the meeting passcode to continue.</p>
<x-meet-kiosk-layout :title="'Passcode · '.$room->title" :organization="$organization" eyebrow="Secure meeting">
<div class="flex min-h-[calc(100vh-8rem)] flex-col items-center justify-center">
<div class="w-full max-w-md rounded-3xl border border-slate-200 bg-white p-8 shadow-sm">
<h1 class="text-2xl font-bold text-slate-900">{{ $room->title }}</h1>
<p class="mt-2 text-sm text-slate-500">This meeting is protected. Enter the passcode to continue.</p>
<form method="POST" action="{{ route('meet.join.passcode', $room) }}" class="mt-6 space-y-4">
@csrf
<input type="password" name="passcode" required autofocus placeholder="Passcode"
class="w-full rounded-lg border-slate-600 bg-slate-700 px-4 py-3 text-white placeholder:text-slate-400">
@error('passcode')
<p class="text-sm text-red-400">{{ $message }}</p>
@enderror
<button type="submit" class="btn-primary w-full">Continue</button>
</form>
@if ($errors->any())
<div class="mt-4 rounded-2xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700">
{{ $errors->first() }}
</div>
@endif
<form method="POST" action="{{ route('meet.join.passcode', $room) }}" class="mt-6 space-y-4">
@csrf
<div>
<label class="block text-sm font-medium text-slate-700">Passcode</label>
<input type="password" name="passcode" required autofocus
class="mt-2 w-full rounded-2xl border-slate-200 bg-white px-4 py-3.5 text-slate-900 shadow-sm ring-1 ring-slate-200 focus:border-indigo-500 focus:ring-indigo-500">
</div>
<button type="submit" class="btn-primary btn-primary-lg w-full py-3.5 font-semibold">Continue</button>
</form>
</div>
</div>
</body>
</html>
</x-meet-kiosk-layout>