Files
AltaNetowrkScanner/static/index.html
T

81 lines
3.5 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; object-src 'none'; base-uri 'none'; form-action 'none'">
<title>Local Alta Camera Discovery</title>
<link rel="stylesheet" href="styles.css?v=13">
<script src="export-utils.js?v=13" defer></script>
<script src="app.js?v=13" defer></script>
</head>
<body>
<header class="topbar">
<div class="product-brand">
<img class="alta-logo" src="alta-mark.png" alt="Alta">
</div>
</header>
<main class="app-shell">
<section class="page-heading">
<h1>Local Alta Camera Discovery</h1>
<p>Locate cloud-native Alta cameras available on this network and recover the information required for deployment.</p>
</section>
<section class="discovery-panel" aria-labelledby="scan-title">
<div class="discovery-copy">
<span class="network-icon" aria-hidden="true">
<svg viewBox="0 0 64 64" focusable="false">
<circle class="radar-field" cx="32" cy="32" r="28"></circle>
<path class="radar-sector" d="M32 32V4A28 28 0 0 1 54.7 48.4Z"></path>
<circle class="radar-ring" cx="32" cy="32" r="20.5"></circle>
<circle class="radar-ring" cx="32" cy="32" r="13"></circle>
<circle class="radar-ring" cx="32" cy="32" r="6.2"></circle>
<path class="radar-sweep" d="M32 32V4M32 32l22.7 16.4"></path>
<circle class="radar-target" cx="23.3" cy="13.4" r="3.8"></circle>
<circle class="radar-target" cx="40" cy="21.8" r="3.8"></circle>
<circle class="radar-target" cx="52.3" cy="34.8" r="3.8"></circle>
<circle class="radar-target" cx="16.3" cy="45.2" r="3.8"></circle>
</svg>
</span>
<div>
<h2 id="scan-title">Discover cameras on this network</h2>
<p>The scan uses local mDNS announcements and does not access or modify camera configuration.</p>
</div>
</div>
<div class="scan-action">
<button id="scanButton" class="primary-button" type="button"><span class="radar"></span><span id="buttonText">Start discovery</span></button>
<span>Usually completes in 5 seconds</span>
</div>
</section>
<section id="results" class="results-panel" hidden>
<div class="panel-header">
<div>
<p class="section-label">DISCOVERY RESULTS</p>
<h2 id="resultTitle">Cameras found</h2>
<span id="scanMeta"></span>
</div>
<button id="exportCsvButton" class="secondary-button" type="button">Export CSV</button>
</div>
<div class="table-head" aria-hidden="true">
<span>Alta camera</span><span>Network address</span><span>Action</span>
</div>
<div id="cameraList" class="camera-list"></div>
<div class="panel-footer"><span id="actionStatus" role="status" aria-live="polite"></span></div>
</section>
<section id="empty" class="state-panel" hidden>
<h2>No Alta cameras found</h2>
<p>Confirm the cameras are powered and connected to the same local network or VLAN as this device.</p>
</section>
<section id="error" class="state-panel error" hidden>
<h2>Discovery could not be completed</h2><p id="errorText"></p>
</section>
</main>
<footer class="footer"><span>Alta Video Local Camera Discovery</span></footer>
</body>
</html>