1window.onload = function getFiltersByUrl() { 2 3 let url = new URL(window.location.href); 4 5 let parameters = new URLSearchParams(url.search); 6 7 let searchParams = new URLSearchParams(); 8 9 let tagMap = new URLSearchParams(); 10 let noTagMap = new URLSearchParams(); 11 12 if(parameters && parameters.toString().includes("corr=true")){ 13 for(let [key,value] of parameters.entries()){ 14 if(key.includes("territorio-corr") || key.includes("argomento-corr") || key.includes("keywords-corr") || key.includes("target-corr") || value=="true"){ 15 tagMap.append(key,value); 16 } 17 else{ 18 noTagMap.append(key,value); 19 } 20 } 21 } 22 23 // if(parameters!=null){ 24 // for(let [key,value] of parameters.entries()){ 25 // if(!key.includes('text') && !key.includes('startDate') && !key.includes('endDate') && !value.includes()){ 26 // searchParams.append(key,value); 27 // } 28 // } 29 // } 30 let tagMapSize = Array.from(tagMap.entries()).length; 31 console.log("NUMERO PARAMETRI RICERCA: " + tagMapSize) 32 33 if( url.search.includes("corr=true")) 34 { 35 document.getElementById("boxTags").classList.remove("hide--boxFiltri"); 36 console.log("PARAMETRI: " + tagMap) 37 } 38 39 //aggiungere controllo per esistenza di soli searchParams non tag e non farli cancellare al click della X 40 //controllo per esistenza di entrambi i searchParams e cancellazione di quelli tag 41 42 function formatString(str) { 43 let excludedWords = ['e']; 44 let formattedStr = str.toLowerCase(); 45 46 if (formattedStr.includes('/')) { 47 let parts = formattedStr.split('/'); 48 formattedStr = parts[parts.length - 1].trim(); 49 } 50 51 formattedStr = formattedStr.replace(/-/g, ' '); 52 53 formattedStr = formattedStr 54 .split(' ') 55 .map((word, index) => { 56 if (index === 0 || !excludedWords.includes(word)) { 57 return word.charAt(0).toUpperCase() + word.slice(1); 58 } else { 59 return word; 60 } 61 }) 62 .join(' '); 63 64 return formattedStr; 65 } 66 67 let paramValues = {}; 68 69 for (let [param, value] of tagMap) { 70 if (param !== 'page' && param !== 'corr') { 71 let values = value.split(','); 72 let formattedParam = param.charAt(0).toUpperCase() + param.slice(1).replace(/-/g, ' '); 73 paramValues[formattedParam] = values; 74 } 75 } 76 77 let boxTags = document.getElementById("boxTags") 78 let tagsDiv = document.getElementById('tags'); 79 let content = document.createElement('p'); 80 81 let removeTag = document.createElement('a'); 82 removeTag.setAttribute('title', 'Rimuovi tutti i filtri'); 83 removeTag.setAttribute('href', ''); 84 removeTag.classList.add('pulisciTag') 85 removeTag.setAttribute('data-toggle', 'modal'); 86 removeTag.setAttribute('data-target', '#exampleModal'); 87 removeTag.innerText = '(X)'; 88 89 if(document.getElementById("save")){ 90 let removeSave = document.getElementById("save") 91 removeSave.addEventListener('click', function(event) { 92 93 boxTags.classList.add('hide--boxFiltri'); 94 95 event.preventDefault(); 96 97 console.log("NO TAG PARAMETERS: " + noTagMap); 98 99 window.location.search = noTagMap; 100 101 }); 102 } 103 104 105 let strong = document.createElement('strong'); 106 strong.innerText = 'Contenuti correlati per: '; 107 content.appendChild(strong); 108 109 let allValues = []; 110 for (let param in paramValues) { 111 let values = paramValues[param]; 112 for (let value of values) { 113 let formattedValue = formatString(value.replace(/-/g, ' ')); 114 allValues.push(formattedValue); 115 } 116 } 117 118 if (allValues.length > 0) { 119 let p = document.createElement('span'); 120 p.innerText = allValues.join(', '); 121 content.appendChild(p); 122 } 123 124 if(tagsDiv){ 125 tagsDiv.appendChild(content); 126 } 127 128 content.appendChild(removeTag); 129 130 }; 131
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.