From d73bbbcf6c7bfe7291ac1593004581df6c96b3c8 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Sun, 3 Nov 2019 15:51:41 +0100 Subject: feat: checkall checkbox in home page --- src/edit.js | 4 ++-- src/home.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/home.js (limited to 'src') diff --git a/src/edit.js b/src/edit.js index eaf2d1e..19f952f 100644 --- a/src/edit.js +++ b/src/edit.js @@ -16,7 +16,7 @@ let editors = []; let unsavedChanges = false; const inputEvent = new InputEvent('input'); -window.onload = () => { +window.addEventListener('load', () => { form = document.getElementById('update'); let inputs = form.elements; for (const input of inputs) { @@ -87,7 +87,7 @@ window.onload = () => { window.onkeydown = keyboardHandler; window.onbeforeunload = confirmExit; -}; +}); /** * Manage a keyboardEvent diff --git a/src/home.js b/src/home.js new file mode 100644 index 0000000..b10e7c3 --- /dev/null +++ b/src/home.js @@ -0,0 +1,28 @@ +/** @type {HTMLInputElement[]} */ +let checkboxes = []; + +window.addEventListener('load', () => { + checkboxes = document.getElementsByName('id[]'); + let checkall = document.getElementById('checkall'); + let checkbox = document.createElement('input'); + checkbox.type = 'checkbox'; + checkbox.addEventListener('input', checkallHandler); + checkall.innerHTML = ''; + checkall.appendChild(checkbox); +}); + +/** + * Manage input event on the checkall checkbox. + * @param {InputEvent} e the input event + */ +function checkallHandler(e) { + if (e.target.checked) { + for (const checkbox of checkboxes) { + checkbox.checked = true; + } + } else { + for (const checkbox of checkboxes) { + checkbox.checked = false; + } + } +} -- cgit v1.2.3