[feat](trx-frontend): bookmark markers, category colors, text filter
- Move bookmark frequency markers from drawSpectrum() to drawSignalOverlay() so dashed lines span both the waterfall and waveform canvases - Assign distinct palette colors to named categories; uncategorised uses --accent-yellow resolved from the live theme at runtime - Compute WCAG-compliant foreground color (dark/light) per category so label text is always legible against the solid background - Add text search input to the Bookmarks toolbar; filters by name, category, and comment client-side without re-fetching from the server Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -44,11 +44,23 @@ async function bmFetch(categoryFilter) {
|
||||
bmList = [];
|
||||
}
|
||||
bmSyncAccess();
|
||||
bmRender(bmList);
|
||||
bmApplyFilters();
|
||||
bmRefreshCategoryFilter(categoryFilter);
|
||||
if (typeof scheduleSpectrumDraw === "function") scheduleSpectrumDraw();
|
||||
}
|
||||
|
||||
function bmApplyFilters() {
|
||||
const text = (document.getElementById("bm-text-filter")?.value || "").trim().toLowerCase();
|
||||
const filtered = text
|
||||
? bmList.filter((bm) =>
|
||||
(bm.name || "").toLowerCase().includes(text) ||
|
||||
(bm.category || "").toLowerCase().includes(text) ||
|
||||
(bm.comment || "").toLowerCase().includes(text)
|
||||
)
|
||||
: bmList;
|
||||
bmRender(filtered);
|
||||
}
|
||||
|
||||
async function bmRefreshCategoryFilter(keepValue) {
|
||||
const sel = document.getElementById("bm-category-filter");
|
||||
if (!sel) return;
|
||||
@@ -276,6 +288,11 @@ async function bmApply(bm) {
|
||||
bmFetch(e.target.value);
|
||||
});
|
||||
|
||||
// Text search filter (client-side, no re-fetch)
|
||||
document.getElementById("bm-text-filter").addEventListener("input", () => {
|
||||
bmApplyFilters();
|
||||
});
|
||||
|
||||
// Form submit
|
||||
document.getElementById("bm-form").addEventListener("submit", bmSave);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user