| |
| 'use strict'; |
| { |
| window.addEventListener('load', function() { |
| |
| const fieldsets = document.querySelectorAll('fieldset.collapse'); |
| for (const [i, elem] of fieldsets.entries()) { |
| |
| if (elem.querySelectorAll('div.errors, ul.errorlist').length === 0) { |
| elem.classList.add('collapsed'); |
| const h2 = elem.querySelector('h2'); |
| const link = document.createElement('a'); |
| link.id = 'fieldsetcollapser' + i; |
| link.className = 'collapse-toggle'; |
| link.href = '#'; |
| link.textContent = gettext('Show'); |
| h2.appendChild(document.createTextNode(' (')); |
| h2.appendChild(link); |
| h2.appendChild(document.createTextNode(')')); |
| } |
| } |
| |
| const toggleFunc = function(ev) { |
| if (ev.target.matches('.collapse-toggle')) { |
| ev.preventDefault(); |
| ev.stopPropagation(); |
| const fieldset = ev.target.closest('fieldset'); |
| if (fieldset.classList.contains('collapsed')) { |
| |
| ev.target.textContent = gettext('Hide'); |
| fieldset.classList.remove('collapsed'); |
| } else { |
| |
| ev.target.textContent = gettext('Show'); |
| fieldset.classList.add('collapsed'); |
| } |
| } |
| }; |
| document.querySelectorAll('fieldset.module').forEach(function(el) { |
| el.addEventListener('click', toggleFunc); |
| }); |
| }); |
| } |
|
|