mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[2.2.x] Fixed #30459 -- Delegated hide/show JS toggle to parent div.
Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es>
Backport of e286987a27 from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							08c8838727
						
					
				
				
					commit
					34a357d519
				
			| @@ -30,23 +30,26 @@ | ||||
|                 h2.appendChild(document.createTextNode(')')); | ||||
|             } | ||||
|         } | ||||
|         // Add toggle to anchor tag | ||||
|         var toggles = document.querySelectorAll('fieldset.collapse a.collapse-toggle'); | ||||
|         // Add toggle to hide/show anchor tag | ||||
|         var toggleFunc = function(ev) { | ||||
|             ev.preventDefault(); | ||||
|             var fieldset = closestElem(this, 'fieldset'); | ||||
|             if (fieldset.classList.contains('collapsed')) { | ||||
|                 // Show | ||||
|                 this.textContent = gettext('Hide'); | ||||
|                 fieldset.classList.remove('collapsed'); | ||||
|             } else { | ||||
|                 // Hide | ||||
|                 this.textContent = gettext('Show'); | ||||
|                 fieldset.classList.add('collapsed'); | ||||
|             if (ev.target.matches('.collapse-toggle')) { | ||||
|                 ev.preventDefault(); | ||||
|                 ev.stopPropagation(); | ||||
|                 var fieldset = closestElem(ev.target, 'fieldset'); | ||||
|                 if (fieldset.classList.contains('collapsed')) { | ||||
|                     // Show | ||||
|                     ev.target.textContent = gettext('Hide'); | ||||
|                     fieldset.classList.remove('collapsed'); | ||||
|                 } else { | ||||
|                     // Hide | ||||
|                     ev.target.textContent = gettext('Show'); | ||||
|                     fieldset.classList.add('collapsed'); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         for (i = 0; i < toggles.length; i++) { | ||||
|             toggles[i].addEventListener('click', toggleFunc); | ||||
|         var inlineDivs = document.querySelectorAll('fieldset.module'); | ||||
|         for (i = 0; i < inlineDivs.length; i++) { | ||||
|             inlineDivs[i].addEventListener('click', toggleFunc); | ||||
|         } | ||||
|     }); | ||||
| })(); | ||||
|   | ||||
| @@ -1,2 +1,3 @@ | ||||
| (function(){var e=function(a,b){return a.nodeName===b.toUpperCase()?a:"BODY"===a.parentNode.nodeName?null:a.parentNode&&e(a.parentNode,b)};window.addEventListener("load",function(){for(var a=document.querySelectorAll("fieldset.collapse"),b=0;b<a.length;b++){var c=a[b];if(0===c.querySelectorAll("div.errors").length){c.classList.add("collapsed");c=c.querySelector("h2");var d=document.createElement("a");d.setAttribute("id","fieldsetcollapser"+b);d.setAttribute("class","collapse-toggle");d.setAttribute("href", | ||||
| "#");d.textContent=gettext("Show");c.appendChild(document.createTextNode(" ("));c.appendChild(d);c.appendChild(document.createTextNode(")"))}}a=document.querySelectorAll("fieldset.collapse a.collapse-toggle");c=function(a){a.preventDefault();a=e(this,"fieldset");a.classList.contains("collapsed")?(this.textContent=gettext("Hide"),a.classList.remove("collapsed")):(this.textContent=gettext("Show"),a.classList.add("collapsed"))};for(b=0;b<a.length;b++)a[b].addEventListener("click",c)})})(); | ||||
| (function(){var e=function(b,a){return b.nodeName===a.toUpperCase()?b:"BODY"===b.parentNode.nodeName?null:b.parentNode&&e(b.parentNode,a)};window.addEventListener("load",function(){for(var b=document.querySelectorAll("fieldset.collapse"),a=0;a<b.length;a++){var c=b[a];if(0===c.querySelectorAll("div.errors").length){c.classList.add("collapsed");c=c.querySelector("h2");var d=document.createElement("a");d.setAttribute("id","fieldsetcollapser"+a);d.setAttribute("class","collapse-toggle");d.setAttribute("href", | ||||
| "#");d.textContent=gettext("Show");c.appendChild(document.createTextNode(" ("));c.appendChild(d);c.appendChild(document.createTextNode(")"))}}b=function(a){if(a.target.matches(".collapse-toggle")){a.preventDefault();a.stopPropagation();var b=e(a.target,"fieldset");b.classList.contains("collapsed")?(a.target.textContent=gettext("Hide"),b.classList.remove("collapsed")):(a.target.textContent=gettext("Show"),b.classList.add("collapsed"))}};c=document.querySelectorAll("fieldset.module");for(a=0;a<c.length;a++)c[a].addEventListener("click", | ||||
| b)})})(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user