feat: make noVNC and xterm.js console links open in minimal popup windows

This commit is contained in:
2026-01-25 11:54:33 -05:00
parent 59057b98e3
commit e322c0cda7
5 changed files with 163 additions and 97 deletions

View File

@@ -17,6 +17,8 @@ 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\Statistics;
use Paymenter\Extensions\Servers\Proxmox\Models\Server;
use Paymenter\Extensions\Servers\Proxmox\Proxmox;
Route::group([
'prefix' => 'servers',
@@ -39,4 +41,27 @@ Route::group([
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 (!$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 (!$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');
});