Enhance Proxmox views with improved loading states and UI updates

- Updated serverplaceholder.blade.php to enhance loading skeletons for server details.
- Added navigation breadcrumbs to statistics, subdomain, and system views for better user experience.
- Improved loading indicators for CPU, network, memory, and disk charts in statistics.blade.php.
- Refined storage.blade.php layout with section dividers and improved drive display, including bus type indicators and quota usage.
- Enhanced VNC and Xterm popups with a new header design, loading animations, and reconnect functionality.
- Added error handling for VNC and Xterm connections to inform users when unable to connect.
This commit is contained in:
2026-02-24 19:51:46 -05:00
parent af62a16354
commit 16cd5f05de
40 changed files with 1423 additions and 475 deletions

View File

@@ -13,8 +13,12 @@ class TechnitiumDns
public function __construct()
{
$this->baseUrl = 'https://dns.virtnet.bond';
$this->token = 'fab3cb86382687472062c22b37aa5789bebba1dbe556017a7234a295aa5b586d';
$this->baseUrl = rtrim((string) config('services.technitium.url', ''), '/');
$this->token = (string) config('services.technitium.token', '');
if (empty($this->baseUrl) || empty($this->token)) {
throw new \RuntimeException('Technitium DNS is not configured. Set TECHNITIUM_DNS_URL and TECHNITIUM_DNS_TOKEN in your environment.');
}
}
/**
@@ -27,9 +31,9 @@ class TechnitiumDns
$params = array_merge(['token' => $this->token], $data);
if ($method === 'get') {
return Http::get($url, $params);
return Http::timeout(10)->connectTimeout(5)->get($url, $params);
} else {
return Http::asForm()->post($url, $params);
return Http::timeout(10)->connectTimeout(5)->asForm()->post($url, $params);
}
}
@@ -135,6 +139,12 @@ class TechnitiumDns
$recordJson = $recordResponse->json();
if ($recordJson['status'] !== 'ok') {
// Clean up the zone we just created since the record failed
try {
$this->request('/zones/delete', 'post', ['zone' => $fullDomain]);
} catch (\Exception $cleanupException) {
// Ignore cleanup errors
}
return [
'success' => false,
'message' => 'Failed to add DNS record.',