initial commit
This commit is contained in:
45
app/Http/Controllers/Web/DashboardController.php
Normal file
45
app/Http/Controllers/Web/DashboardController.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Customer;
|
||||
use App\Models\IpPool;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request): View
|
||||
{
|
||||
$user = $request->user();
|
||||
$vmQuery = Customer::query()->forUser($user);
|
||||
|
||||
$stats = [
|
||||
'vms_total' => (clone $vmQuery)->count(),
|
||||
'vms_active' => (clone $vmQuery)->where('status', 'active')->count(),
|
||||
'vms_pending' => (clone $vmQuery)->where('status', 'pending')->count(),
|
||||
'vms_failed' => (clone $vmQuery)->where('status', 'failed')->count(),
|
||||
];
|
||||
|
||||
$pools = IpPool::query()
|
||||
->where('is_active', true)
|
||||
->orderBy('type')
|
||||
->get();
|
||||
|
||||
$recentVms = Customer::query()
|
||||
->forUser($user)
|
||||
->with(['owner', 'ipPool'])
|
||||
->latest()
|
||||
->limit(8)
|
||||
->get();
|
||||
|
||||
return view('dashboard', [
|
||||
'stats' => $stats,
|
||||
'pools' => $pools,
|
||||
'recentVms' => $recentVms,
|
||||
'usersCount' => $user->isAdmin() ? User::query()->count() : null,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user