Move server view management parts to new controller and clean up code

This commit is contained in:
Dane Everitt 2019-11-24 12:50:16 -08:00
parent 8f0044575f
commit c17f9ba8a9
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
10 changed files with 309 additions and 157 deletions

View file

@ -9,7 +9,6 @@
namespace Pterodactyl\Http\Controllers\Admin;
use Javascript;
use Illuminate\Http\Request;
use Pterodactyl\Models\User;
use Pterodactyl\Models\Server;
@ -171,151 +170,6 @@ class ServersController extends Controller
$this->suspensionService = $suspensionService;
}
/**
* Display the index page with all servers currently on the system.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\View\View
*/
public function index(Request $request)
{
return view('admin.servers.index', [
'servers' => $this->repository->setSearchTerm($request->input('query'))->getAllServers(
$this->config->get('pterodactyl.paginate.admin.servers')
),
]);
}
/**
* Display the index when viewing a specific server.
*
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\View\View
*/
public function viewIndex(Server $server)
{
return view('admin.servers.view.index', ['server' => $server]);
}
/**
* Display the details page when viewing a specific server.
*
* @param int $server
* @return \Illuminate\View\View
*
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function viewDetails($server)
{
return view('admin.servers.view.details', [
'server' => $this->repository->findFirstWhere([
['id', '=', $server],
['installed', '=', 1],
]),
]);
}
/**
* Display the build details page when viewing a specific server.
*
* @param int $server
* @return \Illuminate\View\View
*
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function viewBuild($server)
{
$server = $this->repository->findFirstWhere([
['id', '=', $server],
['installed', '=', 1],
]);
$allocations = $this->allocationRepository->getAllocationsForNode($server->node_id);
return view('admin.servers.view.build', [
'server' => $server,
'assigned' => $allocations->where('server_id', $server->id)->sortBy('port')->sortBy('ip'),
'unassigned' => $allocations->where('server_id', null)->sortBy('port')->sortBy('ip'),
]);
}
/**
* Display startup configuration page for a server.
*
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\View\View
*
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function viewStartup(Server $server)
{
$parameters = $this->repository->getVariablesWithValues($server->id, true);
if (! $parameters->server->installed) {
abort(404);
}
$nests = $this->nestRepository->getWithEggs();
Javascript::put([
'server' => $server,
'nests' => $nests->map(function ($item) {
return array_merge($item->toArray(), [
'eggs' => $item->eggs->keyBy('id')->toArray(),
]);
})->keyBy('id'),
'server_variables' => $parameters->data,
]);
return view('admin.servers.view.startup', [
'server' => $parameters->server,
'nests' => $nests,
]);
}
/**
* Display the database management page for a specific server.
*
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\View\View
*/
public function viewDatabase(Server $server)
{
$this->repository->loadDatabaseRelations($server);
return view('admin.servers.view.database', [
'hosts' => $this->databaseHostRepository->all(),
'server' => $server,
]);
}
/**
* Display the management page when viewing a specific server.
*
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\View\View
*
* @throws \Pterodactyl\Exceptions\DisplayException
*/
public function viewManage(Server $server)
{
if ($server->installed > 1) {
throw new DisplayException('This server is in a failed installation state and must be deleted and recreated.');
}
return view('admin.servers.view.manage', ['server' => $server]);
}
/**
* Display the deletion page for a server.
*
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\View\View
*/
public function viewDelete(Server $server)
{
return view('admin.servers.view.delete', ['server' => $server]);
}
/**
* Update the details for a server.
*