Merge pull request #3173 from pixelfed/staging

Fix custom emoji admin dashboard bug
This commit is contained in:
daniel 2022-01-21 03:20:00 -07:00 committed by GitHub
commit 18c49dd50c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -369,9 +369,15 @@ class AdminController extends Controller
return redirect(route('admin.custom-emoji')); return redirect(route('admin.custom-emoji'));
} }
$emojis = CustomEmoji::when($sort, function($query, $sort) use($request) { $pg = config('database.default') == 'pgsql';
$emojis = CustomEmoji::when($sort, function($query, $sort) use($request, $pg) {
if($sort == 'all') { if($sort == 'all') {
if($pg) {
return $query->latest();
} else {
return $query->groupBy('shortcode')->latest(); return $query->groupBy('shortcode')->latest();
}
} else if($sort == 'local') { } else if($sort == 'local') {
return $query->latest()->where('domain', '=', config('pixelfed.domain.app')); return $query->latest()->where('domain', '=', config('pixelfed.domain.app'));
} else if($sort == 'remote') { } else if($sort == 'remote') {
@ -394,13 +400,20 @@ class AdminController extends Controller
->simplePaginate(10) ->simplePaginate(10)
->withQueryString(); ->withQueryString();
$stats = Cache::remember('pf:admin:custom_emoji:stats', 43200, function() { $stats = Cache::remember('pf:admin:custom_emoji:stats', 43200, function() use($pg) {
return [ $res = [
'total' => CustomEmoji::count(), 'total' => CustomEmoji::count(),
'active' => CustomEmoji::whereDisabled(false)->count(), 'active' => CustomEmoji::whereDisabled(false)->count(),
'remote' => CustomEmoji::where('domain', '!=', config('pixelfed.domain.app'))->count(), 'remote' => CustomEmoji::where('domain', '!=', config('pixelfed.domain.app'))->count(),
'duplicate' => CustomEmoji::groupBy('shortcode')->havingRaw('count(*) > 1')->count()
]; ];
if($pg) {
$res['duplicate'] = CustomEmoji::select('shortcode')->groupBy('shortcode')->havingRaw('count(*) > 1')->count();
} else {
$res['duplicate'] = CustomEmoji::groupBy('shortcode')->havingRaw('count(*) > 1')->count();
}
return $res;
}); });
return view('admin.custom-emoji.home', compact('emojis', 'sort', 'stats')); return view('admin.custom-emoji.home', compact('emojis', 'sort', 'stats'));