Deploy Ladill Queue / deploy (push) Successful in 36s
Customers can pick a service, optionally enter details, and receive a ticket on a branded touchscreen flow with admin-configurable queues and auto-reset. Co-authored-by: Cursor <cursoragent@cursor.com>
91 lines
4.3 KiB
PHP
91 lines
4.3 KiB
PHP
<x-app-layout title="Register device">
|
|
<div class="mx-auto max-w-lg">
|
|
<form
|
|
method="POST"
|
|
action="{{ route('qms.devices.store') }}"
|
|
class="space-y-4 rounded-2xl border bg-white p-6"
|
|
x-data="{ type: '{{ old('type', 'kiosk') }}' }"
|
|
>
|
|
@csrf
|
|
<div>
|
|
<label class="block text-sm font-medium">Name</label>
|
|
<input name="name" value="{{ old('name') }}" required class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-medium">Type</label>
|
|
<select name="type" x-model="type" class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
@foreach ($deviceTypes as $k => $v)
|
|
<option value="{{ $k }}" @selected(old('type', 'kiosk') === $k)>{{ $v }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-medium">Branch</label>
|
|
<select name="branch_id" class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
<option value="">—</option>
|
|
@foreach ($branches as $b)
|
|
<option value="{{ $b->id }}" @selected((string) old('branch_id') === (string) $b->id)>{{ $b->name }}</option>
|
|
@endforeach
|
|
</select>
|
|
<p class="mt-1 text-xs text-slate-500">Optional. Limits which queues appear on this kiosk.</p>
|
|
</div>
|
|
|
|
<div x-show="type === 'kiosk'" x-cloak class="space-y-4 rounded-xl border border-slate-200 bg-slate-50 p-4">
|
|
<div>
|
|
<p class="text-sm font-medium text-slate-900">Kiosk queues</p>
|
|
<p class="mt-1 text-xs text-slate-500">Leave unchecked to show all active queues for the branch.</p>
|
|
<div class="mt-3 space-y-2">
|
|
@foreach ($queues as $q)
|
|
<label class="flex gap-2 text-sm text-slate-700">
|
|
<input
|
|
type="checkbox"
|
|
name="queue_ids[]"
|
|
value="{{ $q->id }}"
|
|
@checked(in_array($q->id, old('queue_ids', [])))
|
|
>
|
|
{{ $q->name }}
|
|
</label>
|
|
@endforeach
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<label class="block text-sm font-medium">Welcome message</label>
|
|
<input
|
|
name="welcome_message"
|
|
value="{{ old('welcome_message') }}"
|
|
class="mt-1 w-full rounded-lg border-slate-300 text-sm"
|
|
placeholder="Tap a service below to get your ticket"
|
|
>
|
|
</div>
|
|
|
|
<div class="grid gap-3 sm:grid-cols-2">
|
|
<label class="flex items-center gap-2 text-sm">
|
|
<input type="checkbox" name="collect_name" value="1" @checked(old('collect_name'))>
|
|
Ask for name
|
|
</label>
|
|
<label class="flex items-center gap-2 text-sm">
|
|
<input type="checkbox" name="collect_phone" value="1" @checked(old('collect_phone'))>
|
|
Ask for phone
|
|
</label>
|
|
</div>
|
|
|
|
<div>
|
|
<label class="block text-sm font-medium">Auto-reset (seconds)</label>
|
|
<input
|
|
type="number"
|
|
name="reset_seconds"
|
|
min="5"
|
|
max="120"
|
|
value="{{ old('reset_seconds', 15) }}"
|
|
class="mt-1 w-full rounded-lg border-slate-300 text-sm"
|
|
>
|
|
<p class="mt-1 text-xs text-slate-500">Return to the welcome screen after a ticket is issued.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<button type="submit" class="btn-primary w-full">Register</button>
|
|
</form>
|
|
</div>
|
|
</x-app-layout>
|