diff --git a/app/Http/Controllers/Server/AjaxController.php b/app/Http/Controllers/Server/AjaxController.php index d18aee7bf..8f3736da7 100644 --- a/app/Http/Controllers/Server/AjaxController.php +++ b/app/Http/Controllers/Server/AjaxController.php @@ -73,6 +73,14 @@ class AjaxController extends Controller return response()->json([], 404); } + if (! $server->installed) { + return response()->json(['status' => 20]); + } + + if ($server->suspended) { + return response()->json(['status' => 30]); + } + try { $res = $server->guzzleClient()->request('GET', '/server'); if ($res->getStatusCode() === 200) { diff --git a/app/Http/Routes/ServerRoutes.php b/app/Http/Routes/ServerRoutes.php index 284822db4..36c95827b 100644 --- a/app/Http/Routes/ServerRoutes.php +++ b/app/Http/Routes/ServerRoutes.php @@ -30,6 +30,13 @@ class ServerRoutes { public function map(Router $router) { + // Returns Server Status + $router->get('/server/{server}/ajax/status', [ + 'middleware' => ['auth', 'csrf'], + 'as' => 'server.ajax.status', + 'uses' => 'Server\AjaxController@getStatus', + ]); + $router->group([ 'prefix' => 'server/{server}', 'middleware' => [ @@ -164,12 +171,6 @@ class ServerRoutes // Assorted AJAX Routes $router->group(['prefix' => 'ajax'], function ($server) use ($router) { - // Returns Server Status - $router->get('status', [ - 'as' => 'server.ajax.status', - 'uses' => 'Server\AjaxController@getStatus', - ]); - // Sets the Default Connection for the Server $router->post('set-primary', [ 'uses' => 'Server\AjaxController@postSetPrimary', diff --git a/public/themes/pterodactyl/js/frontend/serverlist.js b/public/themes/pterodactyl/js/frontend/serverlist.js index 605c33d2f..fc2ae0aff 100644 --- a/public/themes/pterodactyl/js/frontend/serverlist.js +++ b/public/themes/pterodactyl/js/frontend/serverlist.js @@ -28,6 +28,7 @@ var Status = { $('.dynamic-update').each(function (index, data) { var element = $(this); var serverShortUUID = $(this).data('server'); + $.ajax({ type: 'GET', url: Router.route('server.ajax.status', { server: serverShortUUID }), @@ -53,8 +54,14 @@ var Status = { case 3: element.find('[data-action="status"]').html('Stopping'); break; + case 20: + element.find('[data-action="status"]').html('Installing'); + break; + case 30: + element.find('[data-action="status"]').html('Suspended'); + break; } - if (data.status !== 0) { + if (data.status > 0 && data.status < 4) { var cpuMax = element.find('[data-action="cpu"]').data('cpumax'); var currentCpu = data.proc.cpu.total; if (cpuMax !== 0) {