move anchor config to frontend dropdowns + localStorage, remove /api/settings
This commit is contained in:
1 parent
c245e0e374
commit
e2c7adab90
5 files changed
+66
-17
No files matched your search
+39
-6
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user