VirtViewer's installer folder name includes the version number (e.g. "VirtViewer v11.0-256"), so the previous hardcoded path never matched a real install. Now scans Program Files for any VirtViewer* folder, and adds a Settings dialog (Windows only) to pick the remote-viewer.exe path manually as a fallback.
69 lines
2.3 KiB
HTML
69 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="Content-Security-Policy"
|
|
content="default-src 'self'; script-src 'self'; style-src 'self'">
|
|
<title>Proxmox SPICE Client — VMs</title>
|
|
<link rel="stylesheet" href="styles.css">
|
|
</head>
|
|
<body class="vms-page">
|
|
<div class="vms-wrapper">
|
|
|
|
<div class="page-header">
|
|
<h2>Virtuelle Maschinen</h2>
|
|
<div class="header-actions">
|
|
<button id="settingsBtn" class="btn-secondary hidden" title="Viewer-Pfad einstellen">⚙ Einstellungen</button>
|
|
<button id="refreshBtn" class="btn-secondary" title="Liste aktualisieren">↻ Aktualisieren</button>
|
|
<button id="logoutBtn" class="btn-secondary">Abmelden</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Loading -->
|
|
<div id="loadingState" class="loading-state">
|
|
<div class="spinner"></div>
|
|
<p>VMs werden geladen…</p>
|
|
</div>
|
|
|
|
<!-- VM cards -->
|
|
<div id="vmList" class="vm-list hidden"></div>
|
|
|
|
<!-- No VMs found -->
|
|
<div id="emptyState" class="empty-state hidden">
|
|
<p>Keine SPICE-fähigen VMs gefunden.</p>
|
|
<p class="hint">Nur laufende VMs mit QXL- oder Virtio-VGA-GL-Display werden angezeigt.</p>
|
|
</div>
|
|
|
|
<!-- Error -->
|
|
<div id="error" class="error hidden"></div>
|
|
|
|
<!-- Connected notice -->
|
|
<div id="notice" class="notice hidden"></div>
|
|
|
|
</div>
|
|
|
|
<!-- Settings modal (Windows only — VirtViewer's install folder name changes per version) -->
|
|
<div id="settingsOverlay" class="modal-overlay hidden">
|
|
<div class="modal-card">
|
|
<h3>Viewer-Pfad</h3>
|
|
<p class="hint">
|
|
Wird VirtViewer (remote-viewer.exe) nicht automatisch gefunden, kannst du hier
|
|
den Pfad zur .exe manuell festlegen.
|
|
</p>
|
|
<div class="field">
|
|
<label>Aktueller Pfad</label>
|
|
<div id="viewerPathDisplay" class="path-display">automatisch erkannt</div>
|
|
</div>
|
|
<div class="modal-actions">
|
|
<button id="browseViewerBtn" class="btn-secondary">Durchsuchen…</button>
|
|
<button id="resetViewerBtn" class="btn-secondary">Zurücksetzen</button>
|
|
<button id="closeSettingsBtn" class="btn-primary modal-close">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="vms.js"></script>
|
|
</body>
|
|
</html>
|