1window.addEventListener("load", function(event) { 2 var multimediaJSON=[]; 3 fetch("/json/myhoover/all-multimedia") 4 .then(results => results.json()) 5 .then(data => { 6 multimediaJSON=data; 7 }); 8 var unpublishedPublication=[]; 9 fetch("/json/myhoover/all-multimedia-unpublished") 10 .then(results => results.json()) 11 .then(data => { 12 unpublishedPublication=data; 13 }); 14 15 var inactivePublication=[]; 16 fetch("/json/myhoover/all-multimedia-inactive") 17 .then(results => results.json()) 18 .then(data => { 19 inactivePublication=data; 20 }); 21 setTimeout(function () { 22 /* 23 Declare Algolia key 24 */ 25 const searchClient = algoliasearch( 26 '9TYF7RJUHQ', 27 '8f9bc807e8439d755c4fa23f113f99e7' 28 ); 29 30 /* 31 Define Algolia index 32 */ 33 const search = instantsearch({ 34 indexName: 'research_event_news', 35 searchClient, 36 }); 37 38 /* 39 Exclude publication from multimedia refinement 40 */ 41 function multimediaRefinment(){ 42 multimediaJSON 43 const list = document.querySelectorAll("#multimedia .ais-RefinementList-item"); 44 if(list.length>0){ 45 list.forEach(function(listitem){ 46 const listitemLabel=listitem.querySelector(".ais-RefinementList-labelText").textContent; 47 let flag=0; 48 multimediaJSON.forEach(function(jsonItem){ 49 const jsonLabel=jsonItem["title"].replace("&", "&").replace("'","'"); 50 if(listitemLabel==jsonLabel){ 51 flag=1; 52 } 53 }); 54 inactivePublication.forEach(function(jsonItem){ 55 const jsonInactiveLabel=jsonItem["title"].replace("&", "&").replace("'","'"); 56 unpublishedPublication.forEach(function(jsonItem){ 57 const jsonUnpublishedLabel=jsonItem["title"].replace("&", "&").replace("'","'"); 58 if(jsonUnpublishedLabel==listitemLabel||jsonInactiveLabel==listitemLabel){ 59 listitem.remove(); 60 } 61 }); 62 }); 63 if(flag==0){ 64 listitem.remove(); 65 } 66 }); 67 } 68 } 69 70 /* 71 Exclude multimedia from publication refinement 72 */ 73 function publicationRefinment(){ 74 multimediaJSON 75 const list = document.querySelectorAll("#publication .ais-RefinementList-item"); 76 if(list.length>0){ 77 list.forEach(function(listitem){ 78 const listitemLabel=listitem.querySelector(".ais-RefinementList-labelText").textContent; 79 multimediaJSON.forEach(function(jsonItem){ 80 const jsonLabel=jsonItem["title"].replace("&", "&").replace("'","'"); 81 inactivePublication.forEach(function(jsonItem){ 82 const jsonInactiveLabel=jsonItem["title"].replace("&", "&").replace("'","'"); 83 unpublishedPublication.forEach(function(jsonItem){ 84 const jsonUnpublishedLabel=jsonItem["title"].replace("&", "&").replace("'","'"); 85 if(listitemLabel==jsonLabel||jsonUnpublishedLabel==listitemLabel||jsonInactiveLabel==listitemLabel){ 86 listitem.remove(); 87 } 88 }); 89 }); 90 }); 91 }); 92 } 93 } 94 95 /* 96 After render 97 */ 98 const customafterResultFunction = () => { 99 setTimeout(() => { 100 if (document.body.contains(document.querySelector("#sectionType .ais-RefinementList-list"))) { 101 const fellow_type=document.querySelectorAll("#sectionType .ais-RefinementList-item"); 102 fellow_type.forEach(function(item){ 103 const filterValue=item.querySelector("input").value; 104 if(filterValue.indexOf("Blank Section")!=-1){ 105 item.classList.add("hide"); 106 } 107 }); 108 } 109 }, 1000); 110 } 111 const afterResultFunction = instantsearch.connectors.connectStats( 112 customafterResultFunction 113 ); 114 115 /* 116 Handle bookmark list 117 */ 118 function handleBookmark(id){ 119 const bookmarkJson= document.querySelectorAll(".we-user-choosed-bookmarks li"); 120 let nodeID = id.substring(id.indexOf("/") + 1); 121 nodeID=nodeID.split(':')[0]; 122 var icon=false; 123 bookmarkJson.forEach(function(ids){ 124 if(ids.textContent==nodeID){ 125 icon= true 126 } 127 }); 128 return icon; 129 } 130 131 /* 132 Provide node ID 133 */ 134 function handleNodeId(id){ 135 let nodeID = id.substring(id.indexOf("/") + 1); 136 nodeID=nodeID.split(':')[0]; 137 return nodeID; 138 } 139 140 /* 141 Cutomised content fetch 142 */ 143 var weFacet = []; 144 var weFacetFilters = []; 145 var we_user_choosed_values=document.querySelectorAll(".we-user-choosed-values-id ul"); 146 if(we_user_choosed_values.length>0){
147 we_user_choosed_values.forEach(function(item){ 148 const ID = item.getAttribute("id"); 149 const li=item.querySelectorAll("li"); 150 let taxonomy=""; 151 if(ID=="focus-areas-id"){ 152 taxonomy="focus_area_id"; 153 }else if(ID=="topics-id" || ID=="topics-child-id"){ 154 taxonomy="research_topic_id"; 155 }else if(ID=="publications-id" || ID=="multimedia-id"){ 156 taxonomy="publication_id"; 157 }else if(ID=="fellows-id"){ 158 taxonomy="author_id"; 159 } 160 if( 161 ID=="focus-areas-id" || 162 ID=="topics-id" || 163 ID=="topics-child-id" || 164 ID=="publications-id" || 165 ID=="multimedia-id" || 166 ID=="fellows-id" 167 ){ 168 li.forEach(function(itemChild){ 169 const text = itemChild.textContent; 170 weFacet.push(''+taxonomy+':"'+text+'"'); 171 }); 172 } 173 weFacetFilters=weFacet.join(" OR "); 174 if(weFacetFilters==""){ 175 weFacetFilters="show_result: false" 176 } 177 }); 178 } 179 function handleIndex(item){ 180 if(item.indexName==0 || item.indexName==1){ 181 return "hide"; 182 } 183 } 184 /* 185 Declare search widget 186 */ 187 search.addWidgets([ 188 /* 189 configure index 190 */ 191 instantsearch.widgets.configure({ 192 hitsPerPage: 2, 193 filters: weFacetFilters 194 }), 195 196 /* 197 HTML for result Item 198 */ 199 instantsearch.widgets.hits({ 200 container: '#tab-eight-hits', 201 transformItems(items) { 202 203 return items.map(item => ( 204 { 205 ...item, 206 indexName:item.indexName, 207 image: imageHandlerType(item.image, item.media_image, "/styles/410x410/public"), 208 research_type: handle_research_type_myhoover(item.research_type_name,item.content_type,item.research_category), 209 author: handleAuthors(item.author_url, item.author_title, item.contributors, item.contributors_label, item.contributors_url,item.editor_url, item.editor_title), 210 publications: handlePublicationWithUrl(item.publication, item.publication_id ,item.publication_event, item.publication_event_id), 211 date:dateconverterPublication(item.content_type, item.field_research_date, item.event_date, item.news_date), 212 content:handleBody(item.body, item.teaser_body, item.news_body), 213 editLink: handleEdit(item.objectID), 214 additional_author_name: item.content_type!="news_press"?additional_nameHandler(item.additional_author_name):"", 215 additional_contributor_name: item.content_type!="news_press"?additional_nameHandler(item.additional_contributor_name):"", 216 bookmark: handleBookmark(item.objectID)==true?"active":"", 217 nodeId:handleNodeId(item.objectID), 218 research_topic_name: typeof(item.research_topic_name)=="object"?item.research_topic_name[0]:item.research_topic_name 219 })); 220 }, 221 templates: { 222 item: ` 223 <div class="card-wrapper bg-gothic wow wefadeInUp "> 224 {{#editLink}}{{{editLink}}}{{/editLink}} 225 <a href="{{{url}}}"{{#external_article_url}}target="_blank"{{/external_article_url}}>.</a> 226 <div class="card-img"> 227 <img src="{{image}}" alt="{{title}}"> 228 </div> 229 <div class="card-content"> 230 <span class="{{#external_article_url}}external-link{{/external_article_url}}">{{researchType}}</span> 231 <h3 class="">{{{title}}}</h3> 232 <p class="is-truncated"> 233 {{{content}}} 234 </p> 235 <div class="author-info with-image row-reverse"> 236 <div class="name-date"> 237 <div class="author-on-hover"> 238 <span class="tooltip"></span> 239 </div> 240
241 <span class="name-tag author"> 242 {{#author}}{{{author}}}{{/author}} 243 {{#additional_author_name}}{{^author}}<span class="authors">by </span>{{/author}}{{#author}}<span class="additional-authors">,</span>{{/author}}{{/additional_author_name}}{{#additional_author_name}}<span class="additional-authors">{{additional_author_name}}</span>{{/additional_author_name}} 244 {{#additional_contributor_name}}{{^author}}<span class="authors">{{contributors_label}} </span>{{/author}}{{#author}}<span class="additional-authors">,</span>{{/author}}{{/additional_contributor_name}}{{#additional_contributor_name}}<span class="additional-authors">{{additional_contributor_name}}</span>{{/additional_contributor_name}} 245 </span> 246 <p class="ref-publication"> 247 {{#publisher}}<span>via {{publisher}}</span>{{/publisher}} 248 {{^publisher}}{{#publications}}<span>via {{{publications}}}</span>{{/publications}}{{/publisher}} 249 </p> 250 </div> 251 </div> 252 </div> 253 </div> 254 `, 255 empty: ` 256 <span><span> 257 `, 258 }, 259 }), 260 instantsearch.widgets 261 .index({ indexName: 'research_event_news' }) 262 .addWidgets([ 263 instantsearch.widgets.configure({ 264 hitsPerPage: 6, 265 filters: weFacetFilters 266 267 }), 268 instantsearch.widgets.hits({ 269 container: '#tab-four-hits', 270 transformItems(items) { 271 for(let i=0;i<items.length;i++){ 272 items[i]["indexName"]=i; 273 } 274 return items.map(item => ( 275 { 276 ...item, 277 hideItem: handleIndex(item), 278 image: imageHandlerType(item.image, item.media_image, "/styles/410x410/public"), 279 research_type: handle_research_type_myhoover(item.research_type_name,item.content_type,item.research_category), 280 author: handleAuthors(item.author_url, item.author_title, item.contributors, item.contributors_label, item.contributors_url,item.editor_url, item.editor_title), 281 publications: handlePublicationWithUrl(item.publication, item.publication_id ,item.publication_event, item.publication_event_id), 282 date:dateconverterPublication(item.content_type, item.field_research_date, item.event_date, item.news_date), 283 content:handleBody(item.body, item.teaser_body, item.news_body), 284 editLink: handleEdit(item.objectID), 285 additional_author_name: item.content_type!="news_press"?additional_nameHandler(item.additional_author_name):"", 286 additional_contributor_name: item.content_type!="news_press"?additional_nameHandler(item.additional_contributor_name):"", 287 bookmark: handleBookmark(item.objectID)==true?"active":"", 288 nodeId:handleNodeId(item.objectID), 289 research_topic_name: typeof(item.research_topic_name)=="object"?item.research_topic_name[0]:item.research_topic_name 290 })); 291 }, 292 templates: { 293 item: ` 294 <div class="small-card-wrapper wow wefadeInUp {{hideItem}}" > 295 <a href="{{{url}}}"{{#external_article_url}}target="_blank"{{/external_article_url}}>.</a> 296 <div class="small-card-content"> 297 <span class="{{#external_article_url}}external-link{{/external_article_url}}">{{researchType}}</span> 298 <h6>{{{title}}}</h6> 299 <div class="small-card-info"> 300 {{#editLink}}{{{editLink}}}{{/editLink}} 301 <div class="author-info without-image"> 302 <div class="name-date"> 303 <div class="author-on-hover"><div class="tooltip"></div></div>
304 <span class="name-tag contributors" > 305 {{#author}}{{{author}}}{{/author}} 306 {{#additional_author_name}}{{^author}}<span class="authors">by </span>{{/author}}{{#author}}<span class="additional-authors">,</span>{{/author}}{{/additional_author_name}}{{#additional_author_name}}<span class="additional-authors">{{additional_author_name}}</span>{{/additional_author_name}} 307 {{#additional_contributor_name}}{{^author}}<span class="authors">{{contributors_label}} </span>{{/author}}{{#author}}<span class="additional-authors">,</span>{{/author}}{{/additional_contributor_name}}{{#additional_contributor_name}}<span class="additional-authors">{{additional_contributor_name}}</span>{{/additional_contributor_name}} 308 </span> 309 </div> 310 311 <p class="publisher"> 312 {{#publisher}}<span>via {{publisher}}</span>{{/publisher}} 313 {{^publisher}}{{#publications}}<span>via {{{publications}}}</span>{{/publications}}{{/publisher}} 314 </p> 315 </div> 316 </div> 317 </div> 318 <div class="small-card-img"> 319 <img src="{{image}}" alt="{{title}}"> 320 </div> 321 </div> 322 `, 323 empty: ` 324 <span><span> 325 `, 326 } 327 }), 328 ]), 329 ]); 330 331 /* 332 Initiate algolia search 333 */ 334 search.start(); 335 336 337 },2500); 338}); 339
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.