Allow the user to choose how many entries per page on the entry admin screen.

This commit is contained in:
Matt Young 2024-11-02 12:31:41 -05:00
parent 4889a7281d
commit 42a5cef684
3 changed files with 17 additions and 3 deletions

View File

@ -28,6 +28,7 @@ class EntryController extends Controller
if (! Auth::user()->is_admin) { if (! Auth::user()->is_admin) {
abort(403); abort(403);
} }
$perPage = 25;
$filters = session('adminEntryFilters') ?? null; $filters = session('adminEntryFilters') ?? null;
$minGrade = Audition::min('minimum_grade'); $minGrade = Audition::min('minimum_grade');
$maxGrade = Audition::max('maximum_grade'); $maxGrade = Audition::max('maximum_grade');
@ -79,9 +80,13 @@ class EntryController extends Controller
}; };
} }
if ($filters['entries_per_page']) {
$perPage = $filters['entries_per_page'];
}
} }
$entries = $entries->paginate(10000); $entries = $entries->paginate($perPage);
return view('admin.entries.index', [ return view('admin.entries.index', [
'entries' => $entries, 'entries' => $entries,

View File

@ -16,6 +16,7 @@ class FilterController extends Controller
$filters['first_name'] = request('first_name_filter') ? request('first_name_filter') : null; $filters['first_name'] = request('first_name_filter') ? request('first_name_filter') : null;
$filters['last_name'] = request('last_name_filter') ? request('last_name_filter') : null; $filters['last_name'] = request('last_name_filter') ? request('last_name_filter') : null;
$filters['entry_type'] = request('entry_type_filter') ? request('entry_type_filter') : null; $filters['entry_type'] = request('entry_type_filter') ? request('entry_type_filter') : null;
$filters['entries_per_page'] = request('entries_per_page_filter') ? request('entries_per_page_filter') : null;
session(['adminEntryFilters' => $filters]); session(['adminEntryFilters' => $filters]);

View File

@ -36,8 +36,8 @@
@php($n++); @php($n++);
@endwhile @endwhile
</x-form.select> </x-form.select>
<x-form.field name="first_name_filter" colspan="5" label_text="First Name" value="{{ ($filters['first_name'] ?? null) }}"/> <x-form.field name="first_name_filter" colspan="4" label_text="First Name" value="{{ ($filters['first_name'] ?? null) }}"/>
<x-form.field name="last_name_filter" colspan="5" label_text="Last Name" value="{{ ($filters['last_name'] ?? null) }}"/> <x-form.field name="last_name_filter" colspan="4" label_text="Last Name" value="{{ ($filters['last_name'] ?? null) }}"/>
@if(auditionSetting('advanceTo')) @if(auditionSetting('advanceTo'))
<x-form.select name="entry_type_filter" colspan="2"> <x-form.select name="entry_type_filter" colspan="2">
<x-slot:label>Entry Type</x-slot:label> <x-slot:label>Entry Type</x-slot:label>
@ -48,6 +48,14 @@
<option value="advancementOnly" {{ ($filters['entry_type'] ?? null) == 'advancementOnly' ? 'SELECTED':'' }}>ONLY {{ auditionSetting('advanceTo') }}</option> <option value="advancementOnly" {{ ($filters['entry_type'] ?? null) == 'advancementOnly' ? 'SELECTED':'' }}>ONLY {{ auditionSetting('advanceTo') }}</option>
</x-form.select> </x-form.select>
@endif @endif
<x-form.select name="entries_per_page_filter" colspan="2">
<x-slot:label>Entries Per Page</x-slot:label>
<option value="10" {{ ($filters['entries_per_page'] ?? null) == '10' ? 'SELECTED':'' }}>10</option>
<option value="25" {{ ($filters['entries_per_page'] ?? null) == '25' ? 'SELECTED':'' }}>25</option>
<option value="50" {{ ($filters['entries_per_page'] ?? null) == '50' ? 'SELECTED':'' }}>50</option>
<option value="100" {{ ($filters['entries_per_page'] ?? null) == '100' ? 'SELECTED':'' }}>100</option>
<option value="10000" {{ ($filters['entries_per_page'] ?? null) == '10000' ? 'SELECTED':'' }}>All</option>
</x-form.select>
</x-form.body-grid> </x-form.body-grid>
<x-form.footer class="pb-4"> <x-form.footer class="pb-4">
<x-form.button-nocolor href="{{ route('admin_entry_filter.clear') }}">Clear Filters</x-form.button-nocolor> <x-form.button-nocolor href="{{ route('admin_entry_filter.clear') }}">Clear Filters</x-form.button-nocolor>