Add session-based login page and auth for dashboard
This commit is contained in:
@@ -50,6 +50,18 @@
|
||||
border-radius: 50%;
|
||||
background: var(--green);
|
||||
}
|
||||
.logout-btn {
|
||||
background: none;
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text-dim);
|
||||
padding: 0.35rem 0.75rem;
|
||||
border-radius: 6px;
|
||||
font-size: 0.8rem;
|
||||
cursor: pointer;
|
||||
margin-left: 1rem;
|
||||
transition: border-color 0.2s, color 0.2s;
|
||||
}
|
||||
.logout-btn:hover { border-color: var(--text-dim); color: var(--text); }
|
||||
.container { max-width: 1200px; margin: 0 auto; padding: 1.5rem 2rem; }
|
||||
|
||||
/* Agent Cards */
|
||||
@@ -210,6 +222,7 @@
|
||||
<div class="status">
|
||||
<div class="dot"></div>
|
||||
<span id="agent-count">0 agents</span>
|
||||
<button class="logout-btn" onclick="logout()">Logout</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -346,12 +359,21 @@ document.getElementById('modal-overlay').addEventListener('click', e => {
|
||||
if (e.target === e.currentTarget) closeModal();
|
||||
});
|
||||
|
||||
async function logout() {
|
||||
await fetch(API + '/api/logout', {method: 'POST'});
|
||||
window.location.href = '/login';
|
||||
}
|
||||
|
||||
async function refresh() {
|
||||
try {
|
||||
const [agentsRes, runsRes] = await Promise.all([
|
||||
fetch(API + '/api/agents'),
|
||||
fetch(API + '/api/runs?limit=25'),
|
||||
]);
|
||||
if (agentsRes.status === 401 || runsRes.status === 401) {
|
||||
window.location.href = '/login';
|
||||
return;
|
||||
}
|
||||
renderAgents(await agentsRes.json());
|
||||
renderRuns(await runsRes.json());
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user