1jQuery(document).ready(function($){ 2 //lazyload_init(); 3 var pageTitle = document.title; 4 var clickedFilters = []; 5 var usedNewsSearch = false; 6 /*check to see if any checkboxes were checked from the querystring 7 if so, add active class to show green dot. */ 8 $('.filter').each(function(i,item){ 9 if($(item).is(':checked')){ 10 $(this).parents('.tab-content').slideToggle(200).siblings('.accordion-tab').addClass('accordion-tab-active'); 11 } 12 }); 13 14 $(document).on('click','#show-filters',function(){ 15 $('#news-filters').toggleClass('visible'); 16 }); 17 18 $(document).on('click','.pseudo-checkbox-enabled',function(){ 19 $('#search-term').val(''); 20 //send analytics if it's the first time the user clicked the filter 21 var clickedItem = $(this).text(); 22 if($.inArray(clickedItem, clickedFilters) == -1) { 23 dataLayer.push({event:'newsFilter', 'eventCategory': 'News Filter', 'eventLabel': clickedItem}); 24 clickedFilters.push(clickedItem); 25 } 26 27 var accordion = $(this).parents('.tab-content').siblings('.accordion-tab'); 28 29 if($(this).children('span').hasClass('i_checkbox_empty')) { 30 if(!$(accordion).hasClass('accordion-tab-active')){ 31 $(accordion).addClass('accordion-tab-active'); 32 } 33 34 $(this).siblings('.filter').prop('checked',true); 35 $(this).children('span').addClass('i_checkbox_checked').removeClass('i_checkbox_empty'); 36 }else{ 37 $(this).siblings('.filter').prop('checked',false); 38 $(this).children('span').addClass('i_checkbox_empty').removeClass('i_checkbox_checked'); 39 40 var groupFilters = $(this).siblings('.filter').parent().parent().find('.filter'); 41 var groupStillChecked = false; 42 $.each(groupFilters,function(i,item){ 43 if($(item).is(':checked')){ 44 groupStillChecked = true; 45 }else{ 46 //nothing 47 } 48 }); 49 50 if(groupStillChecked == false) { 51 $(accordion).removeClass('accordion-tab-active'); 52 } 53 } 54 load_filters_news(true); 55 }); 56 57 $(document).on('click','#clear-filters',function(){ 58 clear_filters(); 59 }); 60 61 function load_filters_news(load_news){ 62 $('#news-list').removeClass('news-shown'); 63 //$('.loading').addClass('gif-shown'); 64 var checked_filters = []; 65 var filter_list = []; 66 //get all that are checked 67 $('.filter:checked').each(function () { 68 var newsname = $(this).attr('name').slice(0,-2); 69 var term_id = $(this).val(); 70 var term_info = [newsname, term_id]; 71 checked_filters.push(term_info); 72 }); 73 $('.filter').each(function () { 74 var term_id = $(this).val(); 75 filter_list.push(term_id); 76 }); 77 $.ajax({ 78 type: 'POST', 79 url: frontendajax.url, 80 data: { action: 'filter_news','filters':checked_filters, 'load_news':load_news, 'filter_list':filter_list, 'nonce':frontendajax.nonce }, 81 dataType: 'json', 82 }).done(function(response){ 83 //update filters 84 var filter_string = ''; 85 var filters_checked = {}; 86 for(key in response.selected_filters) { 87 var html = ''; 88 const filterContainer = document.getElementById('filter'+key); 89 filterContainer.innerHTML = ''; 90 $.each(response.selected_filters[key]['filters'], function(i,item){ 91 if (item.disabled){ 92 disabled = ' disabled'; 93 pseudo_state = ' pseudo-checkbox-disabled' 94 } else{ 95 disabled = ''; 96 pseudo_state = ' pseudo-checkbox-enabled'; 97 } 98 if(item.checked) { 99 checked_icon = 'i_checkbox_checked'; 100 input_checked = ' checked="checked"'; 101 102 if(typeof filters_checked[item.tax] === 'undefined') { 103 filters_checked[item.tax] = new Array(item.slug); 104 }else { 105 filters_checked[item.tax].push(item.slug); 106 } 107 }else{ 108 checked_icon = 'i_checkbox_empty'; 109 input_checked = ''; 110 } 111 html = `<label class="filter-item"><input type="checkbox" class="filter" name="${item.tax}[]" value="${item.id}"${input_checked}${disabled} /><a data-emacategory="newsFilter" data-emalabel="${item.name}" class="checkbox-item pseudo-checkbox ${pseudo_state}"><span class="${checked_icon}"></span>${item.name}</a></label>`; 112 filterContainer.insertAdjacentHTML('beforeend', html); 113 114 }); 115 116 117 } 118 querystrings = []; 119 $.each(filters_checked, function(key, value){ 120 querystrings.push(key+'='+value.join('|')); 121 }); 122 if(querystrings.length != 0) { 123 document.title = pageTitle; 124 }else{ 125 } 126 const tableContainer = document.getElementById('newsBody'); 127 tableContainer.innerHTML = ''; 128 //update news 129 var newsHtml = ''; 130 $.each(response.news, function(i,item){ 131 newsHtml = `<div class="column-container"><a href="${item.permalink}" data-emacategory="In-Page Navigation" data-emalabel="${item.title}"><div class="feature-image-container">${item.image}</div><h3>${item.title}</h3><p class="article-date">${item.date}</p><div class="col-content wysiwyg-content">${item.excerp}</div><p class="blue-link">Go to Page</p></a></div>`; 132 tableContainer.insertAdjacentHTML('beforeend', newsHtml); 133 }); 134 $('#news-list').addClass('news-shown'); 135 136 137 }); 138 } 139 140 $('#news-search').submit(function(e){ 141 e.preventDefault(); 142 var searchTerm = $('#search-term').val(); 143 //if(usedNewsSearch == false) { 144 dataLayer.push({event:'newsSearch', 'eventCategory': 'News Search', 'eventLabel': 'Search '+searchTerm}); 145 // usedNewsSearch = true; 146 //} 147 $('#news-list').removeClass('news-shown');
148 $('.loading').addClass('gif-shown'); 149 $('.filter').prop('checked',false); 150 $('.pseudo-checkbox').children('span').addClass('i_checkbox_empty').removeClass('i_checkbox_checked'); 151 $('.accordion-tab').removeClass('accordion-tab-active'); 152 153 154 if(searchTerm == '') { 155 clear_filters(); 156 return false; 157 } 158 nonce = $('#newsNonce').val(); 159 var filter_list = []; 160 $('.filter').each(function () { 161 var term_id = $(this).val(); 162 filter_list.push(term_id); 163 }); 164 $.ajax({ 165 type: 'POST', 166 url: frontendajax.url, 167 data: { action: 'search_news','s':searchTerm, 'filter_list': filter_list, 'newsNonce': nonce}, 168 dataType: 'json', 169 }).done(function( response ) { 170 const tableContainer = document.getElementById('newsBody'); 171 tableContainer.innerHTML = ''; 172 //update news 173 var newsHtml = ''; 174 $.each(response.news, function(i,item){ 175 newsHtml = `<div class="column-container"><a href="${item.permalink}" data-emacategory="In-Page Navigation" data-emalabel="${item.title}"><div class="feature-image-container">${item.image}</div><h3>${item.title}</h3><p class="article-date">${item.date}</p><div class="col-content wysiwyg-content">${item.excerp}</div><p class="blue-link">Go to Page</p></a></div>`; 176 tableContainer.insertAdjacentHTML('beforeend', newsHtml); 177 }); 178 $('#news-list').addClass('news-shown'); 179 180 document.title = pageTitle; 181 182 }); 183 }); 184 185 function clear_filters() { 186 $('#search-term').val(''); 187 $('.pseudo-checkbox-enabled').siblings('.filter').prop('checked',false); 188 $('.pseudo-checkbox-enabled').children('span').addClass('i_checkbox_empty').removeClass('i_checkbox_checked'); 189 $('.accordion-tab-active').removeClass('accordion-tab-active'); 190 document.title = pageTitle; 191 //newURL = window.location.protocol+'//'+window.location.host+window.location.pathname; 192 //History.replaceState({}, pageTitle, newURL); 193 load_filters_news(true); 194 195 } 196});
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.