Add HDFS browser, SSH terminal, presentation editor, lab health panel
- HDFS WebHDFS file browser (api/hdfs_api.py + HdfsView) - In-browser SSH terminal via paramiko WebSocket bridge (api/ssh_terminal.py + SshTerminal, xterm.js) - Presentation deck editor (text + image upload) and CRUD endpoints - Collapsible GPU matrix + new LabHealthPanel in SideNav - Topology fixes (edge alignment, Hadoop node, compact nodes) - nginx ws timeout bump for long-lived SSH sessions
This commit is contained in:
+3
-1
@@ -245,6 +245,7 @@ header .meta{{font-size:.75rem;opacity:.7}}
|
||||
.slide ul{{list-style:none;font-size:1.15rem;line-height:1.9}}
|
||||
.slide li::before{{content:"▸ ";color:#60a5fa}}
|
||||
.slide.hero h2{{font-size:3.2rem}}
|
||||
.slide img.slide-img{{max-height:42vh;max-width:100%;margin-top:1.5rem;border-radius:10px;border:1px solid rgba(96,165,250,.25);box-shadow:0 8px 30px rgba(0,0,0,.4);object-fit:contain}}
|
||||
nav{{display:flex;gap:.5rem;padding:1rem 2rem;border-top:1px solid rgba(96,165,250,.2);align-items:center}}
|
||||
nav button{{background:#1e3a5f;border:1px solid rgba(96,165,250,.3);color:#e8f1ff;padding:.5rem 1rem;border-radius:6px;cursor:pointer}}
|
||||
nav button:hover{{background:#234876}}
|
||||
@@ -275,7 +276,8 @@ slides.forEach((s,idx)=>{{
|
||||
const el=document.createElement("section");
|
||||
el.className="slide"+(s.kind==="hero"?" hero":"")+(idx===0?" active":"");
|
||||
const bullets=(s.bullets||[]).map(b=>"<li>"+b+"</li>").join("");
|
||||
el.innerHTML="<h2>"+s.title+"</h2><h3>"+(s.subtitle||"")+"</h3><ul>"+bullets+"</ul>";
|
||||
const img=s.image?'<img class="slide-img" src="'+s.image+'" alt=""/>':"";
|
||||
el.innerHTML="<h2>"+s.title+"</h2><h3>"+(s.subtitle||"")+"</h3><ul>"+bullets+"</ul>"+img;
|
||||
container.appendChild(el);
|
||||
const d=document.createElement("button");
|
||||
d.className="dot"+(idx===0?" active":"");
|
||||
|
||||
Reference in New Issue
Block a user