2025-06-03 14:33:43 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Livewire;
|
|
|
|
|
|
2025-11-21 16:48:20 -05:00
|
|
|
use App\Filament\Server\Pages\Console;
|
2025-06-03 14:33:43 +02:00
|
|
|
use App\Models\Server;
|
2025-11-21 16:48:20 -05:00
|
|
|
use Filament\Support\Facades\FilamentView;
|
2025-06-03 14:33:43 +02:00
|
|
|
use Illuminate\View\View;
|
|
|
|
|
use Livewire\Component;
|
|
|
|
|
|
|
|
|
|
class ServerEntry extends Component
|
|
|
|
|
{
|
|
|
|
|
public Server $server;
|
|
|
|
|
|
|
|
|
|
public function render(): View
|
|
|
|
|
{
|
2025-11-21 16:48:20 -05:00
|
|
|
return view('livewire.server-entry', ['component' => $this]);
|
2025-06-03 14:33:43 +02:00
|
|
|
}
|
|
|
|
|
|
2025-11-21 16:48:20 -05:00
|
|
|
public function placeholder(): View
|
2025-06-03 14:33:43 +02:00
|
|
|
{
|
2025-11-21 16:48:20 -05:00
|
|
|
return view('livewire.server-entry-placeholder', ['server' => $this->server, 'component' => $this]);
|
|
|
|
|
}
|
2025-06-03 14:33:43 +02:00
|
|
|
|
2025-11-21 16:48:20 -05:00
|
|
|
public function redirectUrl(?bool $shouldOpenUrlInNewTab = false): string
|
|
|
|
|
{
|
|
|
|
|
$url = Console::getUrl(panel: 'server', tenant: $this->server);
|
|
|
|
|
$target = $shouldOpenUrlInNewTab ? '_blank' : '_self';
|
2025-11-03 12:32:11 -05:00
|
|
|
|
2025-11-21 16:48:20 -05:00
|
|
|
if (!$shouldOpenUrlInNewTab && FilamentView::hasSpaMode($url)) {
|
|
|
|
|
return sprintf("Livewire.navigate('%s')", $url);
|
|
|
|
|
}
|
2025-06-03 14:33:43 +02:00
|
|
|
|
2025-11-21 16:48:20 -05:00
|
|
|
return sprintf("window.open('%s', '%s')", $url, $target);
|
2025-06-03 14:33:43 +02:00
|
|
|
}
|
|
|
|
|
}
|