From 7880038d9577fb0a14a30d2f7fab9f25304d8fd1 Mon Sep 17 00:00:00 2001 From: tdro Date: Fri, 8 Mar 2024 14:01:03 -0500 Subject: static/js/forms: Handle child in summary details --- assets/js/index.js | 7 +++++-- static/js/forms.ts | 10 +++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/assets/js/index.js b/assets/js/index.js index e43c011..e8e307a 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -730,8 +730,11 @@ sessionStorage[details.id] === "false" && details.removeAttribute("open"); sessionStorage[details.id] === "true" && details.setAttribute("open", true); child.addEventListener("click", function(event) { - let details = event.target.parentElement; - sessionStorage[details.id] = !details.open; + let child = event.target.nodeName === "SUMMARY" && event.target || event.target.parentElement; + let details = child.parentElement; + if (details.id && details.nodeName === "DETAILS") { + sessionStorage[details.id] = !details.open; + } }); } } diff --git a/static/js/forms.ts b/static/js/forms.ts index e35a4b2..4784b20 100644 --- a/static/js/forms.ts +++ b/static/js/forms.ts @@ -58,11 +58,15 @@ if (details.id && details.nodeName === "DETAILS") { sessionStorage[details.id] === "false" && details.removeAttribute("open"); - sessionStorage[details.id] === "true" && details.setAttribute("open", true); + sessionStorage[details.id] === "true" && details.setAttribute("open", true); child.addEventListener("click", function (event) { - let details = event.target.parentElement; - sessionStorage[details.id] = !details.open; + let child = (event.target.nodeName === "SUMMARY" && event.target) + || event.target.parentElement; + let details = child.parentElement; + if (details.id && details.nodeName === "DETAILS") { + sessionStorage[details.id] = !details.open; + } }); } } -- cgit v1.2.3