Add series count sorting
This commit is contained in:
@@ -18,7 +18,7 @@ const app = {
|
||||
saveTimer: null,
|
||||
pendingImage: null,
|
||||
drag: null,
|
||||
seriesSort: "asc",
|
||||
seriesSort: "timeAsc",
|
||||
showOverlay: true,
|
||||
};
|
||||
|
||||
@@ -173,8 +173,12 @@ function sortSeries(list) {
|
||||
const skipA = a.annotation?.skipped ? 1 : 0;
|
||||
const skipB = b.annotation?.skipped ? 1 : 0;
|
||||
if (skipA !== skipB) return skipA - skipB;
|
||||
const result = timeKey(a).localeCompare(timeKey(b)) || String(a.series_number || "").localeCompare(String(b.series_number || ""), undefined, { numeric: true });
|
||||
return app.seriesSort === "asc" ? result : -result;
|
||||
const timeResult = timeKey(a).localeCompare(timeKey(b)) || String(a.series_number || "").localeCompare(String(b.series_number || ""), undefined, { numeric: true });
|
||||
const countResult = Number(a.count || 0) - Number(b.count || 0) || timeResult;
|
||||
if (app.seriesSort === "timeDesc") return -timeResult;
|
||||
if (app.seriesSort === "countAsc") return countResult;
|
||||
if (app.seriesSort === "countDesc") return -countResult;
|
||||
return timeResult;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -762,8 +766,9 @@ function wireImageGestures() {
|
||||
|
||||
function setSort(direction) {
|
||||
app.seriesSort = direction;
|
||||
$("sortAsc").classList.toggle("active", direction === "asc");
|
||||
$("sortDesc").classList.toggle("active", direction === "desc");
|
||||
document.querySelectorAll("[data-sort]").forEach((button) => {
|
||||
button.classList.toggle("active", button.dataset.sort === direction);
|
||||
});
|
||||
app.series = sortSeries(app.series);
|
||||
renderSeries();
|
||||
if (app.activeSeries) {
|
||||
@@ -783,8 +788,9 @@ function wire() {
|
||||
app.showOverlay = !app.showOverlay;
|
||||
updateOverlay();
|
||||
});
|
||||
$("sortAsc").addEventListener("click", () => setSort("asc"));
|
||||
$("sortDesc").addEventListener("click", () => setSort("desc"));
|
||||
document.querySelectorAll("[data-sort]").forEach((button) => {
|
||||
button.addEventListener("click", () => setSort(button.dataset.sort));
|
||||
});
|
||||
$("studySearch").addEventListener("input", () => {
|
||||
clearTimeout(app.searchTimer);
|
||||
app.searchTimer = setTimeout(loadStudies, 250);
|
||||
|
||||
Reference in New Issue
Block a user