Files
2026-09-12 21:18:19 +01:00

63 lines
3.9 KiB
PHP

@extends('layouts.admin')
@section('title', $definition['title'])
@section('page-title', $definition['title'])
@section('content')
<div class="page-heading admin-heading crud-heading">
<div>
<div class="eyebrow">Management</div>
<h1>{{ $definition['title'] }}</h1>
<p>Create, edit and remove {{ strtolower($definition['title']) }} records.</p>
</div>
<div class="crud-heading-actions">
@if($resource === 'roles')<a class="toggle-button" href="{{ route('admin.resources.index', 'permissions') }}">Manage permissions</a>@endif
@if($resource === 'permissions')<a class="toggle-button" href="{{ route('admin.resources.index', 'roles') }}">Manage roles</a>@endif
@if($resource === 'settings')<form method="post" action="{{ route('admin.settings.clear-cache') }}">@csrf<button class="toggle-button" type="submit">Clear application cache</button></form>@endif
<a class="admin-button primary" href="{{ route('admin.resources.create', $resource) }}">+ Add {{ strtolower($definition['singular']) }}</a>
</div>
</div>
<div class="admin-card crud-toolbar">
<form method="get" action="{{ route('admin.resources.index', $resource) }}" class="crud-search">
<input type="search" name="q" value="{{ request('q') }}" placeholder="Search {{ strtolower($definition['title']) }}…">
<button class="admin-button" type="submit">Search</button>
@if(request('q'))<a class="toggle-button" href="{{ route('admin.resources.index', $resource) }}">Clear</a>@endif
</form>
<span class="record-count">{{ number_format($records->total()) }} records</span>
</div>
<div class="admin-card table-card">
<div class="responsive-table">
<table class="crud-table">
<thead><tr>@foreach($definition['columns'] as $label)<th>{{ $label }}</th>@endforeach<th class="actions-col">Actions</th></tr></thead>
<tbody>
@forelse($records as $record)
<tr>
@foreach($definition['columns'] as $path => $label)
@php
$value = $path === 'roles_text' ? $record->getRoleNames()->join(', ') : data_get($record, $path);
if ($value instanceof \Carbon\CarbonInterface) $value = $value->format('j M Y H:i');
elseif (is_bool($value)) $value = $value ? 'Yes' : 'No';
elseif (in_array($path, ['amount','total','deposit','price_from'], true) && $value !== null) $value = '£'.number_format((float)$value, 2);
@endphp
<td data-label="{{ $label }}">{{ filled($value) ? $value : '—' }}</td>
@endforeach
<td data-label="Actions">
<div class="row-actions">
<a class="toggle-button" href="{{ route('admin.resources.edit', [$resource, $record->getKey()]) }}">Edit</a>
<form method="post" action="{{ route('admin.resources.destroy', [$resource, $record->getKey()]) }}" onsubmit="return confirm('Delete this {{ strtolower($definition['singular']) }}? This cannot be undone.')">
@csrf @method('DELETE')
<button class="danger-button" type="submit">Delete</button>
</form>
</div>
</td>
</tr>
@empty
<tr><td colspan="{{ count($definition['columns']) + 1 }}"><div class="feature-empty"><div class="feature-icon">+</div><h2>No {{ strtolower($definition['title']) }} yet</h2><p>Create the first record to start managing this area.</p><a class="admin-button primary" href="{{ route('admin.resources.create', $resource) }}">Add {{ strtolower($definition['singular']) }}</a></div></td></tr>
@endforelse
</tbody>
</table>
</div>
</div>
<div class="crud-pagination">{{ $records->links() }}</div>
@endsection