Compare commits
2 commits
main
...
Overview_r
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8a71cdf568 | ||
![]() |
571b035e8b |
|
@ -138,11 +138,16 @@ class OverViewController extends Controller
|
||||||
array_push($pteroNodeIds, $pteroNode['attributes']['id']);
|
array_push($pteroNodeIds, $pteroNode['attributes']['id']);
|
||||||
}
|
}
|
||||||
$nodes = collect();
|
$nodes = collect();
|
||||||
foreach ($DBnodes = Node::query()->get() as $DBnode) { //gets all node information and prepares the structure
|
|
||||||
|
//gets all node information and prepares the structure
|
||||||
|
foreach ($DBnodes = Node::query()->get() as $DBnode) {
|
||||||
$nodeId = $DBnode['id'];
|
$nodeId = $DBnode['id'];
|
||||||
|
|
||||||
|
//Check if node exists on pterodactyl too, if not, skip
|
||||||
if (!in_array($nodeId, $pteroNodeIds)) {
|
if (!in_array($nodeId, $pteroNodeIds)) {
|
||||||
continue;
|
continue;
|
||||||
} //Check if node exists on pterodactyl too, if not, skip
|
}
|
||||||
|
|
||||||
$nodes->put($nodeId, collect());
|
$nodes->put($nodeId, collect());
|
||||||
$nodes[$nodeId]->name = $DBnode['name'];
|
$nodes[$nodeId]->name = $DBnode['name'];
|
||||||
$pteroNode = Pterodactyl::getNode($nodeId);
|
$pteroNode = Pterodactyl::getNode($nodeId);
|
||||||
|
@ -156,11 +161,11 @@ class OverViewController extends Controller
|
||||||
}
|
}
|
||||||
$counters['totalUsagePercent'] = ($DBnodes->count()) ? round($counters['totalUsagePercent'] / $DBnodes->count(), 2) : 0;
|
$counters['totalUsagePercent'] = ($DBnodes->count()) ? round($counters['totalUsagePercent'] / $DBnodes->count(), 2) : 0;
|
||||||
|
|
||||||
foreach (Pterodactyl::getServers() as $server) { //gets all servers from Pterodactyl and calculates total of credit usage for each node separately + total
|
// Calculate server and earnings information
|
||||||
|
foreach (Pterodactyl::getServers() as $server) {
|
||||||
$nodeId = $server['attributes']['node'];
|
$nodeId = $server['attributes']['node'];
|
||||||
|
if ($CPServer = Server::query()->where('pterodactyl_id', $server['attributes']['id'])->with('product')->first()) {
|
||||||
if ($CPServer = Server::query()->where('pterodactyl_id', $server['attributes']['id'])->first()) {
|
$price = $CPServer->product->price;
|
||||||
$price = Product::query()->where('id', $CPServer->product_id)->first()->price;
|
|
||||||
if (!$CPServer->suspended) {
|
if (!$CPServer->suspended) {
|
||||||
$counters['earnings']->active += $price;
|
$counters['earnings']->active += $price;
|
||||||
$counters['servers']->active++;
|
$counters['servers']->active++;
|
||||||
|
@ -174,31 +179,7 @@ class OverViewController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Get latest tickets
|
$tickets = $this->getLatestTickets();
|
||||||
$tickets = collect();
|
|
||||||
foreach (Ticket::query()->latest()->take(5)->get() as $ticket) {
|
|
||||||
$tickets->put($ticket->ticket_id, collect());
|
|
||||||
$tickets[$ticket->ticket_id]->title = $ticket->title;
|
|
||||||
$user = User::query()->where('id', $ticket->user_id)->first();
|
|
||||||
$tickets[$ticket->ticket_id]->user_id = $user->id;
|
|
||||||
$tickets[$ticket->ticket_id]->user = $user->name;
|
|
||||||
$tickets[$ticket->ticket_id]->status = $ticket->status;
|
|
||||||
$tickets[$ticket->ticket_id]->last_updated = $ticket->updated_at->diffForHumans();
|
|
||||||
switch ($ticket->status) {
|
|
||||||
case 'Open':
|
|
||||||
$tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-success';
|
|
||||||
break;
|
|
||||||
case 'Closed':
|
|
||||||
$tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-danger';
|
|
||||||
break;
|
|
||||||
case 'Answered':
|
|
||||||
$tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-info';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-warning';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('admin.overview.index', [
|
return view('admin.overview.index', [
|
||||||
'counters' => $counters,
|
'counters' => $counters,
|
||||||
|
@ -220,4 +201,29 @@ class OverViewController extends Controller
|
||||||
|
|
||||||
return redirect()->back()->with('success', __('Pterodactyl synced'));
|
return redirect()->back()->with('success', __('Pterodactyl synced'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getLatestTickets()
|
||||||
|
{
|
||||||
|
$tickets = Ticket::query()->with('user')->orderBy('updated_at', 'desc')->limit(5)->get();
|
||||||
|
foreach ($tickets as $ticket) {
|
||||||
|
$ticket->user = $ticket->user->name;
|
||||||
|
$ticket->last_updated = $ticket->updated_at->diffForHumans();
|
||||||
|
switch ($ticket->status) {
|
||||||
|
case 'Open':
|
||||||
|
$ticket->statusBadgeColor = 'badge-success';
|
||||||
|
break;
|
||||||
|
case 'Closed':
|
||||||
|
$ticket->statusBadgeColor = 'badge-danger';
|
||||||
|
break;
|
||||||
|
case 'Answered':
|
||||||
|
$ticket->statusBadgeColor = 'badge-info';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$ticket->statusBadgeColor = 'badge-warning';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $tickets;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue