2 <head> |
2 <head> |
3 <link rel="icon" type="image/png" href="/static/favicon.png" /> |
3 <link rel="icon" type="image/png" href="/static/favicon.png" /> |
4 <link rel="stylesheet" type="text/css" href="/static/style.css" /> |
4 <link rel="stylesheet" type="text/css" href="/static/style.css" /> |
5 <meta charset='UTF-8' /> |
5 <meta charset='UTF-8' /> |
6 <style> |
6 <style> |
7 .sarake-pysäkki, .sarake-pysäkkiviite, .sarake-alue |
7 .sarake-alue |
8 { |
8 { |
9 text-align: left; |
9 text-align: left; |
10 } |
10 } |
11 td, th, body |
11 .sarake-aika |
12 { |
12 { |
13 font-size: 24pt; |
13 width: 0; |
14 }/* |
14 } |
15 body |
15 td.folded table |
16 { |
16 { |
17 background: url('/static/tausta-bussi.png') no-repeat center center fixed; |
17 display: none; |
18 background-size: cover; |
18 } |
19 }*/ |
19 td.unfolded a.region-name |
|
20 { |
|
21 font-weight: bold; |
|
22 } |
|
23 .nested-schedule td |
|
24 { |
|
25 margin-left: 0; |
|
26 margin-right: 0; |
|
27 padding-left: 5px; |
|
28 padding-right: 5px; |
|
29 } |
|
30 .nested-schedule |
|
31 { |
|
32 border-radius: 10px; |
|
33 margin-top: 10px; |
|
34 } |
20 </style> |
35 </style> |
21 <script> |
36 <script> |
22 function openTab(event, category) |
37 function toggle_fold(id) |
23 { |
38 { |
24 var tabcontent = document.getElementsByClassName("tab"); |
39 element = document.getElementById(id); |
25 for (var i = 0; i < tabcontent.length; i++) |
40 if (element.className.indexOf(" folded") !== -1) |
26 tabcontent[i].style.display = "none"; |
41 element.className = element.className.replace(" folded", "") + " unfolded"; |
27 |
42 else |
28 var tablinks = document.getElementsByClassName("tab-button"); |
43 element.className = element.className.replace(" unfolded", "") + " folded"; |
29 for (var i = 0; i < tablinks.length; i++) |
44 } |
30 tablinks[i].className = tablinks[i].className.replace(" active", ""); |
|
31 |
|
32 document.getElementById(category).style.display = "block"; |
|
33 event.currentTarget.className += " active"; |
|
34 window.scrollTo(0, 0); |
|
35 } |
|
36 </script> |
45 </script> |
37 <title>{{route}} {{description}}</title> |
46 <title>{{route}} {{description}}</title> |
38 </head> |
47 </head> |
39 <body> |
48 <body> |
40 <h1> |
49 <h1> |
41 {% if night %} |
50 {% if night %} |
42 🌙 |
51 🌙 |
43 {% endif %} |
52 {% endif %} |
44 {{route}} {{description}}</h1> |
53 {{route}} {{description}}</h1> |
45 <nav> |
|
46 <div class="tab-bar"> |
|
47 <span></span> |
|
48 <button class="tab-button active" onclick="openTab(event, 'tab-overview')">Reitti</button> |
|
49 <button class="tab-button" onclick="openTab(event, 'tab-stops')">Pysäkit</button> |
|
50 <span></span> |
|
51 </div> |
|
52 </nav> |
|
53 <p style="text-align: center">Ajomatka: {{'%.1f' % length}}km</p> |
54 <p style="text-align: center">Ajomatka: {{'%.1f' % length}}km</p> |
54 <div id="tab-overview" class="tab"> |
55 <table class='aikataulu' cellspacing='0'> |
55 <table class='aikataulu' cellspacing='0'> |
56 <tr> |
56 <tr> |
57 <th class='sarake-aika'>Aika</th> |
57 <th class='sarake-aika'>Aika</th> |
58 <th class='sarake-alue'>Alue</th> |
58 <th class='sarake-alue'>Alue</th> |
59 </tr> |
59 </tr> |
60 {% for entry in schedule %} |
60 {% for entry in concise_schedule %} |
61 <tr> |
61 <tr> |
62 <td class='sarake-aika' style='vertical-align: top'>{{entry['time']}}</td> |
62 <td class='sarake-aika'>{{entry['time']}}</td> |
63 <td class='sarake-alue folded' id="region-schedule-{{entry['index']}}"> |
63 <td class='sarake-alue'>{{entry['region']}}</td> |
64 <a class="region-name" href="javascript:toggle_fold('region-schedule-{{entry['index']}}')">{{entry['name']}}</a> |
64 </tr> |
65 <table class="nested-schedule" cellspacing="0"> |
65 {% endfor %} |
66 {% for halt in entry['stops'] %} |
66 </table> |
67 <tr> |
67 </div> |
68 <td>{{halt['time']}}</td> |
68 <div id="tab-stops" class="tab" style="display: none"> |
69 <td><a href="/pysäkki/{{halt['id']}}"><img src='/static/pysäkki.png' height='24' /> {{halt['code']}}</a></td> |
69 <table class='aikataulu' cellspacing='0'> |
70 <td><a href="/pysäkki/{{halt['id']}}">{{halt['name']}}</a></td> |
70 <tr> |
71 </tr> |
71 <th class='sarake-aika'>Aika</th> |
72 {% endfor %} |
72 <th class='sarake-pysäkkiviite'>Pysäkki</th> |
73 </table> |
73 <th class='sarake-pysäkki'>Nimi</th> |
74 </td> |
74 </tr> |
75 </tr> |
75 {% for halt in schedule %} |
76 {% endfor %} |
76 <tr> |
77 </table> |
77 <td class='sarake-aika'>{{halt['time']}}</td> |
|
78 <td class='sarake-pysäkkiviite'> |
|
79 <a href="/pysäkki/{{halt['id']}}"><img src='/static/pysäkki.png' height='24' /> {{halt['code']}}</a> |
|
80 </td> |
|
81 <td class='sarake-pysäkki'> |
|
82 <a href="/pysäkki/{{halt['id']}}">{{halt['name']}}</a> |
|
83 </td> |
|
84 </tr> |
|
85 {% endfor %} |
|
86 </table> |
|
87 </div> |
|
88 </body> |
78 </body> |
89 </html> |
79 </html> |