+const g=document.getElementById("ssid");document.getElementById("psk");document.getElementById("net");const l=document.getElementById("toggle-wifi-list"),n=document.getElementById("wifi-list-dropdown"),i=document.getElementById("refresh-wifi-list"),e=document.getElementById("refresh-spinner"),m=document.getElementById("wifi-list-items"),c=document.getElementById("wifi-list-empty");let a=!1,f=!1,o=[];function u(){a=!a,a?(n==null||n.classList.remove("hidden"),r()):n==null||n.classList.add("hidden")}l==null||l.addEventListener("click",t=>{t.stopPropagation(),u()});document.addEventListener("click",t=>{a&&n&&!n.contains(t.target)&&l&&!l.contains(t.target)&&u()});function L(){!m||(m.innerHTML="",o.length>0?(c==null||c.classList.add("hidden"),o.forEach(t=>{const s=document.createElement("a");s.href="#",s.className="wifi-list-item",s.textContent=t,s.addEventListener("click",d=>{d.preventDefault(),v(t)}),m.appendChild(s)})):c==null||c.classList.remove("hidden"))}function v(t){g&&(g.value=t),u()}async function r(){if(!f){f=!0,i==null||i.setAttribute("disabled","true"),e==null||e.classList.remove("hidden"),e==null||e.classList.add("show");try{const s=await(await fetch("/config.json")).json();s.aps?o=s.aps.slice(1).map(d=>d.ssid).filter(d=>d):o=[],L()}catch(t){console.error("Failed to fetch wifi list",t),o=[],L()}finally{f=!1,i==null||i.removeAttribute("disabled"),e==null||e.classList.add("hidden"),e==null||e.classList.remove("show")}}}i==null||i.addEventListener("click",t=>{t.stopPropagation(),r()});const y=document.getElementById("tip");window.location.search.includes("save")&&y&&(y.style.display="block");</script><style>*{box-sizing:inherit}div,input{padding:5px;font-size:1em}input{width:95%}html{width:100%}body{text-align:center;font-family:sans-serif;width:100%;margin:0;padding:0}button{border:0;border-radius:.3rem;background-color:#1fa3ec;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%;padding:0;cursor:pointer}main{text-align:left;display:inline-block;min-width:260px;width:100%;height:100vh}.network{display:flex;justify-content:space-between;align-items:center}.network-left{display:flex;align-items:center}.network-ssid{margin-bottom:-7px;margin-left:10px}aside{border:1px solid;margin:10px 0;padding:15px 10px;color:#4f8a10;background-color:#dff2bf;display:none}header{width:100%;height:56px;display:flex;align-items:center;background:linear-gradient(to bottom,#1e293b,#0f172a);color:#f1f5f9;font-size:12px}header h1{margin:0 auto;width:75%;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:28px}header h1>span{background-color:#c3a091;border:4px solid #c3a091;border-right:none;border-radius:.375rem 0 0 .375rem;padding:0 4px}header h1 div{background-color:#c3a091;border:4px solid #c3a091;border-left:none;border-radius:0 .375rem .375rem 0;padding:0;display:flex;align-items:center}header h1 div span{background-color:#fff;padding:0 5px;border-radius:5px;color:#349eac}.container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#e2e8f0;position:relative}.setting{max-width:400px;width:80%;padding:20px;background-color:#fff;border-radius:10px;box-shadow:#7a89a2 0 2px 4px}.setting form{width:100%}input{width:90%;margin:5px;padding:10px;border:1px solid #ccc;border-radius:5px}button{background-color:#4ade80}.header-bar{height:3.5rem;display:flex;align-items:center;background:linear-gradient(to bottom,#1e293b,#020617);color:#f1f5f9;font-size:1.875rem;line-height:2.25rem}.header-title{margin:0 auto;width:100%;font-weight:700;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));display:flex;align-items:center;justify-content:center}@media (min-width:768px){.header-title{width:83.333333%}}@media (min-width:1280px){.header-title{width:75%}}.wifiInput{position:relative;width:100%}.wifiInput input{margin:0}.wifi-dropdown-toggle{position:absolute;top:.6rem;right:1.2rem;cursor:pointer}.icon-chevron{margin-right:0;margin-left:auto;height:1.5rem;width:1.5rem}.wifi-dropdown-menu{transform-origin:top left;position:absolute;width:90%;z-index:30;top:2.5rem;left:2;margin-top:.25rem;padding-top:.25rem;padding-bottom:.25rem;max-height:250px;overflow:auto;border-radius:.25rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;background-color:#fff;border:1px solid rgba(0,0,0,.05);scrollbar-width:none}.wifi-dropdown-menu::-webkit-scrollbar{display:none}.setting h3{text-align:center;font-weight:700;font-size:26px;margin:10px 0}.wifi-refresh-btn{background-color:#e2e8f0;width:98%;font-weight:700;color:#475569;padding:5px;border-radius:.25rem;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;line-height:inherit;font-size:inherit}.wifi-refresh-btn:hover{background-color:#93c5fd}.wifi-refresh-btn:disabled{opacity:.7;cursor:not-allowed}.wifi-refresh-spinner-container{display:flex;justify-content:center;align-items:center;height:.5rem}.wifi-refresh-spinner{animation:spin 1s linear infinite;height:1px;width:1px;border-width:4px;border-style:solid;margin-right:.25rem;border-color:#475569;border-top-color:transparent;border-radius:9999px}.wifi-list-item{display:block;padding:.5rem 1rem;margin-top:.25rem;margin-bottom:.25rem;font-size:.875rem;color:#374151;font-weight:700;border-radius:.25rem;text-decoration:none;background-color:transparent}.wifi-list-item:hover{background-color:#f3f4f6;color:#60a5fa}.wifi-list-empty{text-center:center;padding-top:.5rem;padding-bottom:.5rem;font-weight:700;color:#475569}.hidden{display:none!important}.show{display:flex!important}.tip{position:absolute;top:1rem;left:50%;transform:translate(-50%);padding:.5rem 1rem;border-radius:.375rem;color:#fff;background-color:#4ade80}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}</style></head><body><main><header class=header-bar><h1 class=header-title><span>NESSO</span><div><span>N1</span></div></h1></header><div class=container><span id=net></span><div class=setting><h3>WiFi Settings</h3><form action=/wifisave><div class=wifiInput><input id=ssid name=ssid length=32 placeholder=SSID><br><div id=toggle-wifi-list class=wifi-dropdown-toggle><svg class=icon-chevron xmlns=http://www.w3.org/2000/svg viewBox="0 0 20 20" fill=currentColor aria-hidden=true><path fill-rule=evenodd d="M6.293 7.293a1 1 0 011.414 0L10 9.586l2.293-2.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z" clip-rule=evenodd /></svg></div><div id=wifi-list-dropdown class="wifi-dropdown-menu hidden" role=menu aria-orientation=vertical aria-labelledby=menu-button tabindex=-1><div class=wifi-dropdown-content role=none><button id=refresh-wifi-list class=wifi-refresh-btn><div id=refresh-spinner class=wifi-refresh-spinner-container><div class=wifi-refresh-spinner></div></div>Refresh</button><div id=wifi-list-items></div><div id=wifi-list-empty class="wifi-list-empty hidden">None</div></div></div></div><input id=psk name=psk length=64 type=password placeholder=Password><br><br><button>Save</button></form></div><div class=tip id=tip style=display:none>Save Success</div></div></main></body></html>
0 commit comments