From a9628992b3c8f2f4728d46c67c9ac4b4e86e5322 Mon Sep 17 00:00:00 2001 From: nanaya Date: Fri, 23 Aug 2024 16:57:15 +0900 Subject: [PATCH 1/2] Increase default per page pagination limit --- app/Http/Controllers/FollowsController.php | 4 ++-- app/Http/Controllers/Forum/ForumsController.php | 2 +- app/Http/Controllers/Forum/TopicLogsController.php | 2 +- app/Http/Controllers/Forum/TopicsController.php | 2 +- app/Http/Controllers/Multiplayer/RoomsController.php | 5 +++-- app/Http/Controllers/RankingController.php | 3 ++- app/Http/Controllers/Store/OrdersController.php | 2 +- app/Models/Model.php | 2 ++ 8 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/FollowsController.php b/app/Http/Controllers/FollowsController.php index 303de187ef2..287f0396458 100644 --- a/app/Http/Controllers/FollowsController.php +++ b/app/Http/Controllers/FollowsController.php @@ -137,7 +137,7 @@ private function indexComment() private function indexForumTopic() { - $topics = Topic::watchedByUser($this->user)->paginate(50); + $topics = Topic::watchedByUser($this->user)->paginate(); $topicReadStatus = TopicTrack::readStatus($this->user, $topics); $topicWatchStatus = TopicWatch::watchStatus($this->user, $topics); @@ -193,7 +193,7 @@ private function indexModding() ->visible() ->orderBy('last_notified', 'DESC') ->with('beatmapset') - ->paginate(50); + ->paginate(); $totalCount = $watches->total(); $unreadCount = $this->user->beatmapsetWatches()->visible()->unread()->count(); $openIssues = BeatmapDiscussion diff --git a/app/Http/Controllers/Forum/ForumsController.php b/app/Http/Controllers/Forum/ForumsController.php index 61050780d07..85e0d903737 100644 --- a/app/Http/Controllers/Forum/ForumsController.php +++ b/app/Http/Controllers/Forum/ForumsController.php @@ -89,7 +89,7 @@ public function show($id) ->normal() ->showDeleted($showDeleted) ->recent(compact('sort', 'withReplies')) - ->paginate(30); + ->paginate(); $allTopics = array_merge($pinnedTopics->all(), $topics->all()); $topicReadStatus = TopicTrack::readStatus($user, $allTopics); diff --git a/app/Http/Controllers/Forum/TopicLogsController.php b/app/Http/Controllers/Forum/TopicLogsController.php index 09c397ed395..c933a4df311 100644 --- a/app/Http/Controllers/Forum/TopicLogsController.php +++ b/app/Http/Controllers/Forum/TopicLogsController.php @@ -19,7 +19,7 @@ public function index($topicId) $logs = $topic->logs() ->where('log_type', Log::LOG_FORUM_MOD) ->orderByDesc('log_time') - ->paginate(30); + ->paginate(); return ext_view('forum.topics.logs.index', compact('logs', 'topic')); } diff --git a/app/Http/Controllers/Forum/TopicsController.php b/app/Http/Controllers/Forum/TopicsController.php index 76dca0b2b6f..b7a7d07d0dd 100644 --- a/app/Http/Controllers/Forum/TopicsController.php +++ b/app/Http/Controllers/Forum/TopicsController.php @@ -625,7 +625,7 @@ private function getIndexParams($topic, $currentUser, $userCanModerate) ], ['null_missing' => true]); $params['skip_layout'] = $params['skip_layout'] ?? false; - $params['limit'] = clamp($params['limit'] ?? 20, 1, 50); + $params['limit'] = clamp($params['limit'] ?? Post::PER_PAGE, 1, 50); if ($userCanModerate) { $params['with_deleted'] ??= ($currentUser->userProfileCustomization ?? UserProfileCustomization::DEFAULTS)['forum_posts_show_deleted']; diff --git a/app/Http/Controllers/Multiplayer/RoomsController.php b/app/Http/Controllers/Multiplayer/RoomsController.php index ded0789e666..a6a1d555a99 100644 --- a/app/Http/Controllers/Multiplayer/RoomsController.php +++ b/app/Http/Controllers/Multiplayer/RoomsController.php @@ -7,6 +7,7 @@ use App\Exceptions\InvariantException; use App\Http\Controllers\Controller as BaseController; +use App\Models\Model; use App\Models\Multiplayer\Room; use App\Transformers\Multiplayer\RoomTransformer; @@ -114,7 +115,7 @@ public function join($roomId, $userId) public function leaderboard($roomId) { - $limit = clamp(get_int(request('limit')) ?? 50, 1, 50); + $limit = clamp(get_int(request('limit')) ?? Model::PER_PAGE, 1, 50); $room = Room::findOrFail($roomId); // leaderboard currently requires auth so auth()->check() is not required. @@ -182,7 +183,7 @@ public function show($id) } $beatmaps = $playlistItemsQuery->with('beatmap.beatmapset.beatmaps')->get()->pluck('beatmap'); $beatmapsets = $beatmaps->pluck('beatmapset'); - $highScores = $room->topScores()->paginate(50); + $highScores = $room->topScores()->paginate(); $spotlightRooms = Room::featured()->orderBy('id', 'DESC')->get(); return ext_view('multiplayer.rooms.show', [ diff --git a/app/Http/Controllers/RankingController.php b/app/Http/Controllers/RankingController.php index 220ea3f2b8e..96ebece82cf 100644 --- a/app/Http/Controllers/RankingController.php +++ b/app/Http/Controllers/RankingController.php @@ -8,6 +8,7 @@ use App\Models\Beatmap; use App\Models\Country; use App\Models\CountryStatistics; +use App\Models\Model; use App\Models\Spotlight; use App\Models\User; use App\Models\UserStatistics; @@ -28,7 +29,7 @@ class RankingController extends Controller private $friendsOnly; const MAX_RESULTS = 10000; - const PAGE_SIZE = 50; + const PAGE_SIZE = Model::PER_PAGE; const RANKING_TYPES = ['performance', 'charts', 'score', 'country']; const SPOTLIGHT_TYPES = ['charts']; // in display order diff --git a/app/Http/Controllers/Store/OrdersController.php b/app/Http/Controllers/Store/OrdersController.php index f7ff4916269..a77eb9d289e 100644 --- a/app/Http/Controllers/Store/OrdersController.php +++ b/app/Http/Controllers/Store/OrdersController.php @@ -40,7 +40,7 @@ public function index() $orders->where('status', '<>', 'incart'); } - $orders = $orders->paginate(20); + $orders = $orders->paginate(); return ext_view('store.orders.index', compact('orders')); } diff --git a/app/Models/Model.php b/app/Models/Model.php index bf18a21fdb8..49c27893450 100644 --- a/app/Models/Model.php +++ b/app/Models/Model.php @@ -22,10 +22,12 @@ abstract class Model extends BaseModel use HasFactory, Traits\FasterAttributes, Validatable; const MAX_FIELD_LENGTHS = []; + const int PER_PAGE = 50; protected $connection = 'mysql'; protected $guarded = []; protected array $macros = []; + protected $perPage = self::PER_PAGE; protected $primaryKeys; public static function booted() From 3449a7e267af466e8471911c22e59f0372159f48 Mon Sep 17 00:00:00 2001 From: nanaya Date: Mon, 26 Aug 2024 18:02:03 +0900 Subject: [PATCH 2/2] Limit participant count to completed plays --- resources/views/multiplayer/rooms/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/multiplayer/rooms/show.blade.php b/resources/views/multiplayer/rooms/show.blade.php index 73f92644ac0..c5210edf8a2 100644 --- a/resources/views/multiplayer/rooms/show.blade.php +++ b/resources/views/multiplayer/rooms/show.blade.php @@ -67,7 +67,7 @@ {{ osu_trans('rankings.spotlight.participants') }}
- {{ i18n_number_format($room->participant_count) }} + {{ i18n_number_format($scores->total()) }}