1class MegaMenu { 2 constructor(selector) { 3 this.level_1 = document.querySelector(selector + " .level_1 "); 4 this.level_1_links = []; 5 this._get_level_1_link(); 6 } 7 handle() { 8 console.debug(this.level_2_elements); 9 this._setupEvents(); 10 } 11 12 _get_level_1_link() { 13 this.level_1_links = Array.from( 14 this.level_1.querySelectorAll("& > li > a"), 15 ); 16 } 17 18 _open_level_2(level2Target) { 19 const targetParent = level2Target.parentElement; 20 targetParent.classList.add("visible"); 21 } 22 _close_level_2s() { 23 this.level_1_links.forEach((element) => { 24 element.parentElement.classList.remove("visible"); 25 }); 26 } 27 28 _setupEvents() { 29 this._level_1_link_event() 30 this._esc_event() 31 this._click_outside_event() 32 } 33 _level_1_link_event() { 34 this.level_1_links.forEach((level_1_link) => { 35 level_1_link.addEventListener("click", (event) => { 36 event.preventDefault(); 37 this._close_level_2s(); 38 this._open_level_2(event.target); 39 }); 40 }); 41 } 42 43 /* esc key cloeses everything */ 44 _esc_event() { 45 document.addEventListener("keydown", (event) => { 46 if (event.key === "Escape") { 47 this._close_level_2s(); 48 } 49 }); 50 } 51 52 /* click outside of navigation closes everything */ 53 _click_outside_event() { 54 document.addEventListener("click", (event) => { 55 if (!this.level_1.contains(event.target)) { 56 this._close_level_2s(); 57 } 58 }); 59 } 60} 61 62function showHideStartDateField(pBSelect) { 63 let startDatumInput = document.querySelector("[name=praktikum_startdatum]"); 64 if (pBSelect.value == "4") { 65 let todayDate = new Date(); 66 startDatumInput.parentNode.classList.add("visible"); 67 /* setzt das datum bei leer und bei standardwert auf heute */ 68 if (startDatumInput.value == "" || startDatumInput.value == "01.01.1970") { 69 startDatumInput.value = 70 String(todayDate.getDate()).padStart(2, "0") + 71 "." + 72 String(todayDate.getMonth() + 1).padStart(2, "0") + 73 "." + 74 todayDate.getFullYear(); 75 } 76 } else { 77 /* bei nichtauswahl des beginns (z.b. permant) dann wird standardwert gesetzt */ 78 if (startDatumInput && startDatumInput.parentNode) { 79 startDatumInput.parentNode.classList.remove("visible"); 80 if (startDatumInput.value !== "") { 81 startDatumInput.value = "01.01.1970"; 82 } 83 } 84 } 85} 86 87document.addEventListener("DOMContentLoaded", function (documentEvent) { 88 let pB = document.querySelector("[name=praktikum_begin]"); 89 if (pB !== null) { 90 pB.addEventListener("change", (event) => { 91 showHideStartDateField(event.target); 92 }); 93 94 /* initial show oder hide */ 95 showHideStartDateField(pB); 96 } 97 98 //const selection = event.target.value.substring(event.target.selectionStart, event.target.selectionEnd); 99 100 let pA = document.querySelector("[name=praktikum_art]"); 101 102 if (pA !== null) { 103 if (pA.value === "5") { 104 document 105 .querySelector(".widget.laenge-praktikum") 106 .classList.add("hidden"); 107 document 108 .querySelector(".widget.laenge-lehrstelle") 109 .classList.remove("hidden"); 110 } 111 112 pA.addEventListener("change", function (event) { 113 if (["1", "2", "3", "4"].includes(event.target.value)) { 114 document 115 .querySelector(".widget.laenge-lehrstelle") 116 .classList.add("hidden"); 117 document 118 .querySelector(".widget.laenge-praktikum") 119 .classList.remove("hidden"); 120 } else { 121 document 122 .querySelector(".widget.laenge-lehrstelle") 123 .classList.remove("hidden"); 124 document 125 .querySelector(".widget.laenge-praktikum") 126 .classList.add("hidden"); 127 } 128 }); 129 } 130 const mm = new MegaMenu("#mainmenu"); 131 mm.handle(); 132});
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.