1(function ($, Drupal) { 2 3 /** 4 * Date Range filter alteration . 5 * 6 * @todo: remove jquery from this. 7 */ 8 Drupal.behaviors.selectAll = { 9 attach: function (context, settings) { 10 var form = document.getElementById('views-exposed-form-calendar-calendar-block-universitycalendar'); 11 var form_news = document.getElementById('views-exposed-form-media-coverage-media-coverage-block-paginated'); 12 if (form != null) { 13 14 const urlParams = new URLSearchParams(window.location.search); 15 const myParam = urlParams.get('combine'); 16 const groupFilter = urlParams.get('group'); 17 if (myParam == '#studentlife') { 18 var studentEvent = document.querySelector('input[class*="table-view__input input combine"]'); 19 if (studentEvent != null) { 20 if (!document.body.classList.contains('studentEvent-filter-applied')) { 21 studentEvent.value = '#studentlife'; 22 document.querySelector('input[id*="edit-submit-calendar"]').click(); 23 document.body.classList.add('studentEvent-filter-applied'); 24 } 25 } 26 } 27 28 if (groupFilter != null) { 29 var selectlist = document.querySelector('select[id*="edit-field-group-rel-target-id"]'); 30 if (selectlist) { 31 selectlist.value = groupFilter; 32 if (!document.body.classList.contains('group-filter-applied')) { 33 var submitButton = document.querySelector('input[id*="edit-submit-calendar"]'); 34 if (submitButton) { 35 submitButton.click(); 36 document.body.classList.add('group-filter-applied'); 37 } 38 } 39 } 40 } 41 42 43 var calender_filter = document.querySelector('div[class="calender-filters"]'); 44 if (calender_filter && screen.width < 640) { 45 calender_filter.style.display = "none"; 46 } 47 48 $date_start_operator = document.querySelector('[id*="edit-field-date-range-value-op"]'); 49 $start_date = document.querySelector('[id*="edit-field-date-range-value-value"]'); 50 51 $date_end_operator = document.querySelector('[id*="edit-field-date-range-value-1-op"]'); 52 $end_date = document.querySelector('[id*="edit-field-date-range-value-1-value"]'); 53 54 if ($start_date && $date_start_operator && $date_end_operator && $end_date) { 55 $start_date.addEventListener('input', function (event) { 56 $date_start_operator.value = '>='; 57 $date_end_operator.value = '<='; 58 $start_date.value = $start_date.value; 59 $end_date.value = $start_date.value; 60 }); 61 } 62 63 var dateFilterSelect = form.querySelector('select[name="datefilter"]'); 64 if (dateFilterSelect && $date_start_operator && $date_end_operator && $start_date && $end_date) { 65 dateFilterSelect.addEventListener('change', function () { 66 const date = new Date(); 67 let mm = date.getMonth() + 1; // Months start at 0! 68 69 // Get Current date. 70 function getDateMonthValue(day) { 71 var day_value = '' + day; 72 return day_value = (day_value.length < 2) ? '0' + day_value : day_value 73 } 74 75 formatted_date = date.getFullYear() + '-' + getDateMonthValue(mm) + '-' + getDateMonthValue(date.getDate()) 76 77 // Get Current week's first day and last day. 78 let day = date.getDay(); 79 let weekFirstDay = date.getDate() - day + (day === 0 ? -6 : 1); 80 let weekLastDay = weekFirstDay + 6; 81 weekFirstDay = date.getFullYear() + '-' + getDateMonthValue(mm) + '-' + getDateMonthValue(weekFirstDay) 82 weekLastDay = date.getFullYear() + '-' + getDateMonthValue(mm) + '-' + getDateMonthValue(weekLastDay) 83 84 // get Current month's first day and last day. 85 let monthFirstDay = date.getFullYear() + '-' + getDateMonthValue(mm) + '-' + '01' 86 let monthLastDay = new Date(date.getFullYear(), date.getMonth() + 1); 87 monthLastDay = monthLastDay.toISOString().slice(0, 10); 88 89 var startDateCalender = document.querySelector('fieldset[id*="edit-field-date-range-value-wrapper"]'); 90 var endDateCalender = document.querySelector('fieldset[id*="edit-field-date-range-value-1-wrapper"]'); 91 if (startDateCalender) { 92 startDateCalender.style.display = "none"; 93 } 94 if (endDateCalender) { 95 endDateCalender.style.display = "none"; 96 } 97 switch (this.value) { 98 case 'today': 99 $date_start_operator.value = '>='; 100 $date_end_operator.value = '<='; 101 $start_date.value = formatted_date; 102 $end_date.value = formatted_date; 103 break; 104 105 case 'currentWeek': 106 $date_start_operator.value = '>='; 107 $date_end_operator.value = '<='; 108 $start_date.value = weekFirstDay; 109 $end_date.value = weekLastDay; 110 break; 111 112 case 'currentMonth': 113 $date_start_operator.value = '>='; 114 $date_end_operator.value = '<='; 115 $start_date.value = monthFirstDay; 116 $end_date.value = monthLastDay; 117 break; 118 119 case 'dateSingle': 120 $date_start_operator.value = '>='; 121 $date_end_operator.value = '<='; 122 if (startDateCalender) { 123 startDateCalender.style.display = "block"; 124 } 125 $start_date.value = $start_date.value; 126 $end_date.value = $start_date.value; 127 break; 128 129 case 'dateRange': 130 $date_start_operator.value = '>='; 131 $date_end_operator.value = '<='; 132 if (startDateCalender) { 133 startDateCalender.style.display = "block"; 134 } 135 if (endDateCalender) { 136 endDateCalender.style.display = "block"; 137 } 138 break; 139 140 default: 141 $date_start_operator.value = '>='; 142 $date_end_operator.value = '<='; 143 if (startDateCalender) { 144 startDateCalender.style.display = "none"; 145 } 146 if (endDateCalender) { 147 endDateCalender.style.display = "none"; 148 } 149 $start_date.value = ''; 150 $end_date.value = ''; 151 break; 152 } 153 }); 154 } 155 156 var audienceLabel = form.querySelector('label[for*="edit-audience"]'); 157 if (audienceLabel) { 158 audienceLabel.addEventListener('click', function (event) { 159 event.preventDefault(); 160 var audiencelist = document.querySelector('select[id*="edit-audience"]'); 161 if (audiencelist) { 162 var currentDisplay = window.getComputedStyle(audiencelist).display; 163 if (currentDisplay === "none") { 164 audiencelist.style.display = "block"; 165 } else { 166 audiencelist.style.display = "none"; 167 } 168 } 169 }); 170 } 171 172 var hamburger = form.querySelector('div[class*="hamburger"]'); 173 if (hamburger && calender_filter) { 174 hamburger.addEventListener('click', function () { 175 if (calender_filter.style.display === "none" || calender_filter.style.display === "") { 176 calender_filter.style.display = "block"; 177 hamburger.classList.add("active"); 178 } else { 179 calender_filter.style.display = "none"; 180 hamburger.classList.remove("active"); 181 } 182 }); 183 } 184 var resetButton = form.querySelector('input[id*="edit-reset"]'); 185 if (resetButton) { 186 resetButton.addEventListener('click', function (event) { 187 event.preventDefault(); 188 event.stopImmediatePropagation(); 189 // Redirect to the base calendar page without any parameters 190 window.location.href = '/news/calendar'; 191 return false;
192 }, true); 193 } 194 } 195 196 if (form_news != null) { 197 const date = document.querySelector('select[name="datefilter"]'); 198 if (date) { 199 const startDate = document.querySelector('.start_date'); 200 const endDate = document.querySelector('.end_date'); 201 202 // Set the start and end date values based on the value of date element 203 date.addEventListener('change', function () { 204 const dateValue = date.value.split('&'); 205 startDate.value = dateValue[0]; 206 endDate.value = dateValue[1]; 207 }); 208 } 209 } 210 var awardrecipients = document.getElementById('views-exposed-form-award-recipient-awardrecipients-block-awardrecipients'); 211 if (awardrecipients != null) { 212 let customResetbtn = document.getElementById("custom_reset_button"); 213 if (customResetbtn) { 214 customResetbtn.addEventListener('click', function (e) { 215 e.preventDefault(); 216 document.querySelector('#views-exposed-form-award-recipient-awardrecipients-block-awardrecipients input[id*="edit-reset"]').click(); 217 }); 218 } 219 } 220 } 221 }; 222 223})(jQuery, Drupal);
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.