Deploy Ladill Queue / deploy (push) Successful in 56s
Phases 1–6: tickets, counters, displays, appointments, workflows, rules, analytics, reports, feedback, admin, device API, and Gitea deploy workflow for queue.ladill.com. Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
2.9 KiB
PHP
51 lines
2.9 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en" class="h-full bg-slate-900">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
|
<title>Kiosk · {{ $device->name }}</title>
|
|
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
|
</head>
|
|
<body class="flex min-h-screen items-center justify-center p-6 text-white" x-data="kioskFlow({ issueUrl: '{{ route('qms.kiosk.device.issue', $device->device_token) }}', csrf: '{{ csrf_token() }}' })">
|
|
<div class="w-full max-w-lg">
|
|
<h1 class="mb-8 text-center text-3xl font-bold">{{ $device->name }}</h1>
|
|
|
|
<template x-if="step === 'select'">
|
|
<div class="space-y-3">
|
|
<p class="mb-4 text-center text-slate-300">Select a service</p>
|
|
@foreach ($queues as $queue)
|
|
<button type="button" @click="selectQueue({{ $queue->id }})"
|
|
class="w-full rounded-2xl border border-slate-600 bg-slate-800 px-6 py-5 text-left text-xl font-semibold hover:border-indigo-400"
|
|
style="border-left: 6px solid {{ $queue->color }}">
|
|
{{ $queue->name }}
|
|
</button>
|
|
@endforeach
|
|
</div>
|
|
</template>
|
|
|
|
<template x-if="step === 'details'">
|
|
<div class="rounded-2xl bg-slate-800 p-6 space-y-4">
|
|
<input type="text" x-model="customerName" placeholder="Your name (optional)" class="w-full rounded-lg border-slate-600 bg-slate-900 px-4 py-3 text-white">
|
|
<input type="tel" x-model="customerPhone" placeholder="Phone (optional)" class="w-full rounded-lg border-slate-600 bg-slate-900 px-4 py-3 text-white">
|
|
<p x-show="error" class="text-red-400 text-sm" x-text="error"></p>
|
|
<div class="flex gap-3">
|
|
<button type="button" @click="reset()" class="flex-1 rounded-lg border border-slate-600 py-3">Back</button>
|
|
<button type="button" @click="issue()" :disabled="loading" class="flex-1 rounded-lg bg-indigo-600 py-3 font-semibold">Get ticket</button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<template x-if="step === 'ticket' && ticket">
|
|
<div class="rounded-2xl bg-indigo-600 p-8 text-center">
|
|
<p class="text-sm uppercase tracking-widest opacity-80">Your number</p>
|
|
<p class="mt-2 text-6xl font-bold" x-text="ticket.ticket_number"></p>
|
|
<p class="mt-4 text-xl" x-text="ticket.queue?.name"></p>
|
|
<p class="mt-6 text-lg" x-text="ticket.estimated_wait_seconds ? 'Est. wait: ' + Math.ceil(ticket.estimated_wait_seconds / 60) + ' mins' : ''"></p>
|
|
<button type="button" @click="reset()" class="mt-8 rounded-lg bg-white/20 px-6 py-3">Done</button>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
</body>
|
|
</html>
|