massActions.js 964 B

1234567891011121314151617181920212223242526272829303132
  1. import { addEventListenerToAll } from "./utils"
  2. const initMassActions = (emptySelectionLabel, selectionLabel) => {
  3. const dropdownToggle = document.querySelector("#mass-action .dropdown-toggle")
  4. const dropdownLabel = dropdownToggle.querySelector("span:last-child")
  5. const updateDropdownState = () => {
  6. const checked = document.querySelectorAll(".row-select input:checked")
  7. .length
  8. dropdownToggle.disabled = checked === 0
  9. if (checked) {
  10. dropdownLabel.textContent = selectionLabel.replace("0", checked)
  11. } else {
  12. dropdownLabel.textContent = emptySelectionLabel
  13. }
  14. }
  15. updateDropdownState()
  16. addEventListenerToAll(".row-select input", "change", () => {
  17. updateDropdownState()
  18. })
  19. addEventListenerToAll("#mass-action [data-confirmation]", "click", event => {
  20. if (!window.confirm(event.target.dataset.confirmation)) {
  21. event.preventDefault()
  22. return false
  23. }
  24. })
  25. }
  26. export default initMassActions