Enhance case search results: add data attributes for case identification and implement client-side removal of cases from search results after addition to collection

This commit is contained in:
Ross
2025-11-16 23:25:35 +00:00
parent 0193daf166
commit 712ecec25d
3 changed files with 46 additions and 4 deletions
+14 -1
View File
@@ -1169,7 +1169,20 @@ def add_case_to_collection(request, collection_id):
},
request=request,
)
return HttpResponse(rendered)
# Also instruct the client to remove this case from any visible search/recent lists
remove_script = (
'<script>'
'(function(){'
'try {'
"var pk = '%s';" % case.pk +
"document.querySelectorAll('#case-search-results [data-case-pk=\"' + pk + '\"]').forEach(function(el){ el.remove(); });" +
"document.querySelectorAll('#case-search-results input[name=\"case\"][value=\"' + pk + '\"]').forEach(function(inp){ var li = inp.closest('.list-group-item'); if (li) li.remove(); });" +
'} catch(e) { console.error("remove added case from search error", e); }'
'})();'
'</script>'
)
return HttpResponse(rendered + remove_script)
# if request.method == "POST":