Upload files to "js"

This commit is contained in:
daniele 2025-06-20 15:55:26 +00:00
parent b5f870a4ec
commit aa7398068a
5 changed files with 48949 additions and 0 deletions

75
js/cercafermata.js Normal file
View File

@ -0,0 +1,75 @@
function loadJSON(file, callback) {
fetch(file)
.then(response => response.json())
.then(data => callback(data))
.catch(error => console.error('Errore nel caricare il file JSON:', error));
}
function populateSearchResults(results, selectedOption) {
const searchResultsContainer = document.getElementById('searchResults');
searchResultsContainer.innerHTML = '';
if (results.length === 0) {
searchResultsContainer.innerHTML = '<p>Nessun risultato trovato</p>';
return;
}
results.forEach(item => {
const div = document.createElement('div');
div.className = 'search-result';
div.innerHTML = `
<div>
<h3>${item.nome}</h3>
<p>Palina: ${item.palina}, Target ID: ${item.targetID}</p>
</div>
`;
div.addEventListener('click', () => {
const url = `fermata.html?palina=${encodeURIComponent(item.palina)}&targetID=${encodeURIComponent(item.targetID)}&selectedOption=${encodeURIComponent(selectedOption)}`;
window.location.href = url;
});
searchResultsContainer.appendChild(div);
});
}
function filterOptions(query, data) {
return data.filter(item => item.nome.toLowerCase().includes(query.toLowerCase()));
}
let allOptions = [];
let currentSelectedOption = '';
const searchBar = document.getElementById('searchBar');
searchBar.addEventListener('input', function() {
const query = searchBar.value;
const filteredOptions = filterOptions(query, allOptions);
populateSearchResults(filteredOptions, currentSelectedOption);
});
document.getElementById('bacino').addEventListener('change', function(event) {
const selectedOption = event.target.value;
currentSelectedOption = selectedOption;
let file = '';
switch (selectedOption) {
case 'ra':
file = 'js/fermate-ra.json';
break;
case 'rn':
file = 'js/fermate-rn.json';
break;
case 'fc':
file = 'js/fermate-fc.json';
break;
default:
allOptions = [];
document.getElementById('searchResults').innerHTML = '';
return;
}
loadJSON(file, (data) => {
allOptions = data;
populateSearchResults(allOptions, currentSelectedOption);
});
});

58
js/fermata.js Normal file
View File

@ -0,0 +1,58 @@
const params = new URLSearchParams(window.location.search);
const palina = params.get('palina');
const targetID = params.get('targetID');
const selectedOption = params.get('selectedOption');
console.log(palina, targetID, selectedOption);
// Esempio URL backend che ritorna JSON { linea, destinazione, veicolo, soppressa }
const urlBackend = `http://URL-API/?param=${targetID}&param2=${selectedOption}&palina=${palina}`;
fetch(urlBackend)
.then(res => res.json())
.then(data => {
const container = document.getElementById('tabella-container');
container.innerHTML = '';
if (!data || data.length === 0) {
container.textContent = 'Nessun dato trovato.';
return;
}
// Creo tabella
const table = document.createElement('table');
// Intestazione
const thead = document.createElement('thead');
thead.innerHTML = `
<tr>
<th>Linea</th>
<th>Destinazione</th>
<th>Veicolo</th>
<th>Soppressa</th>
</tr>
`;
table.appendChild(thead);
// Corpo tabella
const tbody = document.createElement('tbody');
data.forEach(item => {
const tr = document.createElement('tr');
if (item.soppressa) {
tr.classList.add('bus-card-red');
}
tr.innerHTML = `
<td>${item.linea}</td>
<td>${item.destinazione}</td>
<td>${item.mezzo}</td>
<td>${item.soppressa ? 'Sì' : 'No'}</td>
`;
tbody.appendChild(tr);
});
table.appendChild(tbody);
container.appendChild(table);
})
.catch(err => {
console.error('Errore nel caricamento dati:', err);
document.getElementById('tabella-container').textContent = 'Errore nel caricamento dati.';
});

17192
js/fermate-fc.json Normal file

File diff suppressed because it is too large Load Diff

13737
js/fermate-ra.json Normal file

File diff suppressed because it is too large Load Diff

17887
js/fermate-rn.json Normal file

File diff suppressed because it is too large Load Diff