Skip to content

Commit a52d9eb

Browse files
committed
fix error display when server is installing, closes pterodactyl#424
1 parent 4f127b9 commit a52d9eb

File tree

8 files changed

+47
-45
lines changed

8 files changed

+47
-45
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ This file is a running track of new features and fixes to each version of the pa
33

44
This project follows [Semantic Versioning](http://semver.org) guidelines.
55

6+
## v0.6.0 (Courageous Carniadactylus)
7+
### Fixed
8+
* `[rc.1]` — Server deletion is fixed, caused by removed download table.
9+
* `[rc.1]` — Server status indication on front-end no longer shows `Error` when server is marked as installing or suspended.
10+
611
## v0.6.0-rc.1 (Courageous Carniadactylus)
712
### Fixed
813
* `[beta.2.1]` — Fixed a bug preventing the deletion of a server.

app/Http/Controllers/Base/IndexController.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
namespace Pterodactyl\Http\Controllers\Base;
2727

2828
use Illuminate\Http\Request;
29+
use Pterodactyl\Models\Server;
2930
use Pterodactyl\Http\Controllers\Controller;
3031

3132
class IndexController extends Controller
@@ -71,4 +72,39 @@ public function getPassword(Request $request, $length = 16)
7172

7273
return $generated;
7374
}
75+
76+
/**
77+
* Returns status of the server in a JSON response used for populating active status list.
78+
*
79+
* @param \Illuminate\Http\Request $request
80+
* @param string $uuid
81+
* @return \Illuminate\Http\JsonResponse
82+
*/
83+
public function status(Request $request, $uuid)
84+
{
85+
$server = Server::byUuid($uuid);
86+
87+
if (! $server) {
88+
return response()->json([], 404);
89+
}
90+
91+
if (! $server->installed) {
92+
return response()->json(['status' => 20]);
93+
}
94+
95+
if ($server->suspended) {
96+
return response()->json(['status' => 30]);
97+
}
98+
99+
try {
100+
$res = $server->guzzleClient()->request('GET', '/server');
101+
if ($res->getStatusCode() === 200) {
102+
return response()->json(json_decode($res->getBody()));
103+
}
104+
} catch (\Exception $e) {
105+
//
106+
}
107+
108+
return response()->json([]);
109+
}
74110
}

app/Http/Controllers/Server/AjaxController.php

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -50,41 +50,6 @@ class AjaxController extends Controller
5050
*/
5151
protected $directory;
5252

53-
/**
54-
* Returns true or false depending on the power status of the requested server.
55-
*
56-
* @param \Illuminate\Http\Request $request
57-
* @param string $uuid
58-
* @return \Illuminate\Http\JsonResponse
59-
*/
60-
public function getStatus(Request $request, $uuid)
61-
{
62-
$server = Models\Server::byUuid($uuid);
63-
64-
if (! $server) {
65-
return response()->json([], 404);
66-
}
67-
68-
if (! $server->installed) {
69-
return response()->json(['status' => 20]);
70-
}
71-
72-
if ($server->suspended) {
73-
return response()->json(['status' => 30]);
74-
}
75-
76-
try {
77-
$res = $server->guzzleClient()->request('GET', '/server');
78-
if ($res->getStatusCode() === 200) {
79-
return response()->json(json_decode($res->getBody()));
80-
}
81-
} catch (RequestException $e) {
82-
//
83-
}
84-
85-
return response()->json([]);
86-
}
87-
8853
/**
8954
* Returns a listing of files in a given directory for a server.
9055
*

public/js/laroute.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
$.ajax({
3232
type: 'GET',
33-
url: Router.route('server.ajax.status', { server: serverShortUUID }),
33+
url: Router.route('index.status', { server: serverShortUUID }),
3434
timeout: 5000,
3535
headers: {
3636
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content'),

resources/themes/pterodactyl/base/index.blade.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
<th class="text-center">@lang('strings.status')</th>
6363
</tr>
6464
@foreach($servers as $server)
65-
<tr class=" {{$server->suspended ?: 'dynamic-update' }}" data-server="{{ $server->uuidShort }}">
65+
<tr class="dynamic-update" data-server="{{ $server->uuidShort }}">
6666
<td @if(! empty($server->description)) rowspan="2" @endif><code>{{ $server->uuidShort }}</code></td>
6767
<td><a href="{{ route('server.index', $server->uuidShort) }}">{{ $server->name }}</a></td>
6868
<td>{{ $server->node->name }}</td>
@@ -79,11 +79,7 @@
7979
@endif
8080
</td>
8181
<td class="text-center" data-action="status">
82-
@if($server->suspended)
83-
<span class="label label-warning">@lang('strings.suspended')</span>
84-
@else
85-
<span class="label label-default"><i class="fa fa-refresh fa-fw fa-spin"></i></span>
86-
@endif
82+
<span class="label label-default"><i class="fa fa-refresh fa-fw fa-spin"></i></span>
8783
</td>
8884
</tr>
8985
@if (! empty($server->description))

routes/base.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
* SOFTWARE.
2323
*/
2424
Route::get('/', 'IndexController@getIndex')->name('index');
25+
Route::get('/status/{server}', 'IndexController@status')->name('index.status');
26+
2527
Route::get('/index', function () {
2628
redirect()->route('index');
2729
});

routes/server.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,6 @@
110110
|
111111
*/
112112
Route::group(['prefix' => 'ajax'], function () {
113-
Route::get('/status', 'AjaxController@getStatus')->name('server.ajax.status');
114-
115113
Route::post('/set-primary', 'AjaxController@postSetPrimary')->name('server.ajax.set-primary');
116114
Route::post('/settings/reset-database-password', 'AjaxController@postResetDatabasePassword')->name('server.ajax.reset-database-password');
117115
});

0 commit comments

Comments
 (0)