Skip to content

Commit e7b27fc

Browse files
committed
recorder: add multi-select checkbox
1 parent 385e1d2 commit e7b27fc

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

apps/recorder/interface.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,7 @@
731731
<h2>GPS Tracks</h2>`;
732732

733733
if (trackList.length > 0) {
734+
html += `<input type="checkbox" id="select-all">`
734735
html += `<div class="accordion">`;
735736
trackList.forEach((track, index) => {
736737
const trackData = trackLineToObject(track.info.headers, track.info.l);
@@ -910,11 +911,14 @@ <h2>Settings</h2>
910911
}
911912

912913
if (trackList.length > 0) {
914+
const selectAll = document.querySelector("#select-all");
913915
const handleCheckboxCheck = () => {
914916
const checkboxes = [...document.querySelectorAll(".download-checkbox")];
915917
const batch = document.querySelector("#batch");
916918

917919
batch.classList.toggle("hidden", !checkboxes.some(b => b.checked));
920+
if (checkboxes.every(b => b.checked)) selectAll.checked = true;
921+
else if (checkboxes.every(b => !b.checked)) selectAll.checked = false;
918922
};
919923

920924
document.querySelectorAll('.accordion-header').forEach(header => {
@@ -930,6 +934,14 @@ <h2>Settings</h2>
930934
.querySelector(".download-checkbox")
931935
.addEventListener('click', handleCheckboxCheck);
932936
});
937+
938+
selectAll.addEventListener("click", e => {
939+
const checkboxes = [...document.querySelectorAll(".download-checkbox")];
940+
const { checked } = e.target;
941+
942+
for(const b of checkboxes)
943+
b.checked = checked;
944+
});
933945
}
934946

935947
document.getElementById("settings-allow-no-gps").addEventListener("change",event=>{

0 commit comments

Comments
 (0)