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')); }