view->make('admin.servers.view.index', compact('server')); } /** * Returns the server details page. */ public function details(Request $request, Server $server): View { return $this->view->make('admin.servers.view.details', compact('server')); } /** * Returns a view of server build settings. */ public function build(Request $request, Server $server): View { $allocations = $server->node->allocations->toBase(); return $this->view->make('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'), ]); } /** * Returns the server startup management page. * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function startup(Request $request, Server $server): View { $nests = Nest::with('eggs.variables')->get(); $variables = $this->environmentService->handle($server); $this->plainInject([ 'server' => $server, 'server_variables' => $variables, 'nests' => $nests->map(function (Nest $item) { return array_merge($item->toArray(), [ 'eggs' => $item->eggs->keyBy('id')->toArray(), ]); })->keyBy('id'), ]); return $this->view->make('admin.servers.view.startup', compact('server', 'nests')); } /** * Returns all the databases that exist for the server. */ public function database(Request $request, Server $server): View { return $this->view->make('admin.servers.view.database', [ 'hosts' => $this->databaseHostRepository->all(), 'server' => $server, ]); } /** * Returns all the mounts that exist for the server. */ public function mounts(Request $request, Server $server): View { $server->load('mounts'); return $this->view->make('admin.servers.view.mounts', [ 'mounts' => $this->mountRepository->getMountListForServer($server), 'server' => $server, ]); } /** * Returns the base server management page, or an exception if the server * is in a state that cannot be recovered from. * * @throws \Pterodactyl\Exceptions\DisplayException */ public function manage(Request $request, Server $server): View { if ($server->status === Server::STATUS_INSTALL_FAILED) { throw new DisplayException('This server is in a failed install state and cannot be recovered. Please delete and re-create the server.'); } // Check if the panel doesn't have at least 2 nodes configured. $nodes = $this->nodeRepository->all(); $canTransfer = false; if (count($nodes) >= 2) { $canTransfer = true; } JavaScript::put([ 'nodeData' => $this->nodeRepository->getNodesForServerCreation(), ]); return $this->view->make('admin.servers.view.manage', [ 'server' => $server, 'locations' => $this->locationRepository->all(), 'canTransfer' => $canTransfer, ]); } /** * Returns the server deletion page. */ public function delete(Request $request, Server $server): View { return $this->view->make('admin.servers.view.delete', compact('server')); } }