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'].'%');
|
$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);
|
$entries = $entries->paginate(25);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ class FilterController extends Controller
|
||||||
$filters['grade'] = request('grade_filter') ? request('grade_filter') : null;
|
$filters['grade'] = request('grade_filter') ? request('grade_filter') : null;
|
||||||
$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;
|
||||||
|
|
||||||
session(['adminEntryFilters' => $filters]);
|
session(['adminEntryFilters' => $filters]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,18 @@
|
||||||
@php($n++);
|
@php($n++);
|
||||||
@endwhile
|
@endwhile
|
||||||
</x-form.select>
|
</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="first_name_filter" colspan="5" 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="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.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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue