Files
UpSnap-seriousm4x-3/app/wol/static/js/scan.js
2021-09-30 00:15:41 +02:00

52 lines
1.9 KiB
JavaScript

document.getElementById("scan-button").addEventListener("click", scan)
async function scan() {
const table = document.getElementById("scan-table").getElementsByTagName('tbody')[0];
table.innerHTML = "";
const tableContainer = document.getElementById("scan-table-container");
tableContainer.classList.add("is-hidden");
document.getElementById("scan-button").classList.add("is-loading");
const response = await fetch("/scan");
const data = await response.json();
if (data.devices.length == 0) {
document.getElementById("scan-button").classList.remove("is-loading");
return;
}
for (let index = 0; index < data.devices.length; index++) {
const device = data.devices[index];
var row = table.insertRow();
var td1 = row.insertCell();
var td2 = row.insertCell();
var td3 = row.insertCell();
var td4 = row.insertCell();
if (device.name == "") {
var deviceName = "Unknown";
} else {
var deviceName = device.name;
}
td1.appendChild(document.createTextNode(deviceName));
td2.appendChild(document.createTextNode(device.ip));
td3.appendChild(document.createTextNode(device.mac));
var button = document.createElement("button");
button.classList.add("button", "is-primary", "is-small");
button.innerText = "Add";
button.addEventListener("click", function (event) {
add_device(JSON.stringify(device));
event.target.disabled = true;
});
td4.appendChild(button);
}
document.getElementById("scan-button").classList.remove("is-loading");
tableContainer.classList.remove("is-hidden");
}
function add_device(data) {
var xhr = new XMLHttpRequest();
var url = "/add-device/";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
}