Onboarding: better OS auto-open, move QR to its own row

This commit is contained in:
Aaron
2025-12-13 14:56:48 -05:00
parent bcb6f3005d
commit 798d78cb13
2 changed files with 22 additions and 8 deletions

View File

@@ -80,17 +80,22 @@
<div id="copyStatus" class="copy-status" aria-live="polite"></div> <div id="copyStatus" class="copy-status" aria-live="polite"></div>
</section> </section>
<section class="actions"> <section class="actions">
<button id="continueBtn">Go to secure dashboard</button> <button id="continueBtn">Go to secure dashboard</button>
</section>
<section class="qr-wrap">
<div class="qr-block"> <div class="qr-block">
<div> <div>
<p class="qr-title">Use your phone</p> <p class="qr-title">Use your phone</p>
<p class="subtle tiny">Scan to open https://pikit.local</p> <p class="subtle tiny">Scan to open https://pikit.local</p>
</div> </div>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAAklEQVR4AewaftIAAAVgSURBVO3BMWol3Q5G0W1xAwcddioEmv+YBEITeeFL6jTUpdr+rf7W+uDz129EljBEFjFEFjFEFjFEFjFEFjFEFnnxJ9XDT5XhXKkenpbhXKkeTjKck+rhrgznrurhp8pwLhgiixgiixgiixgiixgiixgii7x4V4bz3aqHn6p6OMlwrlQPJ9XDlQznHRnOd6sebjJEFjFEFjFEFjFEFjFEFjFEFnnxN1QPT8lwvkqG847q4UqGs0318KQM50GGyCKGyCKGyCKGyCKGyCIv5P+qhydVDycZzkn1cFeGIxgiixgiixgiixgiixgiixgii7yQ/8tw3lE9XMlwTqoHeZwhsoghsoghsoghsoghssiLvyHD+a/KcE6qhydVD1+leriS4Twpw/kPM0QWMUQWMUQWMUQWMUQWMUQWefGu6uEnqh5OMpyT6uEkw7lSPZxkOCfVw5UM56R6eFL18AMZIosYIosYIosYIosYIosYIou8+JMM519SPZxkOCfVw5UM56R6OMlwvkKGs4whsoghsoghsoghsoghssiLd1UPd2U4J9XDlQznpHq4K8N5R/XwpAznpHr4CtXDSYZzpXr4L8hwLhgiixgiixgiixgiixgiixgii3zw+es3J9XDSYZzV/VwkuE8qXq4kuGcVA/vyHCuVA8nGc6TqocnZTjfrXo4yXAuGCKLGCKLGCKLGCKLGCKLGCKLvPiTDOekevhu1cNJhnOlenha9XBX9XCS4Twlw3lS9XCS4ZxUD1/AEFnEEFnEEFnEEFnEEFnEEFnkxbsynJPq4StkOE/KcE6qh5MM50r1cJLh3FU9fJXq4UqG844M50r1cJLh3GSILGKILGKILGKILGKILPLiT6qHd2Q4d1UPVzKck+rhrgznpHo4yXBOqof/qurhq1QPJxnOXdXDSYZzwRBZxBBZxBBZxBBZxBBZxBBZ5IPPX795R/VwV4ZzUj3cleGcVA93ZTgn1cOTMpwnVQ9PynDuqh5OMpy7qoeTDOeCIbKIIbKIIbKIIbKIIbKIIbLIiz+pHk4ynJPq4Ur1cJLhXKkeTqqHkwznSvXwVTKck+rhrgznrgznHdXDlQznJMM5qR6+gCGyiCGyiCGyiCGyiCGyyAefv37zjurhu2U4J9XDlQznpHo4yXBOqoe7MpwnVQ9XMpyT6uEkw7lSPZxkOHdVDycZzk2GyCKGyCKGyCKGyCKGyCKGyCIffP76zUn1cJLhfLfq4a4M56R6eEeGc1f1cJLhXKkefqoM5wsYIosYIosYIosYIosYIot88PnrN/+S6uGrZDjvqB6ekuE8qXp4R4ZzpXp4R4ZzwRBZxBBZxBBZxBBZxBBZxBBZ5MWfVA8/VYZzV4ZzUj2cZDg/UfVwkuH8QIbIIobIIobIIobIIobIIobIIi/eleF8t+rhrgznHRnOSfXwE2U43y3DOakebjJEFjFEFjFEFjFEFjFEFnnxN1QPT8lwnlQ9nGQ4T8pwTqqHkwznrurhSvXwDzFEFjFEFjFEFjFEFjFEFjFEFnnxr8lwTqqHkwznrurhJMM5qR7uynCeVD08qXq4kuGcZDg3GSKLGCKLGCKLGCKLGCKLGCKLvPjXVA8nGc5J9XCS4dxVPTyperiS4bwjw7lSPZxkOE+qHk4ynAuGyCKGyCKGyCKGyCKGyCIv/oYM5yeqHk4ynK+S4dxVPVypHt6R4dxVPZxkOFeqh5MM5yZDZBFDZBFDZBFDZBFDZBFDZJEPPn/95qR6+KkynCdVDycZzpXqYZsM50nVwzsynAuGyCKGyCKGyCKGyCKGyCKGyCIffP76jcgShsgihsgihsgihsgihsgi/wNnZIh4Pc9/WQAAAABJRU5ErkJggg==" alt="QR code to https://pikit.local" /> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAAklEQVR4AewaftIAAAVgSURBVO3BMWol3Q5G0W1xAwcddioEmv+YBEITeeFL6jTUpdr+rf7W+uDz129EljBEFjFEFjFEFjFEFjFEFjFEFnnxJ9XDT5XhXKkenpbhXKkeTjKck+rhrgznrurhp8pwLhgiixgiixgiixgiixgiixgii7x4V4bz3aqHn6p6OMlwrlQPJ9XDlQznHRnOd6sebjJEFjFEFjFEFjFEFjFEFjFEFnnxN1QPT8lwvkqG847q4UqGs0318KQM50GGyCKGyCKGyCKGyCKGyCIv5P+qhydVDycZzkn1cFeGIxgiixgiixgiixgiixgiixgii7yQ/8tw3lE9XMlwTqoHeZwhsoghsoghsoghsoghssiLvyHD+a/KcE6qhydVD1+leriS4Twpw/kPM0QWMUQWMUQWMUQWMUQWMUQWefGu6uEnqh5OMpyT6uEkw7lSPZxkOCfVw5UM56R6eFL18AMZIosYIosYIosYIosYIosYIou8+JMM519SPZxkOCfVw5UM56R6OMlwvkKGs4whsoghsoghsoghsoghssiLd1UPd2U4J9XDlQznpHq4K8N5R/XwpAznpHr4CtXDSYZzpXr4L8hwLhgiixgiixgiixgiixgiixgii3zw+es3J9XDSYZzV/VwkuE8qXq4kuGcVA/vyHCuVA8nGc6TqocnZTjfrXo4yXAuGCKLGCKLGCKLGCKLGCKLGOIfX4bz/UB18yXAuVA8nmU4J9XDkwznVGf4IIbI IobI IobI IobI IobyIjP8nw3pUPTxNcK5UD2cZzkn1cFeGcxgiixgiixgiixgiixgiixgii7w4R/Xw1OU4J9VDycZTmn1cFeGcxgiixgiixgiixgiixgiixgii7xwR/Xw1OU4J9VDycZTmn1cF eAIrGCKLGCKLGCKLGCKLGCKLvHgXhuf9IHq4yXCuVA9nmU4J9XDkwznVGf4IIbI IobI IobI IobI IobyIjv+Q/6tw3lE9XMlwTqoHeZwhsoghsoghsoghsoghssiLvyHD+a/KcE6qhydVD0/lXhXKyR6eluFcqR5OMpyT6uGuDOeu6uGnynAuGCKLGCKLGCKLGCKLGCKLGCIL/ADzYO+b5TgVYwAAAABJRU5ErkJggg==" alt="QR code to https://pikit.local" />
</div> </div>
</section> </section>
<p class="footnote">Once trusted, this page will auto-forward you to the secure dashboard.</p> <p class="footnote">Once trusted, this page will auto-forward you to the secure dashboard.</p>
<p class="footnote">If the hostname ever fails, try http://&lt;pi-ip&gt;/ (or https://&lt;pi-ip&gt;/ — your browser will show the same warning to bypass).</p> <p class="footnote">If the hostname ever fails, try http://&lt;pi-ip&gt;/ (or https://&lt;pi-ip&gt;/ — your browser will show the same warning to bypass).</p>
</main> </main>
@@ -150,7 +155,8 @@
}); });
// Auto-open matching OS section // Auto-open matching OS section
const ua = navigator.userAgent.toLowerCase(); const ua = (navigator.userAgent || "").toLowerCase();
const platform = (navigator.platform || "").toLowerCase();
const openOne = (id) => { const openOne = (id) => {
const el = document.getElementById(id)?.parentElement; const el = document.getElementById(id)?.parentElement;
if (el && el.tagName === "DETAILS") { if (el && el.tagName === "DETAILS") {
@@ -160,12 +166,14 @@
}); });
} }
}; };
if (ua.includes("windows")) openOne("win"); const has = (s) => ua.includes(s) || platform.includes(s);
else if (ua.includes("mac")) openOne("mac"); if (has("windows")) openOne("win");
else if (ua.includes("arch") || ua.includes("manjaro")) openOne("arch"); else if (has("mac")) openOne("mac");
else if (ua.includes("fedora")) openOne("fedora"); else if (has("arch") || has("manjaro") || has("garuda")) openOne("arch");
else if (ua.includes("ubuntu") || ua.includes("debian")) openOne("deb"); else if (has("fedora") || has("centos") || has("rhel")) openOne("fedora");
else if (ua.includes("bsd")) openOne("bsd"); else if (has("ubuntu") || has("debian") || has("mint")) openOne("deb");
else if (has("bsd")) openOne("bsd");
else if (has("linux")) openOne("deb");
if (hasCookie) { if (hasCookie) {
statusChip.textContent = "HTTPS trusted — redirecting…"; statusChip.textContent = "HTTPS trusted — redirecting…";

View File

@@ -191,6 +191,12 @@ code.inline {
width: min(360px, 100%); width: min(360px, 100%);
} }
.qr-wrap {
display: flex;
justify-content: center;
margin: 8px 0 4px;
}
.qr-title { .qr-title {
margin: 0; margin: 0;
font-weight: 700; font-weight: 700;