Sha256: afaf1c103900821100738705f4f4ccc8f4ffa58ecd2962a2abe2cbd94ffa72c9
Contents?: true
Size: 889 Bytes
Versions: 2
Compression:
Stored size: 889 Bytes
Contents
import { Controller } from "stimulus"; export default class extends Controller { static targets = ["count"]; connect() { this.setCount(); } checkAll() { this.setAllCheckboxes(true); this.setCount(); } checkNone() { this.setAllCheckboxes(false); this.setCount(); } onChecked() { this.setCount(); } setAllCheckboxes(checked) { this.checkboxes.forEach((el) => { const checkbox = el; if (!checkbox.disabled) { checkbox.checked = checked; } }); } setCount() { if (this.hasCountTarget) { const count = this.selectedCheckboxes.length; this.countTarget.innerHTML = `${count} selected`; } } get selectedCheckboxes() { return this.checkboxes.filter((c) => c.checked); } get checkboxes() { return new Array(...this.element.querySelectorAll("input[type=checkbox]")); } }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rails_mini_profiler-0.5.0 | app/javascript/js/checklist_controller.js |
rails_mini_profiler-0 | app/javascript/js/checklist_controller.js |