mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-31 00:14:46 +02:00

# Conflicts: # app/Filament/Resources/NodeResource/RelationManagers/AllocationsRelationManager.php # app/Filament/Resources/ServerResource/Pages/CreateServer.php # app/Filament/Resources/ServerResource/Pages/EditServer.php # app/Filament/Resources/ServerResource/RelationManagers/AllocationsRelationManager.php # app/Filament/Resources/UserResource/Pages/EditProfile.php # app/Models/Node.php # app/Models/Objects/DeploymentObject.php # app/Services/Allocations/AssignmentService.php # app/Services/Servers/ServerCreationService.php # app/Services/Servers/TransferServerService.php # pint.json
75 lines
1.9 KiB
PHP
75 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin\Nodes;
|
|
|
|
use Illuminate\View\View;
|
|
use App\Models\Node;
|
|
use Illuminate\Support\Collection;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Traits\Controllers\JavascriptInjection;
|
|
use App\Services\Helpers\SoftwareVersionService;
|
|
|
|
class NodeViewController extends Controller
|
|
{
|
|
use JavascriptInjection;
|
|
|
|
public const THRESHOLD_PERCENTAGE_LOW = 75;
|
|
|
|
public const THRESHOLD_PERCENTAGE_MEDIUM = 90;
|
|
|
|
/**
|
|
* NodeViewController constructor.
|
|
*/
|
|
public function __construct(
|
|
private SoftwareVersionService $versionService,
|
|
) {
|
|
}
|
|
|
|
/**
|
|
* Returns index view for a specific node on the system.
|
|
*/
|
|
public function index(Node $node): View
|
|
{
|
|
$node->loadCount('servers');
|
|
|
|
return view('admin.nodes.view.index', [
|
|
'node' => $node,
|
|
'version' => $this->versionService,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Returns the settings page for a specific node.
|
|
*/
|
|
public function settings(Node $node): View
|
|
{
|
|
return view('admin.nodes.view.settings', [
|
|
'node' => $node,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Return the node configuration page for a specific node.
|
|
*/
|
|
public function configuration(Node $node): View
|
|
{
|
|
return view('admin.nodes.view.configuration', compact('node'));
|
|
}
|
|
|
|
/**
|
|
* Return a listing of servers that exist for this specific node.
|
|
*/
|
|
public function servers(Node $node): View
|
|
{
|
|
$this->plainInject([
|
|
'node' => Collection::wrap($node->makeVisible(['daemon_token_id', 'daemon_token']))
|
|
->only(['scheme', 'fqdn', 'daemon_listen', 'daemon_token_id', 'daemon_token']),
|
|
]);
|
|
|
|
return view('admin.nodes.view.servers', [
|
|
'node' => $node,
|
|
'servers' => $node->servers()->with(['user', 'egg'])->paginate(25),
|
|
]);
|
|
}
|
|
}
|