1/** 2 * HW Geomap3 â Suchfilter Auf-/Zuklappen 3 * 4 * Verdrahtet den "Suchfilter"-Button (#hw_fe_search__extend) im Frontend der 5 * Karte (GeomapFrontend/Map.html): toggelt am zugehoerigen Panel die Klasse 6 * .hw_fe_search__extended--hidden und schaltet aria-expanded am Button. 7 * 8 * Warum ein eigener Handler? Der generische hwlib-Toggle 9 * (Resources/Public/Frontend/JavaScript/parts/hw11_fe_list.js) bindet per 10 * getElementById an die ID #hw11_fe_search__extend; das Geomap-Template rendert 11 * den Button aber als #hw_fe_search__extend (ohne "11"). Der hwlib-Handler 12 * greift dort also nie. Dieser Handler ist zudem multi-map-sicher: er bindet 13 * per KLASSE und loest das Panel ueber das umschliessende Formular auf, sodass 14 * mehrere Karten auf einer Seite (mit identischen, nicht instanz-spezifischen 15 * IDs) unabhaengig funktionieren. 16 * 17 * Wird via Map.html geladen: 18 * <f:asset.script src="EXT:hwgeomap3/Resources/Public/Js/hw_geomap_searchtoggle.js" defer="true"/> 19 */ 20(() => { 21 const initGeomapSearchToggle = () => { 22 const buttons = document.querySelectorAll('.hw_fe_search__extend'); 23 if (buttons.length === 0) return; 24 25 buttons.forEach((button) => { 26 const form = button.closest('.hw_fe_search__form'); 27 const controlsId = button.getAttribute('aria-controls'); 28 const panel = 29 (form && form.querySelector('.hw_fe_search__extended_wrap')) ||
30 (controlsId && document.getElementById(controlsId)); 31 if (!panel) return; 32 33 // Startzustand aus dem Panel ableiten (Template-Default = 34 // .hw_fe_search__extended--hidden). 35 const startHidden = panel.classList.contains('hw_fe_search__extended--hidden'); 36 button.setAttribute('aria-expanded', String(!startHidden)); 37 38 button.addEventListener('click', () => { 39 const hidden = panel.classList.toggle('hw_fe_search__extended--hidden'); 40 button.setAttribute('aria-expanded', String(!hidden)); 41 }); 42 }); 43 }; 44 45 if (document.readyState === 'loading') { 46 document.addEventListener('DOMContentLoaded', initGeomapSearchToggle); 47 } else { 48 initGeomapSearchToggle(); 49 } 50})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.