From df0d37bb81668ae86096e08af7920fef587f98e1 Mon Sep 17 00:00:00 2001 From: ok236449 Date: Wed, 24 Aug 2022 17:52:51 +0200 Subject: [PATCH] Check for resources when upgrading server --- app/Http/Controllers/ServerController.php | 13 ++++++++++++- resources/views/servers/settings.blade.php | 4 ++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index 20deffca..5324cbd1 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -241,6 +241,9 @@ class ServerController extends Controller $serverRelationships = $serverAttributes['relationships']; $serverLocationAttributes = $serverRelationships['location']['attributes']; + //Get current product + $currentProduct = Product::where('id', $server->product_id)->first(); + //Set server infos $server->location = $serverLocationAttributes['long'] ? $serverLocationAttributes['long'] : @@ -249,11 +252,19 @@ class ServerController extends Controller $server->node = $serverRelationships['node']['attributes']['name']; $server->name = $serverAttributes['name']; $server->egg = $serverRelationships['egg']['attributes']['name']; - $products = Product::orderBy("created_at")->get(); + + $pteroNode = Pterodactyl::getNode($serverRelationships['node']['attributes']['id']); + + $products = Product::orderBy("created_at") + ->whereHas('nodes', function (Builder $builder) use ($serverRelationships) { //Only show products for that node + $builder->where('id', '=', $serverRelationships['node']['attributes']['id']); + }) + ->get(); // Set the each product eggs array to just contain the eggs name foreach ($products as $product) { $product->eggs = $product->eggs->pluck('name')->toArray(); + if($product->memory-$currentProduct->memory>($pteroNode['memory']*($pteroNode['memory_overallocate']+100)/100)-$pteroNode['allocated_resources']['memory']||$product->disk-$currentProduct->disk>($pteroNode['disk']*($pteroNode['disk_overallocate']+100)/100)-$pteroNode['allocated_resources']['disk']) $product->doesNotFit = true; } return view('servers.settings')->with([ diff --git a/resources/views/servers/settings.blade.php b/resources/views/servers/settings.blade.php index e320533c..5c8513aa 100644 --- a/resources/views/servers/settings.blade.php +++ b/resources/views/servers/settings.blade.php @@ -255,8 +255,8 @@ @foreach($products as $product) @if(in_array($server->egg, $product->eggs) && $product->id != $server->product->id && $product->disabled == false) - + @endif @endforeach