move anchor config to frontend dropdowns + localStorage, remove /api/settings

This commit is contained in:
Meleki committed 2026-02-22 22:24:44 +01:00
1 parent c245e0e374
commit e2c7adab90
5 files changed
+66 -17

No files matched your search

+39 -6
View File
@@ -68,12 +68,34 @@ async function init() {
$('modal').addEventListener('click', e => { if (e.target === $('modal')) closeModal(); });
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); });
// Load anchor settings
try {
const settings = await api('/api/settings');
if (settings.anchorDay != null) ANCHOR_DAY = settings.anchorDay;
if (settings.anchorHour != null) ANCHOR_HOUR = settings.anchorHour;
} catch {}
// Anchor dropdowns
const daySelect = $('anchor-day');
const hourSelect = $('anchor-hour');
for (let h = 0; h < 24; h++) {
const opt = document.createElement('option');
opt.value = h;
opt.textContent = h.toString().padStart(2, '0') + ':00';
hourSelect.appendChild(opt);
}
// Load from localStorage
const savedDay = localStorage.getItem('anchorDay');
const savedHour = localStorage.getItem('anchorHour');
if (savedDay != null) ANCHOR_DAY = parseInt(savedDay);
if (savedHour != null) ANCHOR_HOUR = parseInt(savedHour);
daySelect.value = ANCHOR_DAY;
hourSelect.value = ANCHOR_HOUR;
daySelect.addEventListener('change', () => {
ANCHOR_DAY = parseInt(daySelect.value);
localStorage.setItem('anchorDay', ANCHOR_DAY);
resetToStart();
});
hourSelect.addEventListener('change', () => {
ANCHOR_HOUR = parseInt(hourSelect.value);
localStorage.setItem('anchorHour', ANCHOR_HOUR);
resetToStart();
});
zoomIndex = 0;
const range = getAnchoredRange(zoomIndex);
@@ -445,6 +467,17 @@ function enterEntryMode(bucketStart, bucketEnd) {
loadView();
}
function resetToStart() {
location.hash = '';
zoomIndex = 0;
entryMode = false;
zoomStack = [];
const range = getAnchoredRange(zoomIndex);
viewFrom = range.from;
viewTo = range.to;
loadView();
}
function zoomOut() {
if (zoomStack.length) {
const prev = zoomStack.pop();