From 61a83ed83672b33d74927e13b25b302d5c561f55 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 27 Apr 2026 22:55:23 +0100 Subject: [PATCH] feat: Refactor move series case selection logic with improved event handling and state synchronization --- atlas/templates/atlas/case_display_block.html | 91 +++++++++---------- 1 file changed, 43 insertions(+), 48 deletions(-) diff --git a/atlas/templates/atlas/case_display_block.html b/atlas/templates/atlas/case_display_block.html index 81076723..0dda7b82 100755 --- a/atlas/templates/atlas/case_display_block.html +++ b/atlas/templates/atlas/case_display_block.html @@ -493,6 +493,49 @@ Move selected series + {% else %}
Case move options are unavailable in this view.
{% endif %} @@ -1034,54 +1077,6 @@ detailsElement.addEventListener("toggle", toggleCheckboxes); } - const moveSeriesForm = document.getElementById("move-selected-series-form"); - if (moveSeriesForm) { - console.log("Move series form found, setting up event listeners"); - const hiddenInput = moveSeriesForm.querySelector("[name='destination_case']"); - const moveSubmitButton = document.getElementById("move-selected-series-submit"); - const selectionLabel = document.getElementById("selected-move-case"); - - function syncMoveSeriesSubmitState() { - if (!moveSubmitButton || !hiddenInput) { - return; - } - moveSubmitButton.disabled = !hiddenInput.value; - } - - function setSelectedDestination(casePk, caseTitle) { - if (!hiddenInput || !casePk) { - return; - } - - hiddenInput.value = casePk; - if (selectionLabel) { - selectionLabel.innerHTML = "Selected destination: " + caseTitle + " (" + casePk + ")"; - selectionLabel.classList.remove("text-muted"); - } - - syncMoveSeriesSubmitState(); - } - - // Mirror user_uploads pattern: listen at body level for case_search_widget selection events. - document.body.addEventListener("case:selected", async function(event) { - console.log("case:selected event received in case display block", event); - const detail = event.detail || {}; - if (!detail.casePk) { - return; - } - // Ignore case selections from other widgets on the page. - //if (!event.target || !event.target.closest("#move-selected-series-form")) { - // return; - //} - - const casePk = detail.casePk; - const caseTitle = detail.caseTitle || ("Case #" + casePk); - setSelectedDestination(casePk, caseTitle); - }); - - syncMoveSeriesSubmitState(); - } - const modal = new bootstrap.Modal(document.getElementById("findingModal")); const modalBody = document.getElementById("findingModalBody");