Deploy Ladill Frontdesk / deploy (push) Successful in 25s
Replace inline teal button classes with shared btn-primary and indigo nav/link styling used by CRM and POS. Co-authored-by: Cursor <cursoragent@cursor.com>
53 lines
3.6 KiB
PHP
53 lines
3.6 KiB
PHP
<x-app-layout title="Integrations">
|
|
<h1 class="text-xl font-semibold text-slate-900 dark:text-slate-100">Integrations</h1>
|
|
<p class="text-sm text-slate-500 dark:text-slate-400">Connect Ladill apps and external systems.</p>
|
|
|
|
<section class="mt-6 rounded-2xl border border-slate-200 bg-white p-5 dark:border-slate-700 dark:bg-slate-900">
|
|
<h2 class="text-sm font-semibold text-slate-900 dark:text-slate-100">Supported Ladill apps</h2>
|
|
<ul class="mt-3 grid gap-2 sm:grid-cols-2 text-sm text-slate-600 dark:text-slate-300">
|
|
@foreach ($integrations as $key => $label)
|
|
<li class="rounded-lg bg-slate-50 px-3 py-2 dark:bg-slate-800">{{ $label }} <span class="text-slate-400">({{ $key }})</span></li>
|
|
@endforeach
|
|
</ul>
|
|
<p class="mt-3 text-xs text-slate-500">Sibling apps authenticate with service API keys and can create visits via <code class="text-xs">POST /api/visits</code> with <code class="text-xs">external_ref</code> for idempotency.</p>
|
|
</section>
|
|
|
|
@if ($canManage)
|
|
<form method="POST" action="{{ route('frontdesk.integrations.update') }}" class="mt-6 max-w-2xl space-y-6">
|
|
@csrf @method('PUT')
|
|
|
|
<section class="rounded-2xl border border-slate-200 bg-white p-5 space-y-4 dark:border-slate-700 dark:bg-slate-900">
|
|
<h2 class="text-sm font-semibold text-slate-900 dark:text-slate-100">Outbound webhooks</h2>
|
|
<div>
|
|
<label class="block text-sm font-medium">Webhook URL</label>
|
|
<input type="url" name="webhook_url" value="{{ old('webhook_url', $webhook?->url) }}" placeholder="https://example.com/webhooks/frontdesk" class="mt-1 w-full rounded-lg border-slate-300 text-sm dark:border-slate-600 dark:bg-slate-800">
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-medium">Signing secret</label>
|
|
<input type="text" name="webhook_secret" value="{{ old('webhook_secret', $webhook?->secret) }}" class="mt-1 w-full rounded-lg border-slate-300 text-sm dark:border-slate-600 dark:bg-slate-800">
|
|
</div>
|
|
<div>
|
|
<p class="text-sm font-medium">Events</p>
|
|
<div class="mt-2 space-y-2">
|
|
@foreach ($webhookEvents as $event)
|
|
<label class="flex items-center gap-2 text-sm">
|
|
<input type="checkbox" name="webhook_events[]" value="{{ $event }}"
|
|
@checked(in_array($event, old('webhook_events', $webhook?->events ?? $webhookEvents)))>
|
|
{{ $event }}
|
|
</label>
|
|
@endforeach
|
|
</div>
|
|
</div>
|
|
<label class="flex items-center gap-2 text-sm"><input type="checkbox" name="webhook_active" value="1" @checked(old('webhook_active', $webhook?->is_active ?? true))> Active</label>
|
|
<button type="submit" class="btn-primary">Save integrations</button>
|
|
</section>
|
|
</form>
|
|
@endif
|
|
|
|
<section class="mt-6 rounded-2xl border border-slate-200 bg-white p-5 dark:border-slate-700 dark:bg-slate-900">
|
|
<h2 class="text-sm font-semibold text-slate-900 dark:text-slate-100">Calendar feed (iCal)</h2>
|
|
<p class="mt-2 text-sm text-slate-600 dark:text-slate-300">Subscribe to scheduled visits in Outlook, Google Calendar, or Apple Calendar.</p>
|
|
<code class="mt-3 block break-all rounded-lg bg-slate-50 p-3 text-xs dark:bg-slate-800">{{ $icalUrl }}</code>
|
|
</section>
|
|
</x-app-layout>
|