fix: 🐛 admin/users sort
This commit is contained in:
parent
459069c5ee
commit
17ab473576
|
@ -7,7 +7,6 @@ use App\Events\UserUpdateCreditsEvent;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Notifications\DynamicNotification;
|
use App\Notifications\DynamicNotification;
|
||||||
use App\Traits\DatatablesSortable;
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Contracts\Foundation\Application;
|
use Illuminate\Contracts\Foundation\Application;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
@ -27,7 +26,6 @@ use Spatie\QueryBuilder\QueryBuilder;
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
use DatatablesSortable;
|
|
||||||
|
|
||||||
private Pterodactyl $pterodactyl;
|
private Pterodactyl $pterodactyl;
|
||||||
|
|
||||||
|
@ -275,14 +273,9 @@ class UserController extends Controller
|
||||||
*/
|
*/
|
||||||
public function dataTable(Request $request)
|
public function dataTable(Request $request)
|
||||||
{
|
{
|
||||||
$query = User::withCount(['servers'])->with('discordUser');
|
$query = User::with('discordUser')->withCount('servers');
|
||||||
// manually count referrals in user_referrals table
|
// manually count referrals in user_referrals table
|
||||||
$query->addSelect(DB::raw('(SELECT COUNT(*) FROM user_referrals WHERE user_referrals.referral_id = users.id) as referrals_count'));
|
$query->selectRaw('users.*, (SELECT COUNT(*) FROM user_referrals WHERE user_referrals.referral_id = users.id) as referrals_count');
|
||||||
|
|
||||||
|
|
||||||
if ($request->has('order')) {
|
|
||||||
$query = $this->sortByColumn($request->input('order'), $request->input('columns'), $query);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return datatables($query)
|
return datatables($query)
|
||||||
|
@ -295,21 +288,9 @@ class UserController extends Controller
|
||||||
->addColumn('verified', function (User $user) {
|
->addColumn('verified', function (User $user) {
|
||||||
return $user->getVerifiedStatus();
|
return $user->getVerifiedStatus();
|
||||||
})
|
})
|
||||||
->addColumn('servers_count', function (User $user) {
|
|
||||||
return $user->servers_count;
|
|
||||||
})
|
|
||||||
->addColumn('referrals_count', function (User $user) {
|
|
||||||
return $user->referrals_count;
|
|
||||||
})
|
|
||||||
->addColumn('discordId', function (User $user) {
|
->addColumn('discordId', function (User $user) {
|
||||||
return $user->discordUser ? $user->discordUser->id : '';
|
return $user->discordUser ? $user->discordUser->id : '';
|
||||||
})
|
})
|
||||||
->addColumn('last_seen', function (User $user) {
|
|
||||||
return [
|
|
||||||
'display' => $user->last_seen ? $user->last_seen->diffForHumans() : __('Never'),
|
|
||||||
'raw' => $user->last_seen ? strtotime($user->last_seen) : '',
|
|
||||||
];
|
|
||||||
})
|
|
||||||
->addColumn('actions', function (User $user) {
|
->addColumn('actions', function (User $user) {
|
||||||
$suspendColor = $user->isSuspended() ? 'btn-success' : 'btn-warning';
|
$suspendColor = $user->isSuspended() ? 'btn-success' : 'btn-warning';
|
||||||
$suspendIcon = $user->isSuspended() ? 'fa-play-circle' : 'fa-pause-circle';
|
$suspendIcon = $user->isSuspended() ? 'fa-play-circle' : 'fa-pause-circle';
|
||||||
|
@ -349,13 +330,13 @@ class UserController extends Controller
|
||||||
|
|
||||||
return '<span class="badge ' . $badgeColor . '">' . $user->role . '</span>';
|
return '<span class="badge ' . $badgeColor . '">' . $user->role . '</span>';
|
||||||
})
|
})
|
||||||
|
->editColumn('last_seen', function (User $user) {
|
||||||
|
return $user->last_seen ? $user->last_seen->diffForHumans() : __('Never');
|
||||||
|
})
|
||||||
->editColumn('name', function (User $user) {
|
->editColumn('name', function (User $user) {
|
||||||
return '<a class="text-info" target="_blank" href="' . config('SETTINGS::SYSTEM:PTERODACTYL:URL') . '/admin/users/view/' . $user->pterodactyl_id . '">' . strip_tags($user->name) . '</a>';
|
return '<a class="text-info" target="_blank" href="' . config('SETTINGS::SYSTEM:PTERODACTYL:URL') . '/admin/users/view/' . $user->pterodactyl_id . '">' . strip_tags($user->name) . '</a>';
|
||||||
})
|
})
|
||||||
->orderColumn('last_seen', function ($query) {
|
->rawColumns(['avatar', 'name', 'credits', 'role', 'usage', 'actions'])
|
||||||
$query->orderBy('last_seen', "desc");
|
->make();
|
||||||
})
|
|
||||||
->rawColumns(['avatar', 'name', 'credits', 'role', 'usage', 'referrals', 'actions', 'last_seen'])
|
|
||||||
->make(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue