UI: show distill schedule next-run times in settings panel
Fetches /distill/status when the ⚙ panel opens and renders next run times below the distill buttons (monospace, muted). Shows "today", "tomorrow", or "Mar 18" format depending on how far away. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -813,9 +813,39 @@
|
||||
document.getElementById('mem-short-btn').classList.toggle('mem-on', memShort);
|
||||
}
|
||||
|
||||
function formatNextRun(iso) {
|
||||
if (!iso) return 'n/a';
|
||||
const dt = new Date(iso);
|
||||
const now = new Date();
|
||||
const diffMs = dt - now;
|
||||
const diffDays = Math.floor(diffMs / 86400000);
|
||||
const time = dt.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
|
||||
if (diffDays === 0) return `today ${time}`;
|
||||
if (diffDays === 1) return `tomorrow ${time}`;
|
||||
return dt.toLocaleDateString([], { month: 'short', day: 'numeric' }) + ' ' + time;
|
||||
}
|
||||
|
||||
async function loadSchedule() {
|
||||
const schedEl = document.getElementById('ctx-schedule');
|
||||
try {
|
||||
const res = await fetch('/distill/status');
|
||||
const d = await res.json();
|
||||
if (!d.enabled || !d.jobs.length) {
|
||||
schedEl.textContent = 'auto-distill disabled';
|
||||
return;
|
||||
}
|
||||
schedEl.innerHTML = d.jobs
|
||||
.map(j => `${j.id.replace('distill_', '').padEnd(6)} → ${formatNextRun(j.next_run)}`)
|
||||
.join('<br>');
|
||||
} catch {
|
||||
schedEl.textContent = '';
|
||||
}
|
||||
}
|
||||
|
||||
ctxOpenBtn.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
ctxPanel.classList.toggle('open');
|
||||
if (ctxPanel.classList.contains('open')) loadSchedule();
|
||||
});
|
||||
|
||||
document.addEventListener('click', (e) => {
|
||||
|
||||
Reference in New Issue
Block a user