diff --git a/app/wol/static/js/main.js b/app/wol/static/js/main.js index 529b53f8..181b944b 100644 --- a/app/wol/static/js/main.js +++ b/app/wol/static/js/main.js @@ -5,36 +5,24 @@ $('.wake-form').submit(function (e) { document.getElementById(this.id + "-btn-wake").classList.add("is-loading"); }); -// get available devices -async function getDevices() { - let response = await fetch("/devices/"); - let data = await response.json() - if (data.status == 200) { - return data.devices +var socket = new WebSocket("ws://" + location.host + "/wol/"); +socket.onmessage = function(event) { + var data = JSON.parse(event.data); + console.log(data); + + if (data.status !== 200) { + console.log("message status not 200"); + return; } -} -// ping devices and set status in web interface -async function ping(device) { - let response = await fetch("/status/" + device.pk); - let data = await response.json() - if (data.status == 200 && data.up == true) { - document.getElementById(device.pk + "-status").innerHTML = ""; - document.getElementById(device.pk + "-btn-wake").classList.remove("is-loading"); - document.getElementById(device.pk + "-btn-wake").disabled = true; - } else { - document.getElementById(device.pk + "-status").innerHTML = ""; - document.getElementById(device.pk + "-btn-wake").disabled = false; - } + data.devices.forEach(function(device, index) { + if (device.up == true) { + document.getElementById(device.id + "-status").innerHTML = ""; + document.getElementById(device.id + "-btn-wake").classList.remove("is-loading"); + document.getElementById(device.id + "-btn-wake").disabled = true; + } else { + document.getElementById(device.id + "-status").innerHTML = ""; + document.getElementById(device.id + "-btn-wake").disabled = false; + } + }) } - -async function main() { - var allDevices = await getDevices(); - allDevices.forEach(device => { - setInterval(() => { - ping(device) - }, 3000) - }); -} - -main() \ No newline at end of file