aboutsummaryrefslogtreecommitdiff
path: root/src/fn/fn.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/fn/fn.js')
-rw-r--r--src/fn/fn.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/fn/fn.js b/src/fn/fn.js
new file mode 100644
index 0000000..bca4eaf
--- /dev/null
+++ b/src/fn/fn.js
@@ -0,0 +1,30 @@
+/**
+ * Manage input event on the checkall checkbox.
+ * Call with .bind({checkboxes: HTMLElement[]})
+ * @param {InputEvent} e the input event
+ */
+export function checkallHandler(e) {
+ if (e.target.checked) {
+ for (const checkbox of this.checkboxes) {
+ checkbox.checked = true;
+ }
+ } else {
+ for (const checkbox of this.checkboxes) {
+ checkbox.checked = false;
+ }
+ }
+}
+
+/**
+ * Close all submenus of the menubar.
+ * @param {MouseEvent} e
+ */
+export function closeSubmenus(e) {
+ let details = document.querySelectorAll('aside details');
+ let currentDetail = e.target.closest('details');
+ for (const detail of details) {
+ if (!detail.isSameNode(currentDetail)) {
+ detail.removeAttribute('open');
+ }
+ }
+}