12345678910111213141516171819202122232425262728293031323334353637383940 |
- const initMassDelete = confirmation => {
- const tables = document.querySelectorAll(".card-admin-table")
- tables.forEach(table => initTableMassDelete(table, confirmation))
- }
- const initTableMassDelete = (table, confirmation) => {
- const form = table.querySelector("form")
- if (form === null) return
- const submit = form.querySelector("button")
- const toggle = table.querySelector("th input[type=checkbox]")
- const checkbox = table.querySelectorAll("td input[type=checkbox]")
- const updateState = () => {
- const checked = table.querySelectorAll("td input:checked")
- toggle.checked = checkbox.length === checked.length
- submit.disabled = checked.length === 0
- }
- updateState()
- toggle.addEventListener("change", event => {
- checkbox.forEach(element => (element.checked = event.target.checked))
- updateState()
- })
- checkbox.forEach(element => {
- element.addEventListener("change", updateState)
- })
- form.addEventListener("submit", event => {
- const checked = table.querySelectorAll("td input:checked")
- if (checked.length === 0 || !window.confirm(confirmation)) {
- event.preventDefault()
- return false
- }
- })
- }
- export default initMassDelete
|