Live updates during a cycle; Filter & sort dropdown on phones; layout polish

- Worker publishes the rows swept so far every few seconds (LivePublishSeconds)
  with a DataVersion stamp; the dashboard reloads on each new version, so
  tables, the Overview and open dialogs update mid-cycle. Shared files are
  written to a temp file and swapped in, so readers never see half a file.
- Phones / tablets: one Filter & sort button opens a column list instead of a
  row of chips, on every table.
- Details: a wrapped Simple / Advanced toggle sits on the left.
- Card fields: fixed-height dialog; field list and add list share it evenly.
This commit is contained in:
Johan Sandoval committed 2026-10-06 21:33:29 +00:00
1 parent 7242f8f8af
commit 9dc2d88726
8 files changed
+149 -31

No files matched your search

+12
View File
@@ -59,6 +59,17 @@
}
return null;
}
// Details dialog title: if the Simple/Advanced toggle wrapped under the name, align it left
function updateDetailsTitle() {
const t = document.getElementById('detailsTitle');
if (!t || !t.offsetParent) return;
const name = t.querySelector('.dt-name'), btn = t.querySelector('.dt-toggle');
if (!name || !btn) return;
t.classList.remove('dt-wrapped');
const wrapped = btn.getBoundingClientRect().top > name.getBoundingClientRect().bottom - 4;
t.classList.toggle('dt-wrapped', wrapped);
}
function updateSticky() {
const root = document.documentElement;
const nav = document.querySelector('.top-nav');
@@ -77,6 +88,7 @@
if (table.parentElement) setVar(table.parentElement, '--sticky-top', top); // for the filter chip bar
});
setupCustomHScroll();
updateDetailsTitle();
}
// Custom View can be wider than the page. A sideways-scrolling box would stop its header