This commit is contained in:
Mark Gregory
2026-07-24 11:47:08 +01:00
parent 8c74abfbc6
commit d512840a9a
27 changed files with 304 additions and 6 deletions
@@ -0,0 +1 @@
<x-layouts.app :title="$site->exists ? __('Edit site') : __('New site')"><div class="max-w-5xl space-y-6"><div><flux:heading size="xl">{{ $site->exists ? 'Edit site' : 'New site' }}</flux:heading><flux:text>Configure the site identity, theme and regional defaults.</flux:text></div><form method="POST" action="{{ $site->exists ? route('administration.sites.update',$site) : route('administration.sites.store') }}" class="space-y-5 rounded-xl border border-zinc-200 p-6 dark:border-zinc-700">@csrf @if($site->exists) @method('PUT') @endif<div class="grid gap-4 md:grid-cols-2"><flux:input name="name" label="Name" value="{{ old('name',$site->name) }}" required/><flux:input name="key" label="Key" value="{{ old('key',$site->key) }}" required/><flux:select name="status" label="Status"><option value="active" @selected(old('status',$site->status)==='active')>Active</option><option value="inactive" @selected(old('status',$site->status)==='inactive')>Inactive</option><option value="maintenance" @selected(old('status',$site->status)==='maintenance')>Maintenance</option></flux:select><flux:input name="theme" label="Theme" value="{{ old('theme',$site->theme) }}"/><flux:input name="default_locale" label="Default locale" value="{{ old('default_locale',$site->default_locale ?: 'en') }}" required/><flux:input name="timezone" label="Timezone" value="{{ old('timezone',$site->timezone ?: config('app.timezone')) }}" required/></div><flux:checkbox name="is_default" value="1" :checked="old('is_default',$site->is_default)">Default site</flux:checkbox><div class="flex gap-2"><flux:button type="submit" variant="primary">Save site</flux:button><flux:button :href="route('administration.sites.index')" wire:navigate>Cancel</flux:button></div></form>@if($site->exists)<div class="rounded-xl border border-zinc-200 p-6 dark:border-zinc-700"><flux:heading size="lg">Domains</flux:heading><div class="mt-4 space-y-3">@foreach($site->domains as $domain)<div class="flex items-center justify-between rounded-lg border border-zinc-200 p-3 dark:border-zinc-700"><div><span class="font-medium">{{ $domain->domain }}</span> @if($domain->is_primary)<flux:badge size="sm">Primary</flux:badge>@endif</div><form method="POST" action="{{ route('administration.sites.domains.destroy',[$site,$domain]) }}">@csrf @method('DELETE')<flux:button type="submit" size="sm" variant="danger">Remove</flux:button></form></div>@endforeach</div><form method="POST" action="{{ route('administration.sites.domains.store',$site) }}" class="mt-5 grid gap-3 md:grid-cols-2">@csrf<flux:input name="domain" label="Domain" placeholder="example.com" required/><div class="flex flex-wrap items-end gap-4"><flux:checkbox name="is_primary" value="1">Primary</flux:checkbox><flux:checkbox name="force_https" value="1" checked>Force HTTPS</flux:checkbox><flux:checkbox name="is_active" value="1" checked>Active</flux:checkbox></div><div><flux:button type="submit">Add domain</flux:button></div></form></div>@endif</div></x-layouts.app>
@@ -0,0 +1 @@
<x-layouts.app :title="__('Sites')"><div class="flex h-full w-full flex-1 flex-col gap-6 rounded-xl"><div class="flex items-center justify-between"><div><flux:heading size="xl">Sites</flux:heading><flux:text>Manage websites, domains, themes and regional defaults.</flux:text></div><flux:button variant="primary" icon="plus" :href="route('administration.sites.create')" wire:navigate>New site</flux:button></div><div class="overflow-hidden rounded-xl border border-zinc-200 dark:border-zinc-700"><table class="w-full text-sm"><thead class="bg-zinc-50 dark:bg-zinc-900"><tr><th class="p-3 text-left">Site</th><th class="p-3 text-left">Domains</th><th class="p-3 text-left">Theme</th><th class="p-3 text-left">Status</th><th class="p-3"></th></tr></thead><tbody>@foreach($sites as $site)<tr class="border-t border-zinc-200 dark:border-zinc-700"><td class="p-3 font-medium">{{ $site->name }} @if($site->is_default)<flux:badge size="sm">Default</flux:badge>@endif</td><td class="p-3">{{ $site->domains->pluck('domain')->join(', ') ?: 'No domains' }}</td><td class="p-3">{{ $site->theme ?: 'Inherited' }}</td><td class="p-3"><flux:badge :color="$site->status === 'active' ? 'green' : 'zinc'">{{ ucfirst($site->status) }}</flux:badge></td><td class="p-3 text-right"><flux:button size="sm" :href="route('administration.sites.edit',$site)" wire:navigate>Edit</flux:button></td></tr>@endforeach</tbody></table></div>{{ $sites->links() }}</div></x-layouts.app>