public function index()
{
$languages = Language::listing();
$genres = Genre::listing();
$beatmaps = json_collection(Beatmapset::listing(), new BeatmapsetTransformer(), 'beatmaps');
// temporarily put filters here
$modes = [['id' => null, 'name' => trans('beatmaps.mode.any')]];
foreach (Beatmap::MODES as $name => $id) {
$modes[] = ['id' => (string) $id, 'name' => trans("beatmaps.mode.{$name}")];
}
$statuses = [['id' => '7', 'name' => trans('beatmaps.status.any')], ['id' => '0', 'name' => trans('beatmaps.status.ranked-approved')], ['id' => '1', 'name' => trans('beatmaps.status.approved')], ['id' => '8', 'name' => trans('beatmaps.status.loved')], ['id' => '2', 'name' => trans('beatmaps.status.faves')], ['id' => '3', 'name' => trans('beatmaps.status.modreqs')], ['id' => '4', 'name' => trans('beatmaps.status.pending')], ['id' => '5', 'name' => trans('beatmaps.status.graveyard')], ['id' => '6', 'name' => trans('beatmaps.status.my-maps')]];
$extras = [['id' => '0', 'name' => trans('beatmaps.extra.video')], ['id' => '1', 'name' => trans('beatmaps.extra.storyboard')]];
$ranks = [];
foreach (['XH', 'X', 'SH', 'S', 'A', 'B', 'C', 'D'] as $rank) {
$ranks[] = ['id' => $rank, 'name' => trans("beatmaps.rank.{$rank}")];
}
$filters = compact('modes', 'statuses', 'genres', 'languages', 'extras', 'ranks');
return view('beatmaps.index', compact('filters', 'beatmaps'));
}