From 18a3d864d33c536f5a7238cfbc4f4971851c53b5 Mon Sep 17 00:00:00 2001 From: Myron Blair Date: Sun, 31 May 2026 06:09:31 +0000 Subject: [PATCH] refactor: merge LOCAL SYSTEM + DO SERVER into single JARVIS SERVER panel --- public_html/index.html | 86 +++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 48 deletions(-) diff --git a/public_html/index.html b/public_html/index.html index 8e17b38..d027206 100644 --- a/public_html/index.html +++ b/public_html/index.html @@ -677,9 +677,11 @@ body::after{
-
LOCAL SYSTEM
+
JARVIS SERVER 165.22.1.228
+ +
-
CPU USAGE --%
+
CPU --%
@@ -687,36 +689,28 @@ body::after{
-
DISK / --%
+
DISK --%
UPTIME
--
-
LOAD AVG
--
-
HOSTNAME
--
-
+
LOAD
--
-
-
SERVICES
+ +
SERVICES
-
-
+
-
-
-
DO SERVER 165.22.1.228
-
-
-
+ +
WEBSITES
+
+
-
-
-
TOP PROCESSES
+ +
PROCESSES
-
-
@@ -1240,40 +1234,36 @@ function setBar(id, pct) { el.className = 'metric-bar-fill' + (pct>90?' danger':pct>75?' warn':''); } -// ── RENDER: DO SERVER ───────────────────────────────────────────────── +// ── RENDER: DO SERVER (site health only — metrics merged into system panel) ─── function renderDO(d) { - const el = document.getElementById('do-stats'); - const dot = document.getElementById('bb-do-dot'); + const dot = document.getElementById('bb-do-dot'); const status = document.getElementById('bb-do-status'); + const sitesEl = document.getElementById('sites-list'); - if (!d || d.error) { - el.innerHTML = `
${d?.error || 'Unreachable'}
`; - dot.className='bb-dot offline'; status.textContent='OFFLINE'; - document.getElementById('tb-do').className='text-red'; - document.getElementById('tb-do').textContent='OFFLINE'; + if (!d || d.error || !d.reachable) { + if (dot) dot.className = 'bb-dot offline'; + if (status) status.textContent = 'OFFLINE'; + document.getElementById('tb-do').className = 'text-red'; + document.getElementById('tb-do').textContent = 'OFFLINE'; + if (sitesEl) sitesEl.innerHTML = '
Unavailable
'; return; } - const reachable = d.reachable; - dot.className = 'bb-dot ' + (reachable ? 'online' : 'offline'); - status.textContent = reachable ? 'ONLINE' : 'OFFLINE'; - document.getElementById('tb-do').className = reachable ? 'text-green' : 'text-red'; - document.getElementById('tb-do').textContent = reachable ? 'ONLINE' : 'OFFLINE'; + dot.className = 'bb-dot online'; + status.textContent = 'ONLINE'; + document.getElementById('tb-do').className = 'text-green'; + document.getElementById('tb-do').textContent = 'ONLINE'; - if (!reachable) { el.innerHTML='
UNREACHABLE
'; return; } - - const cpuClass = (d.cpu_pct||0)>80?'danger':(d.cpu_pct||0)>60?'warn':'ok'; - const memClass = (d.memory?.percent||0)>80?'danger':(d.memory?.percent||0)>60?'warn':'ok'; - - el.innerHTML = ` -
CPU
${d.cpu_pct??'--'}%
-
MEMORY
${d.memory?.percent??'--'}%
-
DISK
${d.disk_used_pct??'--'}
-
UPTIME
${d.uptime??'--'}
-
LOAD
${d.load_1m??'--'}
- ${d.sites && Object.keys(d.sites).length ? `
WEBSITES:
- ${Object.entries(d.sites).map(([k,v])=>{const cls=v==='up'?'ok':v==='down'?'danger':'warn';const lbl=k.replace(/^https?:\/\//,'').replace(/\.com$/,'').replace(/\.orbishosting$/,'');return`
${lbl}
${v.toUpperCase()}
`}).join('')}` : ''} - `; + if (sitesEl && d.sites && Object.keys(d.sites).length) { + sitesEl.innerHTML = Object.entries(d.sites).map(([k, v]) => { + const cls = v === 'up' ? 'ok' : v === 'down' ? 'danger' : 'warn'; + const lbl = k.replace(/^https?:\/\//, '').replace(/\.orbishosting\.com$/, '').replace(/\.com$/, ''); + return `
+
${lbl}
+
${v.toUpperCase()}
+
`; + }).join(''); + } } async function loadNetwork() {