Skip to content

Commit 99497ad

Browse files
committed
Show proper server status when viewing listing.
closes pterodactyl#308
1 parent e9762b4 commit 99497ad

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

app/Http/Controllers/Server/AjaxController.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ public function getStatus(Request $request, $uuid)
7373
return response()->json([], 404);
7474
}
7575

76+
if (! $server->installed) {
77+
return response()->json(['status' => 20]);
78+
}
79+
80+
if ($server->suspended) {
81+
return response()->json(['status' => 30]);
82+
}
83+
7684
try {
7785
$res = $server->guzzleClient()->request('GET', '/server');
7886
if ($res->getStatusCode() === 200) {

app/Http/Routes/ServerRoutes.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ class ServerRoutes
3030
{
3131
public function map(Router $router)
3232
{
33+
// Returns Server Status
34+
$router->get('/server/{server}/ajax/status', [
35+
'middleware' => ['auth', 'csrf'],
36+
'as' => 'server.ajax.status',
37+
'uses' => 'Server\AjaxController@getStatus',
38+
]);
39+
3340
$router->group([
3441
'prefix' => 'server/{server}',
3542
'middleware' => [
@@ -164,12 +171,6 @@ public function map(Router $router)
164171

165172
// Assorted AJAX Routes
166173
$router->group(['prefix' => 'ajax'], function ($server) use ($router) {
167-
// Returns Server Status
168-
$router->get('status', [
169-
'as' => 'server.ajax.status',
170-
'uses' => 'Server\AjaxController@getStatus',
171-
]);
172-
173174
// Sets the Default Connection for the Server
174175
$router->post('set-primary', [
175176
'uses' => 'Server\AjaxController@postSetPrimary',

public/themes/pterodactyl/js/frontend/serverlist.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var Status = {
2828
$('.dynamic-update').each(function (index, data) {
2929
var element = $(this);
3030
var serverShortUUID = $(this).data('server');
31+
3132
$.ajax({
3233
type: 'GET',
3334
url: Router.route('server.ajax.status', { server: serverShortUUID }),
@@ -53,8 +54,14 @@ var Status = {
5354
case 3:
5455
element.find('[data-action="status"]').html('<span class="label label-info">Stopping</span>');
5556
break;
57+
case 20:
58+
element.find('[data-action="status"]').html('<span class="label label-warning">Installing</span>');
59+
break;
60+
case 30:
61+
element.find('[data-action="status"]').html('<span class="label label-warning">Suspended</span>');
62+
break;
5663
}
57-
if (data.status !== 0) {
64+
if (data.status > 0 && data.status < 4) {
5865
var cpuMax = element.find('[data-action="cpu"]').data('cpumax');
5966
var currentCpu = data.proc.cpu.total;
6067
if (cpuMax !== 0) {

0 commit comments

Comments
 (0)