function getResources(){ fetch("https://sensoresourcemonitor.blob.core.windows.net/resource-monitor/current-resources.json") .then(res => res.text()) .then(data => processData(JSON.parse(data))); setTimeout(getResources, 1800000); } function processData(data){ if (data.Resources) { clearExisting(); setLastCheckedTime(data.LastChecked); for(let i = 0; i < data.Resources.length; i++){ let tableId = constructCategoryHTML(i, data.Resources[i].Category); populateTable(tableId, data.Resources[i].Resources); } } } function setLastCheckedTime(time){ let lastUpdate = document.getElementById("last-updated"); lastUpdate.innerText = time; } function constructCategoryHTML(categoryNumber, name){ let container = document.getElementById("resource-container"); //create category let categoryDiv = document.createElement("div"); categoryDiv.className = "resource-category"; //create category name let categoryName = document.createElement("div"); categoryName.className = "category-name"; categoryName.innerText = name; categoryDiv.appendChild(categoryName); //create resources div let resourcesDiv = document.createElement("div"); resourcesDiv.className = "resources"; categoryDiv.appendChild(resourcesDiv); //create create table let table = document.createElement("table"); table.id = "table-" + categoryNumber; let tableHeader = table.createTHead(); let row = tableHeader.insertRow(0); row.insertCell(0).outerHTML = "Hostname"; row.insertCell(1).outerHTML = "IP Address"; row.insertCell(2).outerHTML = "Last Changed"; resourcesDiv.appendChild(table); container.appendChild(categoryDiv); return table.id; } function populateTable(tableId, data){ let table = document.getElementById(tableId); for(let i = 0; i < data.length; i++){ let row = table.insertRow(-1), resource = data[i]; row.insertCell(0).innerHTML = resource.Hostname; row.insertCell(1).innerHTML = resource.IP; row.insertCell(2).innerHTML = resource.LastChanged; } } function clearExisting() { document.getElementById("resource-container").innerHTML = ""; } getResources();