summaryrefslogtreecommitdiff
path: root/templates/history.html.ep
blob: 2808660a1b4bbfa6349a699cc20576d19397c763 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
% my $since = get_user_data()->{registered_at};
% my $now = DateTime->now(time_zone => 'Europe/Berlin');
<div class="row">
	<div class="col s12">
		<ul class="pagination">
			<!--<li class="disabled"><a href="#!"><i class="material-icons">chevron_left</i></a></li>-->
			% my $ref = stash('year') ? stash('year') . '/' . stash('month') : '';
			% while ($since < $now) {
				% my $link_to = $since->strftime('%Y/%m');
				% my $class = $link_to eq $ref ? 'active' : 'waves-effect';
				<li class="<%= $class %>"><a href="/history/<%= $link_to %>"><%= $since->strftime('%m.%Y') %></a></li>
				% $since->add(months => 1);
			% }
			<!--<li class="disabled"><a href="#!"><i class="material-icons">chevron_right</i></a></li>-->
		</ul>
	</div>
</div>
% if (my $stats = stash('statistics')) {
<h1><%= stash('month_name') %> <%= stash('year') %></h1>
	<div class="row">
		<div class="col s12">
			<table class="striped">
				<tr>
					<th scope="row">Fahrten</th>
					<td><%= $stats->{num_trains} %></td>
				</tr>
				<tr>
					<th scope="row">Entfernung</th>
					<td>ca. <%= sprintf('%.f', $stats->{km_route}) %> km
						(Luftlinie: <%= sprintf('%.f', $stats->{km_beeline}) %> km)</td>
				</tr>
				<tr>
					<th scope="row">Fahrtzeit</th>
					<td><%= sprintf('%02d:%02d', $stats->{min_travel_real} / 60, $stats->{min_travel_real} % 60) %> Stunden
						(nach Fahrplan: <%= sprintf('%02d:%02d', $stats->{min_travel_sched} / 60, $stats->{min_travel_sched} % 60) %>)<td>
				</tr>
				<tr>
					<th scope="row">Kumulierte Verspätung</th>
					<td>Bei Abfahrt: <%= sprintf('%02d:%02d', $stats->{delay_dep} / 60, $stats->{delay_dep} % 60) %> Stunden<br/>
						Bei Ankunft: <%= sprintf('%02d:%02d', $stats->{delay_arr} / 60, $stats->{delay_arr} % 60) %> Stunden</td>
				</tr>
			</table>
		</div>
	</div>
% }
% elsif (param('cancelled')) {
<h1>Ausgefallene Fahrten</h1>
<div class="row">
	<div class="col s12">
		<ul>
			<li><a href="/history.json?cancelled=1">JSON-Export</a> (Das Datenlayout ist noch nicht final)</li>
			<li><a href="/history">Reguläre Zugfahrten</a></li>
		</ul>
	</div>
</div>
% }
% else {
<h1>Fahrten</h1>
<div class="row">
	<div class="col s12">
		<ul>
			<li><a href="/history.json">JSON-Export</a> (Das Datenlayout ist noch nicht final)</li>
			<li><a href="/history?cancelled=1">Ausgefallene Züge</a></li>
		</ul>
	</div>
</div>
% }
<div class="row">
	<div class="col s12">
		<table class="striped">
			<thead>
				<tr>
					<th>Datum</th>
					<th>Zug</th>
					<th>Strecke</th>
					<th>Zeit</th>
				</tr>
			</thead>
			<tbody>
				% for my $travel (@{$journeys}) {
					% if ($travel->{completed}) {
						% my $detail_link = '/journey/' . current_user()->{id} . '-' . $travel->{checkin}->epoch . '-' . $travel->{checkout}->epoch;
						<tr>
							<td><%= $travel->{sched_departure}->strftime('%d.%m.%Y') %></td>
							<td><a href="<%= $detail_link %>"><%= $travel->{type} %> <%= $travel->{line} // '' %> <%= $travel->{no} %></a></td>
							<td><a href="<%= $detail_link %>"><%= $travel->{from_name} %> → <%= $travel->{to_name} %></a></td>
							<td>
							% if (param('cancelled') and $travel->{sched_arrival}->epoch != 0) {
								%= $travel->{sched_arrival}->strftime('%H:%M')
							% }
							% else {
								% if ($travel->{rt_arrival}->epoch == 0 and $travel->{sched_arrival}->epoch == 0) {
									<i class="material-icons">timer_off</i>
								% } else {
									%= $travel->{rt_arrival}->strftime('%H:%M');
									% if ($travel->{sched_arrival} != $travel->{rt_arrival}) {
										(<%= sprintf('%+d', ($travel->{rt_arrival}->epoch - $travel->{sched_arrival}->epoch) / 60) %>)
									% }
								% }
							% }
							<br/>
							% if (param('cancelled')) {
								%= $travel->{sched_departure}->strftime('%H:%M')
							% }
							% else {
								<%= $travel->{rt_departure}->strftime('%H:%M') %>
								% if ($travel->{sched_departure} != $travel->{rt_departure}) {
									(<%= sprintf('%+d', ($travel->{rt_departure}->epoch - $travel->{sched_departure}->epoch) / 60) %>)
								% }
							% }
							</td>
						</tr>
					% }
				% }
			</tbody>
		</table>
	</div>
</div>