Fix pagination in admin release page

This commit is contained in:
DariusIII
2025-03-28 11:32:51 +01:00
parent d674ca155f
commit bfab25ee13
2 changed files with 10 additions and 8 deletions
@@ -14,13 +14,14 @@ class AdminReleasesController extends BasePageController
/**
* @throws \Exception
*/
public function index(): void
public function index(Request $request): void
{
$this->setAdminPrefs();
$meta_title = $title = 'Release List';
$releaseList = Release::getReleasesRange();
$page = $request->input('page', 1);
$releaseList = Release::getReleasesRange($page);
$this->smarty->assign('releaselist', $releaseList);
$content = $this->smarty->fetch('release-list.tpl');
+7 -6
View File
@@ -290,13 +290,14 @@ class Release extends Model
/**
* Used for admin page release-list.
*
*
* @param int $page The page number to retrieve
* @return LengthAwarePaginator|mixed
*/
public static function getReleasesRange()
public static function getReleasesRange(int $page = 1): mixed
{
$expiresAt = now()->addMinutes(config('nntmux.cache_expiry_long'));
$releases = Cache::get(md5('releasesRange'));
$cacheKey = md5('releasesRange_' . $page);
$releases = Cache::get($cacheKey);
if ($releases !== null) {
return $releases;
}
@@ -316,15 +317,15 @@ class Release extends Model
'releases.grabs',
'cp.title as parent_category',
'c.title as sub_category',
DB::raw('CONCAT(cp.title, ' > ', c.title) AS category_name'),
DB::raw('CONCAT(cp.title, \' > \', c.title) AS category_name'),
]
)
->leftJoin('categories as c', 'c.id', '=', 'releases.categories_id')
->leftJoin('root_categories as cp', 'cp.id', '=', 'c.root_categories_id')
->orderByDesc('releases.postdate')
->paginate(config('nntmux.items_per_page'));
->paginate(config('nntmux.items_per_page'), ['*'], 'page', $page);
Cache::put(md5('releasesRange'), $releases, $expiresAt);
Cache::put($cacheKey, $releases, $expiresAt);
return $releases;
}