diff options
author | CloudburstSys <us@conep.one> | 2022-05-25 13:58:02 +0100 |
---|---|---|
committer | CloudburstSys <us@conep.one> | 2022-05-25 13:58:02 +0100 |
commit | 6d06d9a96bb089254aa89dae0ae49f73c8d8bfe4 (patch) | |
tree | b7d45eeaea7e2476d0b43778a3f3cd36973965c4 /public/assets/servers.js | |
parent | 94fea37d627a7f11a67d4eb472300dfa5abaafae (diff) | |
download | vaportrail-6d06d9a96bb089254aa89dae0ae49f73c8d8bfe4.tar.gz vaportrail-6d06d9a96bb089254aa89dae0ae49f73c8d8bfe4.tar.bz2 vaportrail-6d06d9a96bb089254aa89dae0ae49f73c8d8bfe4.zip |
Create /servers page
Diffstat (limited to 'public/assets/servers.js')
-rw-r--r-- | public/assets/servers.js | 96 |
1 files changed, 95 insertions, 1 deletions
diff --git a/public/assets/servers.js b/public/assets/servers.js index 6c6d129..566acde 100644 --- a/public/assets/servers.js +++ b/public/assets/servers.js @@ -24,6 +24,90 @@ */ const SERVER_API = "/api/servers"; +const idsToReadable = { + "data-cpu": "CPU", + "data-cpu-processors": "Processor Count", + "data-cpu-model": "Model", + "data-cpu-cores": "Core Count", + "data-cpu-speed": "Clock Speed", + "data-cpu-temperature": "Temperature", + "data-cpu-load": "Usage", + "data-processes": "Processes", + "data-processes-total": "Total", + "data-processes-running": "Running", + "data-processes-sleeping": "Sleeping", + "data-processes-blocked": "Blocked", + "data-processes-unknown": "Unknown", + "data-swapmemory": "Swap RAM", + "data-swapmemory-used": "Used", + "data-swapmemory-free": "Free", + "data-swapmemory-total": "Total", + "data-physicalmemory": "Physical RAM", + "data-physicalmemory-used": "Used", + "data-physicalmemory-free": "Free", + "data-physicalmemory-total": "Total", + "data-os": "OS", + "data-os-name": "Name", + "data-os-version": "Version" +} + +function isObject(obj) { + return obj === Object(obj); +} + +function iterateAndSetData(data, previous, element, server) { + for(var key in data) { + console.log(key); + console.log("iterateAndSetData: "+previous.join("-")); + if(isObject(data[key])) { + // Call self again but with this object as the input + console.log("iterateAndSetData: Calling self!") + newPrevious = previous.join("-").split("-"); + newPrevious.push(key); + + console.log(newPrevious.join("-")); + + let category = document.createElement("div"); + category.classList.add("category"); + category.classList.add(key); + + let title = document.createElement("h4"); + title.classList.add("name"); + title.innerHTML = idsToReadable[newPrevious.join("-")]; + + category.appendChild(title); + server.appendChild(category); + + iterateAndSetData(data[key], newPrevious, category, server); + } else { + // We're at a value, we can set stuff + if(key == "online") continue; + + console.log("interateAndSetData: Setting data!"); + + console.log(previous.join("-")+"-"+key); + let value = data[key]; + if(value == null || value == undefined) value = "No Data"; + + let item = document.createElement("div"); + item.classList.add("item"); + + let title = document.createElement("p"); + title.innerHTML = idsToReadable[previous.join("-")+"-"+key]; + + let content = document.createElement("span"); + content.innerHTML = value; + + item.appendChild(title); + item.appendChild(content); + + element.appendChild(item); + + //document.getElementById(server).getElementsByClassName(previous.join("-")+"-"+key)[0].innerHTML = value; + } + } +} + // apparently document.onload is never called??? function a() { console.log("a"); @@ -31,7 +115,17 @@ function a() { .then(data => data = data.json()) .then(data => { console.log(data); - document.getElementById("canterlot").getElementsByClassName("cpu-type")[0].innerHTML = data.canterlot.cpu.model; + for(var server in data) { + if(data[server] == null) { + document.getElementById(server).getElementsByClassName("category-container")[0].remove(); + document.getElementById(server).getElementsByTagName("p")[0].innerHTML = "Server Offline"; + document.getElementById(server).getElementsByTagName("p")[0].style = "color:#ff4444;"; + continue; + } + document.getElementById(server).getElementsByClassName("data-uptime")[0].innerHTML = data[server].uptime; + delete data[server].uptime; + iterateAndSetData(data[server], ["data"], null, document.getElementById(server).getElementsByClassName("category-container")[0]); + } }); } |