Introduced a new Livewire component for statistics redirection and added a corresponding route to enhance navigation within the Proxmox extension. This update lays the groundwork for future statistics-related features.
74 lines
3.5 KiB
PHP
74 lines
3.5 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Backups\Index as BackupsIndex;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\BootOrder;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\CloudInit;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Display;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Index;
|
|
use Paymenter\Extensions\Servers\Proxmox\Http\Controllers\LiveTrafficController;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Firewall;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Network;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Overview;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Storage;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Subdomain;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\System;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\VNC;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\XTerm;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\Help;
|
|
use Paymenter\Extensions\Servers\Proxmox\Livewire\StatisticsRedirect;
|
|
use Paymenter\Extensions\Servers\Proxmox\Models\Server;
|
|
use Paymenter\Extensions\Servers\Proxmox\Proxmox;
|
|
|
|
Route::group([
|
|
'prefix' => 'servers',
|
|
'as' => 'proxmox.',
|
|
'middleware' => ['web', 'auth'],
|
|
], function () {
|
|
Route::get('/', Index::class)->name('index');
|
|
Route::get('{server}', Overview::class)->name('server.overview');
|
|
Route::get('{server}/statistics', StatisticsRedirect::class)->name('server.statistics');
|
|
Route::get('{server}/firewall', Firewall::class)->name('server.firewall');
|
|
Route::get('{server}/network', Network::class)->name('server.network');
|
|
Route::get('{server}/live-traffic', LiveTrafficController::class)->name('server.live-traffic');
|
|
Route::get('{server}/boot-order', BootOrder::class)->name('server.boot-order');
|
|
Route::get('{server}/system', System::class)->name('server.system');
|
|
Route::get('{server}/display', Display::class)->name('server.display');
|
|
Route::get('{server}/cloud-init', CloudInit::class)->name('server.cloud-init');
|
|
Route::get('{server}/subdomain', Subdomain::class)->name('server.subdomain');
|
|
Route::get('{server}/backups', BackupsIndex::class)->name('server.backups');
|
|
Route::get('{server}/storage', Storage::class)->name('server.storage');
|
|
Route::get('{server}/vnc', VNC::class)->name('server.vnc');
|
|
Route::get('{server}/xterm', XTerm::class)->name('server.xterm');
|
|
Route::get('{server}/help', Help::class)->name('server.help');
|
|
|
|
// Popup console routes (minimal layout for popup windows)
|
|
Route::get('{server}/vnc-popup', function (Server $server) {
|
|
if ((int) $server->user_id !== (int) auth()->id()) {
|
|
abort(403);
|
|
}
|
|
if (!$server->node?->vnc_enabled) {
|
|
abort(403, 'VNC is not enabled on this server node.');
|
|
}
|
|
$proxmox = new Proxmox;
|
|
return view('proxmox::vnc-popup', [
|
|
'server' => $server,
|
|
'vnc' => $proxmox->vnc($server),
|
|
]);
|
|
})->name('server.vnc-popup');
|
|
|
|
Route::get('{server}/xterm-popup', function (Server $server) {
|
|
if ((int) $server->user_id !== (int) auth()->id()) {
|
|
abort(403);
|
|
}
|
|
if (!$server->node?->vnc_enabled) {
|
|
abort(403, 'Console access is not enabled on this server node.');
|
|
}
|
|
$proxmox = new Proxmox;
|
|
return view('proxmox::xterm-popup', [
|
|
'server' => $server,
|
|
'xterm' => $proxmox->xterm($server),
|
|
]);
|
|
})->name('server.xterm-popup');
|
|
});
|