96 lines
3.7 KiB
PHP
96 lines
3.7 KiB
PHP
<x-layouts.app :title="'Compose '.ucfirst($pageKey)">
|
|
<div class="space-y-6">
|
|
<div>
|
|
<a
|
|
class="text-sm text-zinc-500 hover:underline"
|
|
href="{{ route('content.index') }}"
|
|
>
|
|
Content documents
|
|
</a>
|
|
|
|
<h1 class="text-2xl font-semibold">
|
|
{{ ucfirst($pageKey) }} composition
|
|
</h1>
|
|
</div>
|
|
|
|
@if (session('status'))
|
|
<div class="rounded-xl border border-green-300 bg-green-50 p-4 text-sm text-green-800">
|
|
{{ session('status') }}
|
|
</div>
|
|
@endif
|
|
|
|
<form
|
|
method="POST"
|
|
action="{{ route('content.pages.placements.store', $pageKey) }}"
|
|
class="grid gap-3 rounded-xl border border-zinc-200 p-4 md:grid-cols-3 dark:border-zinc-700"
|
|
>
|
|
@csrf
|
|
|
|
<flux:select name="content_document_id" label="Document" required>
|
|
@foreach ($documents as $document)
|
|
<option value="{{ $document->id }}">
|
|
{{ $document->title }} ({{ $document->type?->name ?? 'Unknown type' }})
|
|
</option>
|
|
@endforeach
|
|
</flux:select>
|
|
|
|
<flux:select name="region" label="Region" required>
|
|
@foreach (['header', 'body', 'footer'] as $region)
|
|
<option value="{{ $region }}">
|
|
{{ ucfirst($region) }}
|
|
</option>
|
|
@endforeach
|
|
</flux:select>
|
|
|
|
<div class="self-end">
|
|
<flux:button type="submit" variant="primary">
|
|
Add placement
|
|
</flux:button>
|
|
</div>
|
|
</form>
|
|
|
|
@foreach (['header', 'body', 'footer'] as $region)
|
|
<section class="rounded-xl border border-zinc-200 p-4 dark:border-zinc-700">
|
|
<h2 class="mb-3 text-lg font-semibold">
|
|
{{ ucfirst($region) }}
|
|
</h2>
|
|
|
|
<div class="space-y-2">
|
|
@forelse ($placements->get($region, collect()) as $placement)
|
|
<div class="flex items-center justify-between gap-4 rounded-lg border border-zinc-200 p-3 dark:border-zinc-700">
|
|
<div class="min-w-0">
|
|
<a
|
|
class="block truncate font-medium hover:underline"
|
|
href="{{ route('content.documents.edit', $placement->document) }}"
|
|
>
|
|
{{ $placement->document->title }}
|
|
</a>
|
|
|
|
<div class="text-xs text-zinc-500">
|
|
{{ $placement->is_enabled ? 'Enabled' : 'Disabled' }}
|
|
</div>
|
|
</div>
|
|
|
|
<form
|
|
method="POST"
|
|
action="{{ route('content.pages.placements.destroy', [$pageKey, $placement]) }}"
|
|
>
|
|
@csrf
|
|
@method('DELETE')
|
|
|
|
<flux:button type="submit" size="sm" variant="danger">
|
|
Remove
|
|
</flux:button>
|
|
</form>
|
|
</div>
|
|
@empty
|
|
<p class="text-sm text-zinc-500">
|
|
No placements.
|
|
</p>
|
|
@endforelse
|
|
</div>
|
|
</section>
|
|
@endforeach
|
|
</div>
|
|
</x-layouts.app>
|