Compare commits

..

2 Commits

Author SHA1 Message Date
Leocraft1
0af68b8c23 https 2025-08-25 18:15:09 +02:00
Leocraft1
daeb9f00e2 Alphissima percorsi seta (accessibile solo dal monitor in servizio) 2025-08-25 18:11:39 +02:00
12 changed files with 242 additions and 188 deletions

View File

@@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ER-TPL</title> <title>ER-TPL</title>
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="/style.css">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap" rel="stylesheet">

View File

@@ -22,7 +22,6 @@
</nav> </nav>
</header> </header>
<h2>Informazioni veicolo numero: <span id="numero-span"></span></h2> <h2>Informazioni veicolo numero: <span id="numero-span"></span></h2>
<nav id="corsie-nav"></nav>
<div id="tabella-container">Caricamento dati...</div> <div id="tabella-container">Caricamento dati...</div>
<footer> <footer>
<div> <div>

View File

@@ -123,7 +123,7 @@ function caricadati(){
tr.innerHTML = ` tr.innerHTML = `
<tr> <tr>
<td>Codice percorso:</td> <td>Codice percorso:</td>
<td>${bus.route_code}</td> <td><a href="/seta_menu/percorsi/percorso.html?routecode=${bus.route_code}" class="bianco">${bus.route_code}</a></td>
</tr> </tr>
`; `;
tbody.appendChild(tr); tbody.appendChild(tr);
@@ -131,7 +131,7 @@ function caricadati(){
tr.innerHTML = ` tr.innerHTML = `
<tr> <tr>
<td>Codice corsa:</td> <td>Codice corsa:</td>
<td>${bus.journey_code}</td> <td><a href="/seta_menu/percorsi/prossimefermate.html?journeycode=${bus.journey_code}" class="bianco">${bus.journey_code}</a></td>
</tr> </tr>
`; `;
tbody.appendChild(tr); tbody.appendChild(tr);

View File

@@ -38,6 +38,10 @@ th,td {
text-align: left; text-align: left;
} }
td.uguale{
width: 50%;
}
.bus-card-red { .bus-card-red {
background-color: rgb(241, 120, 120) !important; background-color: rgb(241, 120, 120) !important;
} }
@@ -79,6 +83,11 @@ nav {
flex-shrink: 0; flex-shrink: 0;
} }
nav.index{
display: flex;
min-height: 46px;
}
nav#corsie-nav ul{ nav#corsie-nav ul{
justify-content: center; justify-content: center;
} }
@@ -124,21 +133,11 @@ a.link-cell {
color: white; color: white;
} }
#bacino, #urbano-container{
#searchBar { display: flex;
padding: 10px; justify-content: center;
font-size: 16px;
border-radius: 6px;
border: 1px solid var(--border-color);
width: 280px;
}
#stopCodeBar {
padding: 10px;
font-size: 16px;
border-radius: 6px;
border: 1px solid var(--border-color);
width: 280px;
} }
img{ img{
height:300px; height:300px;
} }

View File

@@ -25,24 +25,31 @@
</ul> </ul>
</nav> </nav>
</header> </header>
<h1>No</h1> <h1>Visualizzatore percorsi SETA Modena</h1>
<h2>No:</h2> <h2>Scegli una linea:</h2>
<div style="display: flex;justify-content: center;"> <h2>Urbano:</h2>
<div class="search-result"><h3>No</h3></div> <div id="urbano-container">
<div class="search-result"><h3>No</h3></div> <a href="" class="bianco"><div class="search-result"><h3>1</h3></div></a>
<div class="search-result"><h3>No</h3></div> <div class="search-result"><h3>2</h3></div>
<div class="search-result"><h3>3</h3></div>
<div class="search-result"><h3>4</h3></div>
<div class="search-result"><h3>5</h3></div>
<div class="search-result"><h3>6</h3></div>
<div class="search-result"><h3>7</h3></div>
<div class="search-result"><h3>8</h3></div>
<div class="search-result"><h3>9</h3></div>
<div class="search-result"><h3>10</h3></div>
<div class="search-result"><h3>11</h3></div>
<div class="search-result"><h3>12</h3></div>
<div class="search-result"><h3>13</h3></div>
<div class="search-result"><h3>14</h3></div>
<div class="search-result"><h3>15</h3></div>
</div> </div>
<footer>
<div>
<p>No.</p>
</div>
</footer>
<!--
<footer> <footer>
<div> <div>
<p>Copyright (C) 2025 ER-TPL Team - <a href="https://ertpl.pages.dev" target="_blank">ertpl.pages.dev</a> - code by Il Dani & SetaModenaFanpage <a href="https://github.com/Leocraft1/SetaAPI" target="_blank">Codice Sorgente</a> - I loghi SETA Spa sono marchi registrati e sono inseriti in questo sito solo a scopo di illustrazione.</p> <p>Copyright (C) 2025 ER-TPL Team - <a href="https://ertpl.pages.dev" target="_blank">ertpl.pages.dev</a> - code by Il Dani & SetaModenaFanpage <a href="https://github.com/Leocraft1/SetaAPI" target="_blank">Codice Sorgente</a> - I loghi SETA Spa sono marchi registrati e sono inseriti in questo sito solo a scopo di illustrazione.</p>
</div> </div>
</footer> </footer>
--> <script src="js/script.js"></script>
</body> </body>
</html> </html>

View File

@@ -1,11 +1,12 @@
const params = new URLSearchParams(window.location.search); const params = new URLSearchParams(window.location.search);
const id = params.get('id'); const id = params.get('routecode');
const codiceSpan = document.getElementById('codice-span');
const destSpan = document.getElementById('destinazione-span');
//Sets stop name //Displays route code
const numero_span = document.getElementById('numero-span'); codiceSpan.innerHTML = id;
numero_span.textContent=id;
const urlBackend = `https://setaapi.serverissimo.freeddns.org/vehicleinfo/${id}`; const urlBackend = `https://setaapi.serverissimo.freeddns.org/routestops/${id}`;
//const urlBackend = `http://localhost:5001/arrivals/${codice}`; //const urlBackend = `http://localhost:5001/arrivals/${codice}`;
function caricadati(){ function caricadati(){
var item=[]; var item=[];
@@ -18,7 +19,6 @@ function caricadati(){
item = data; item = data;
}) })
.then(data => { .then(data => {
const container = document.getElementById('tabella-container'); const container = document.getElementById('tabella-container');
container.innerHTML = ''; container.innerHTML = '';
// Creo tabella // Creo tabella
@@ -28,165 +28,27 @@ function caricadati(){
const thead = document.createElement('thead'); const thead = document.createElement('thead');
thead.innerHTML = ` thead.innerHTML = `
<tr> <tr>
<th class="linea" colspan="2" style="text-align:center;">Informazioni veicolo:</th> <th class="linea" style="text-align:center;">Nome:</th>
<th class="linea" style="text-align:center;">Codice:</th>
</tr> </tr>
`; `;
table.appendChild(thead); table.appendChild(thead);
// Corpo tabella // Corpo tabella
const tbody = document.createElement('tbody'); const tbody = document.createElement('tbody');
item.features.forEach(element => { item.features.forEach(item => {
const bus = element.properties; const element = item.properties;
var tr = document.createElement('tr'); var tr = document.createElement('tr');
tr.innerHTML = ` tr.innerHTML = `
<tr> <tr>
<td class="uguale">Linea:</td> <td class="uguale"><a href="/seta_menu/cercaorario/fermata.html?code=${element.code}&name=${element.desc}" class="bianco">${element.desc}</a></td>
<td class="uguale">${bus.linea}</td> <td class="uguale"><a href="/seta_menu/cercaorario/fermata.html?code=${element.code}&name=${element.desc}" class="bianco">${element.code}</a></td>
</tr> </tr>
`; `;
tbody.appendChild(tr); tbody.appendChild(tr);
tr = document.createElement('tr'); if(element.islast==true){
tr.innerHTML = ` destSpan.innerHTML=element.desc;
<tr>
<td>Direzione:</td>
<td>${bus.route_desc}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Tipo linea:</td>
<td>${bus.service_tag}</td>
</tr>
`;
tbody.appendChild(tr);
//Ritardo col +
if(bus.delay>0){
bus.delay="+"+bus.delay;
} }
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Ritardo/Anticipo: (+/-)</td>
<td>${bus.delay}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Numero mezzo:</td>
<td>${bus.vehicle_code}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Modello:</td>
<td>${bus.model}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Targa:</td>
<td>${bus.plate_num}</td>
</tr>
`;
tbody.appendChild(tr);
//Si o no pedana
if(bus.pedana==1){
bus.pedana="Sì";
}else{
bus.pedana="No";
}
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Pedana?:</td>
<td>${bus.pedana}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Ora si trova a:</td>
<td>${bus.next_stop}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Codice percorso:</td>
<td>${bus.route_code}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Codice corsa:</td>
<td>${bus.journey_code}</td>
</tr>
`;
tbody.appendChild(tr);
//Colore sfondo conta passeggeri
if(bus.num_passeggeri<=bus.posti_totali/4){
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td class="bus-card-green">Numero passeggeri a bordo:</td>
<td class="bus-card-green">${bus.num_passeggeri}</td>
</tr>
`;
}else if(bus.num_passeggeri<=bus.posti_totali/1.8){
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td class="bus-card-yellow">Numero passeggeri a bordo:</td>
<td class="bus-card-yellow">${bus.num_passeggeri}</td>
</tr>
`;
}else{
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td class="bus-card-red">Numero passeggeri a bordo:</td>
<td class="bus-card-red">${bus.num_passeggeri}</td>
</tr>
`;
}if(bus.num_passeggeri==null){
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Numero passeggeri a bordo:</td>
<td>Non disponibile</td>
</tr>
`;
}
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Numero posti totali (in piedi + sedili):</td>
<td>${bus.posti_totali}</td>
</tr>
`;
tbody.appendChild(tr);
tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td>Posizione:</td>
<td><a href="https://wimb.setaweb.it/qm/index.html?id=${bus.vehicle_code}">GPS</a></td>
</tr>
`;
tbody.appendChild(tr);
}); });
table.appendChild(tbody); table.appendChild(tbody);
container.appendChild(table); container.appendChild(table);
@@ -198,5 +60,3 @@ function caricadati(){
} }
caricadati(); caricadati();
setInterval(caricadati, 60000);

View File

@@ -0,0 +1,86 @@
const params = new URLSearchParams(window.location.search);
const id = params.get('journeycode');
const codiceSpan = document.getElementById('codice-span');
const destSpan = document.getElementById('destinazione-span');
const ritSpan = document.getElementById('ritardo-span');
//Displays route code
codiceSpan.innerHTML = id;
const urlBackend = `https://setaapi.serverissimo.freeddns.org/nextstops/${id}`;
//const urlBackend = `http://localhost:5001/arrivals/${codice}`;
function caricadati(){
var item=[];
fetch(urlBackend)
.then(response => {
if (!response.ok) throw new Error("Errore di risposta nel caricamento dei dati, probabilmente il server API è offline.");
return response.json();
})
.then(data => {
item = data;
})
.then(data => {
const container = document.getElementById('tabella-container');
container.innerHTML = '';
//Testo destinazione
destSpan.innerHTML=item.arrivals[item.arrivals.length-1].desc;
//Testo ritardo
if(item.arrivals[0].delay>0){
ritSpan.setAttribute("style","color:rgba(255, 50, 50, 1);")
ritSpan.innerHTML="+"+item.arrivals[0].delay;
}else{
ritSpan.setAttribute("style","color:green;")
ritSpan.innerHTML=item.arrivals[0].delay;
}
item.arrivals.forEach(element => {
// Creo tabella
const table = document.createElement('table');
// Intestazione
const thead = document.createElement('thead');
thead.innerHTML = `
<tr>
<th class="linea" style="text-align:center;" colspan="2"><a href="/seta_menu/cercaorario/fermata.html?code=${element.wp_code}&name=${element.desc}" class="bianco">${element.desc}</a></th>
</tr>
`;
table.appendChild(thead);
// Corpo tabella
const tbody = document.createElement('tbody');
var tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td class="uguale">Orario previsto:</td>
<td class="uguale">${element.planarrival}</td>
</tr>
`;
tbody.appendChild(tr);
var tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td class="uguale">Orario in tempo reale:</td>
<td class="uguale">${element.realarrival}</td>
</tr>
`;
tbody.appendChild(tr);
var tr = document.createElement('tr');
tr.innerHTML = `
<tr>
<td class="uguale">Codice fermata:</td>
<td class="uguale">${element.wp_code}</td>
</tr>
`;
tbody.appendChild(tr);
table.appendChild(tbody);
container.appendChild(table);
});
})
.catch(err => {
console.error('Errore nel caricamento dati:', err);
document.getElementById('tabella-container').textContent = "Errore nella sintassi dei dati ricevuti.";
});
}
caricadati();
setInterval(caricadati, 60000);

View File

@@ -0,0 +1,22 @@
const uContainer = document.getElementById('urbano-container');
const url = "https://setaapi.serverissimo.freeddns.org/routenumberslist";
//Elenco linee urbano
fetch(url)
.then(response => {
if (!response.ok) throw new Error("Errore nel caricamento dei dati.");
return response.json();
})
.then(data => {
allresults = data;
allresults.forEach(element => {
const result = document.createElement('a');
result.setAttribute("class","bianco");
result.innerHTML = `
<div class="search-result"><h3>${element}</h3>
`;
uContainer.appendChild(option);
});
})
.catch(error => console.error('Errore nel caricamento dei dati:', error));

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SETA Modena - Orario fermate</title>
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="https://www.setaweb.it/images/favicon/android-icon-192x192.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap" rel="stylesheet">
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/index.html"><h1 style="font-size: 100%;font-weight: 500;">Home</h1></a></li>
<li><a href="/service/pagenotavailable.html"><h1 style="font-size: 100%;font-weight: 500;">Selettore linea</h1></a></li>
<li><a href="/service/pagenotavailable.html"><h1 style="font-size: 100%;font-weight: 500;">Selettore percorso</h1></a></li>
</ul>
</nav>
</header>
<h2>Lista fermate linea: <span id="codice-span"></span></h2>
<p>Direzione: <span id="destinazione-span"></span></p>
<p>E' possibile cliccare sul codice o nome fermata per vedere gli arrivi alla rispettiva fermata.</p>
<div id="tabella-container">Caricamento dati...</div>
<footer>
<div>
<p>Copyright (C) 2025 ER-TPL Team - <a href="https://ertpl.pages.dev" target="_blank">ertpl.pages.dev</a> - code by Il Dani & SetaModenaFanpage <a href="https://github.com/Leocraft1/SetaAPI" target="_blank">Codice Sorgente</a> - I loghi SETA Spa sono marchi registrati e sono inseriti in questo sito solo a scopo di illustrazione.</p>
</div>
</footer>
<script src="js/linea.js"></script>
</body>
</html>

View File

@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SETA Modena - Orario fermate</title>
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="https://www.setaweb.it/images/favicon/android-icon-192x192.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap" rel="stylesheet">
</head>
<body>
<header>
<nav style="display: flex;">
<ul>
<li><a href="/seta_menu/businservizio/index.html"><h1 style="font-size: 100%;font-weight: 500;">Monitor bus in servizio</h1></a></li>
</ul>
<ul style="flex:1;justify-content: right;">
<li><a href=""><h1 style="font-size: 100%;font-weight: 500;">Aggiorna</h1></a></li>
</ul>
</nav>
</header>
<h2>Lista prossime fermate corsa: <span id="codice-span"></span></h2>
<p>Direzione: <span id="destinazione-span"></span></p>
<strong><p>Ritardo/Anticipo: <span id="ritardo-span"></span></p></strong>
<p>E' possibile cliccare sul codice o nome fermata per vedere gli arrivi alla rispettiva fermata.</p>
<div id="tabella-container">Caricamento dati...</div>
<footer>
<div>
<p>Copyright (C) 2025 ER-TPL Team - <a href="https://ertpl.pages.dev" target="_blank">ertpl.pages.dev</a> - code by Il Dani & SetaModenaFanpage <a href="https://github.com/Leocraft1/SetaAPI" target="_blank">Codice Sorgente</a> - I loghi SETA Spa sono marchi registrati e sono inseriti in questo sito solo a scopo di illustrazione.</p>
</div>
</footer>
<script src="js/percorso-rt.js"></script>
</body>
</html>

View File

@@ -49,6 +49,7 @@
<div> <div>
<a class="gbutton" href="cercaorario/index.html">Orari in tempo reale</a> <a class="gbutton" href="cercaorario/index.html">Orari in tempo reale</a>
<a class="gbutton" href="businservizio/index.html">Monitor autobus in servizio (BETA)</a> <a class="gbutton" href="businservizio/index.html">Monitor autobus in servizio (BETA)</a>
<a class="gbutton" href="/service/pagenotavailable.html">Percorsi (Accessibile solo dal monitor bus in servizio)</a>
</div> </div>
</div> </div>
<div style="height: 65px;"></div> <div style="height: 65px;"></div>

View File

@@ -88,7 +88,7 @@
<url> <url>
<loc>https://ertpl.pages.dev/seta_menu/seta.html</loc> <loc>https://ertpl.pages.dev/seta_menu/seta.html</loc>
<priority>0.60</priority> <priority>0.60</priority>
<lastmod>2025-08-22</lastmod> <lastmod>2025-08-25</lastmod>
</url> </url>
<url> <url>
<loc>https://ertpl.pages.dev/seta_menu/radiatimenu.html</loc> <loc>https://ertpl.pages.dev/seta_menu/radiatimenu.html</loc>
@@ -438,7 +438,7 @@
<url> <url>
<loc>https://ertpl.pages.dev/seta_menu/businservizio/infoveicolo.html</loc> <loc>https://ertpl.pages.dev/seta_menu/businservizio/infoveicolo.html</loc>
<priority>0.40</priority> <priority>0.40</priority>
<lastmod>2025-08-20</lastmod> <lastmod>2025-08-25</lastmod>
</url> </url>
<url> <url>
<loc>https://ertpl.pages.dev/setamodena_bus/urbano/uwfacelift.html</loc> <loc>https://ertpl.pages.dev/setamodena_bus/urbano/uwfacelift.html</loc>
@@ -675,4 +675,14 @@
<priority>0.40</priority> <priority>0.40</priority>
<lastmod>2025-07-12</lastmod> <lastmod>2025-07-12</lastmod>
</url> </url>
<url>
<loc>https://www.ertpl.pages.dev/seta_menu/percorsi/percorso.html</loc>
<priority>0.25</priority>
<lastmod>2025-08-25</lastmod>
</url>
<url>
<loc>https://www.ertpl.pages.dev/seta_menu/percorsi/prossimefermate.html</loc>
<priority>0.25</priority>
<lastmod>2025-08-25</lastmod>
</url>
</urlset> </urlset>