53 lines
1.2 KiB
PHP
53 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Paymenter\Extensions\Others\UptimeLab\Livewire\Uptime;
|
|
|
|
use Livewire\Component;
|
|
use Paymenter\Extensions\Others\UptimeLab\Models\UptimeServer;
|
|
use Paymenter\Extensions\Others\UptimeLab\Services\UptimeMonitoringService;
|
|
|
|
class Index extends Component
|
|
{
|
|
public $servers = [];
|
|
public $isRefreshing = false;
|
|
|
|
public function mount()
|
|
{
|
|
$this->loadServers();
|
|
}
|
|
|
|
public function loadServers()
|
|
{
|
|
$this->servers = UptimeServer::where('is_active', true)
|
|
->orderBy('name')
|
|
->get();
|
|
}
|
|
|
|
public function refreshStatus()
|
|
{
|
|
$this->isRefreshing = true;
|
|
|
|
try {
|
|
$monitoringService = new UptimeMonitoringService();
|
|
$monitoringService->checkAllServers();
|
|
|
|
$this->loadServers();
|
|
|
|
$this->dispatch('status-refreshed');
|
|
} catch (\Exception $e) {
|
|
// Handle error
|
|
} finally {
|
|
$this->isRefreshing = false;
|
|
}
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('uptime-lab::index', [
|
|
'servers' => $this->servers,
|
|
])->layoutData([
|
|
'sidebar' => true,
|
|
]);
|
|
}
|
|
}
|