Add maintenance menu (top-right ⚙) with generate missing PDF thumbnails

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-22 00:41:40 +00:00
parent 451b04ad03
commit 8e0f7eb4d8
5 changed files with 111 additions and 0 deletions

View File

@@ -1940,6 +1940,33 @@ async function init() {
btn.addEventListener('click', () => navigate('/' + btn.dataset.section));
});
// Maintenance menu
const maint_toggle = document.getElementById('maint-toggle');
const maint_dropdown = document.getElementById('maint-dropdown');
maint_toggle.addEventListener('click', (e) => {
e.stopPropagation();
maint_dropdown.hidden = !maint_dropdown.hidden;
});
document.addEventListener('click', () => { maint_dropdown.hidden = true; });
document.getElementById('maint-gen-thumbs').addEventListener('click', async () => {
maint_dropdown.hidden = true;
maint_toggle.textContent = '⏳';
maint_toggle.disabled = true;
try {
const result = await api.maintenance_pdf_thumbs();
const refreshed = await api.get_pdfs();
all_pdfs = refreshed.pdfs;
alert(`Generated ${result.generated} thumbnail(s) of ${result.total} PDF(s).`);
render();
} catch (err) {
alert(`Error: ${err.message}`);
} finally {
maint_toggle.textContent = '⚙';
maint_toggle.disabled = false;
}
});
window.addEventListener('popstate', () => { parse_url(); render(); });
await load_all();