+(function () {
+
+ const table = document.querySelector('#monitorcito');
+
+ function loadData () {
+ fetch('/api')
+ .then((response) => response.json())
+ .then((serviceStatus) => {
+
+ while (table.firstChild) {
+ table.removeChild(table.firstChild)
+ }
+
+ for (const [service, isActive] of Object.entries(serviceStatus)) {
+ const row = document.createElement('tr');
+ const serviceCell = document.createElement('td');
+ serviceCell.appendChild(document.createTextNode(service));
+ const isActiveCell = document.createElement('td');
+ isActiveCell.appendChild(document.createTextNode(isActive ? 'OK' : 'FAIL'));
+ isActiveCell.classList.add(isActive);
+ row.appendChild(serviceCell);
+ row.appendChild(isActiveCell);
+ table.appendChild(row);
+ }
+
+ setTimeout(loadData, 5000);
+ })
+ .catch(() => {
+ const container = document.querySelector('main');
+ container.removeChild(table);
+ const paragraph = document.createElement('p');
+ paragraph.appendChild(document.createTextNode('Everything is broken. If your internet works, please check the server\'s not on fire. When in doubt, just refresh.'));
+ paragraph.classList.add('critical');
+ container.appendChild(paragraph);
+ })
+ }
+
+ loadData();
+}
+)();