Skip to content

Commit d8dc43e

Browse files
committed
Adds indeterminate state if not all checkboxes are selected
1 parent ff9048f commit d8dc43e

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

app/assets/javascripts/project.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
document.addEventListener("turbolinks:load", function () {
22
$("input[name='stories[]']").click(() => {
33
updateBulkDeleteStatus();
4+
updateSelectAllStatus();
45
});
56

67

@@ -133,4 +134,20 @@ function updateBulkDeleteStatus() {
133134
.attr("aria-disabled", "true")
134135
.prop("disabled", true);
135136
}
137+
}
138+
139+
function updateSelectAllStatus() {
140+
const selected = $("input[name='stories[]']:checked");
141+
const checkboxes = $("input[name='stories[]']");
142+
143+
if (selected.length == 0) {
144+
$("#select_all")[0].checked = false;
145+
$("#select_all")[0].indeterminate = false;
146+
} else if (selected.length == checkboxes.length) {
147+
$("#select_all")[0].checked = true;
148+
$("#select_all")[0].indeterminate = false;
149+
} else {
150+
$("#select_all")[0].checked = false;
151+
$("#select_all")[0].indeterminate = true;
152+
}
136153
}

0 commit comments

Comments
 (0)