Deploy Ladill Queue / deploy (push) Successful in 1m6s
Aligns kiosk, appointment, queue, and admin destructive actions with the Frontdesk pill-button pattern. Co-authored-by: Cursor <cursoragent@cursor.com>
69 lines
3.9 KiB
PHP
69 lines
3.9 KiB
PHP
<x-app-layout :title="'Rules — '.$queue->name">
|
|
<div class="mb-6">
|
|
<a href="{{ route('qms.queues.index') }}" class="text-sm text-indigo-600">← Queues</a>
|
|
<h1 class="mt-2 text-2xl font-semibold">Queue rules</h1>
|
|
<p class="text-sm text-slate-600">{{ $queue->name }}</p>
|
|
</div>
|
|
@include('partials.flash')
|
|
<div class="mb-6 rounded-2xl border bg-white p-6 dark:border-slate-700 dark:bg-slate-900">
|
|
<h2 class="text-sm font-semibold">Add rule</h2>
|
|
<form method="POST" action="{{ route('qms.rules.store', $queue) }}" class="mt-4 grid gap-4 md:grid-cols-2">
|
|
@csrf
|
|
<div>
|
|
<label class="block text-sm font-medium">Type</label>
|
|
<select name="rule_type" required class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
@foreach ($ruleTypes as $value => $label)
|
|
<option value="{{ $value }}">{{ $label }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-medium">Overflow queue</label>
|
|
<select name="overflow_queue_id" class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
<option value="">—</option>
|
|
@foreach (\App\Models\ServiceQueue::owned($queue->owner_ref)->where('organization_id', $queue->organization_id)->where('id', '!=', $queue->id)->get() as $q)
|
|
<option value="{{ $q->id }}">{{ $q->name }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-medium">Waiting threshold</label>
|
|
<input name="waiting_threshold" type="number" min="1" class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-medium">Boost priority to</label>
|
|
<select name="priority" class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
|
@foreach (config('qms.ticket_priorities') as $value => $label)
|
|
<option value="{{ $value }}">{{ $label }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div class="md:col-span-2"><button type="submit" class="btn-primary">Add rule</button></div>
|
|
</form>
|
|
</div>
|
|
<div class="overflow-hidden rounded-2xl border bg-white dark:border-slate-700 dark:bg-slate-900">
|
|
<table class="min-w-full divide-y divide-slate-200">
|
|
<thead class="bg-slate-50"><tr>
|
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Type</th>
|
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Conditions</th>
|
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase text-slate-500">Actions</th>
|
|
<th></th>
|
|
</tr></thead>
|
|
<tbody class="divide-y divide-slate-200">
|
|
@forelse ($rules as $rule)
|
|
<tr>
|
|
<td class="px-4 py-3 text-sm">{{ $ruleTypes[$rule->rule_type] ?? $rule->rule_type }}</td>
|
|
<td class="px-4 py-3 text-xs text-slate-600">{{ json_encode($rule->conditions) }}</td>
|
|
<td class="px-4 py-3 text-xs text-slate-600">{{ json_encode($rule->actions) }}</td>
|
|
<td class="px-4 py-3 text-right">
|
|
<form method="POST" action="{{ route('qms.rules.destroy', [$queue, $rule]) }}">@csrf @method('DELETE')<x-btn type="submit" variant="danger" size="sm">Remove</x-btn></form>
|
|
</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="4" class="px-6 py-8 text-center text-sm text-slate-500">No rules yet.</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</x-app-layout>
|