Allow filtering of entries on admin screen by entry type
This commit is contained in:
parent
1613b0e590
commit
0041c62008
|
|
@ -66,6 +66,19 @@ class EntryController extends Controller
|
|||
$query->where('last_name', 'like', '%'.$filters['last_name'].'%');
|
||||
});
|
||||
}
|
||||
|
||||
if ($filters['entry_type']) {
|
||||
// TODO define actions for each possible type filter from index.blade.php of the admin entry
|
||||
match ($filters['entry_type']) {
|
||||
'all' => null,
|
||||
'seats' => $entries->where('for_seating', true),
|
||||
'advancement' => $entries->where('for_advancement', true),
|
||||
'seatsOnly' => $entries->where('for_seating', true)->where('for_advancement', false) ,
|
||||
'advancementOnly' => $entries->where('for_seating', false)->where('for_advancement', true),
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$entries = $entries->paginate(25);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class FilterController extends Controller
|
|||
$filters['grade'] = request('grade_filter') ? request('grade_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['entry_type'] = request('entry_type_filter') ? request('entry_type_filter') : null;
|
||||
|
||||
session(['adminEntryFilters' => $filters]);
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,18 @@
|
|||
@php($n++);
|
||||
@endwhile
|
||||
</x-form.select>
|
||||
<x-form.field name="first_name_filter" colspan="6" label_text="First Name" value="{{ ($filters['first_name'] ?? null) }}"/>
|
||||
<x-form.field name="last_name_filter" colspan="6" label_text="Last Name" value="{{ ($filters['last_name'] ?? null) }}"/>
|
||||
<x-form.field name="first_name_filter" colspan="5" 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) }}"/>
|
||||
@if(auditionSetting('advanceTo'))
|
||||
<x-form.select name="entry_type_filter" colspan="2">
|
||||
<x-slot:label>Entry Type</x-slot:label>
|
||||
<option value="all" {{ ($filters['entry_type'] ?? null) == 'all' ? 'SELECTED':'' }}>All</option>
|
||||
<option value="seats" {{ ($filters['entry_type'] ?? null) == 'seats' ? 'SELECTED':'' }}>{{ auditionSetting('auditionAbbreviation') }}</option>
|
||||
<option value="advancement" {{ ($filters['entry_type'] ?? null) == 'advancement' ? 'SELECTED':'' }}>{{ auditionSetting('advanceTo') }}</option>
|
||||
<option value="seatsOnly" {{ ($filters['entry_type'] ?? null) == 'seatsOnly' ? 'SELECTED':'' }}>ONLY {{ auditionSetting('auditionAbbreviation') }}</option>
|
||||
<option value="advancementOnly" {{ ($filters['entry_type'] ?? null) == 'advancementOnly' ? 'SELECTED':'' }}>ONLY {{ auditionSetting('advanceTo') }}</option>
|
||||
</x-form.select>
|
||||
@endif
|
||||
</x-form.body-grid>
|
||||
<x-form.footer class="pb-4">
|
||||
<x-form.button-nocolor href="{{ route('admin_entry_filter.clear') }}">Clear Filters</x-form.button-nocolor>
|
||||
|
|
|
|||
Loading…
Reference in New Issue