var addr = ''; var stop = false; var portMap = {}; var portArray = []; // Run, when page loadad window.addEventListener('load', function() { loadSavedPorts(); }); function delRow(id) { document.getElementById(id).innerHTML = ""; } function stopScan() { stop = true; } async function scanAddr() { let begin = document.getElementById("begin").value; let end = document.getElementById("end").value; let savedPorts = []; if (begin == "") { begin = 1 } if (end == "") { end = 65535 } let port = {}; stop = false; if (portMap != null) { savedPorts = Object.keys(portMap); } // console.log("Saved ports:", savedPorts); document.getElementById('stopBtn').style.visibility = "visible"; for (let i = begin ; i <= end; i++) { if (stop) { break; } let url = '/api/port/'+addr+'/'+i; port = await (await fetch(url)).json(); document.getElementById("curPort").innerHTML = "Scanning port "+i; if ((port.State) && (!savedPorts.includes(port.Port.toString()))) { html = createHTML(port, '', true); document.getElementById('tBody').insertAdjacentHTML('afterbegin', html); } } document.getElementById('stopBtn').style.visibility = "hidden"; } function createHTML(port, i, found) { let state = ``; let checked = ``; let sup = ``; if (found) { sup = ` new`; } if (port.Watch) { checked = `checked`; if (port.State) { state = ``; } else { state = ``; } } else { state = ``; } let html = ` ${i}. ${port.Port}${sup} ${state}
`; return html; } async function loadSavedPorts() { addr = document.getElementById("pageAddr").value; let url = '/api/port/'+addr; portMap = await (await fetch(url)).json(); if (portMap != null) { portArray = Object.values(portMap); } displayArrayData(portArray); // sort.js } function sortBy(field) { sortByAny(portArray, field); // sort.js }