diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-03-09 14:35:23 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-03-09 14:35:23 +0100 | 
| commit | 3ae14d47f91f36bacdfe604414f1186f375ac8a0 (patch) | |
| tree | 2dfa72263007e7124279e6d5200ba59679c84e31 | |
| parent | 6f1b488d26b24624904162d8127df79f166784ec (diff) | |
add JSON export for history
| -rwxr-xr-x | index.pl | 11 | ||||
| -rw-r--r-- | templates/history.html.ep | 79 | 
2 files changed, 54 insertions, 36 deletions
@@ -1184,7 +1184,16 @@ get '/account' => sub {  get '/history' => sub {  	my ($self) = @_; -	$self->render('history'); +	$self->respond_to( +		json => { json     => [ $self->get_user_travels(0) ] }, +		any  => { template => 'history' } +	); +}; + +get '/history.json' => sub { +	my ($self) = @_; + +	$self->render( json => [ $self->get_user_travels(0) ] );  };  get '/export.json' => sub { diff --git a/templates/history.html.ep b/templates/history.html.ep index 25e826f..cf81765 100644 --- a/templates/history.html.ep +++ b/templates/history.html.ep @@ -1,40 +1,49 @@  <h1>Bisherige Fahrten</h1>  <div class="row"> -	<table class="striped"> -		<thead> -			<tr> -				<th>Datum</th> -				<th>Zug</th> -				<th>Strecke</th> -				<th>Abfahrt</th> -				<th>Ankunft</th> -			</tr> -		</thead> -		<tbody> -			% for my $travel (get_user_travels(0)) { -				% if ($travel->{completed}) { -					<tr> -						<td><%= $travel->{sched_departure}->strftime('%d.%m.%Y') %></td> -						<td><%= $travel->{type} %> <%= $travel->{line} // '' %> <%= $travel->{no} %></td> -						<td><%= $travel->{from_name} %> → <%= $travel->{to_name} %></td> -						<td><%= $travel->{rt_departure}->strftime('%H:%M') %> -						% if ($travel->{sched_departure} != $travel->{rt_departure}) { -							(+<%= ($travel->{rt_departure}->epoch - $travel->{sched_departure}->epoch) / 60 %>) -						% } -						</td> -						<td> -						% 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}) { -								(+<%= ($travel->{rt_arrival}->epoch - $travel->{sched_arrival}->epoch) / 60 %>) +	<div class="col s12"> +		<ul> +			<li><a href="/history.json">JSON-Export</a> (Das Datenlayout ist noch nicht final)</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>Abfahrt</th> +					<th>Ankunft</th> +				</tr> +			</thead> +			<tbody> +				% for my $travel (get_user_travels(0)) { +					% if ($travel->{completed}) { +						<tr> +							<td><%= $travel->{sched_departure}->strftime('%d.%m.%Y') %></td> +							<td><%= $travel->{type} %> <%= $travel->{line} // '' %> <%= $travel->{no} %></td> +							<td><%= $travel->{from_name} %> → <%= $travel->{to_name} %></td> +							<td><%= $travel->{rt_departure}->strftime('%H:%M') %> +							% if ($travel->{sched_departure} != $travel->{rt_departure}) { +								(+<%= ($travel->{rt_departure}->epoch - $travel->{sched_departure}->epoch) / 60 %>) +							% } +							</td> +							<td> +							% 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}) { +									(+<%= ($travel->{rt_arrival}->epoch - $travel->{sched_arrival}->epoch) / 60 %>) +								% }  							% } -						% } -						</td> -					</tr> +							</td> +						</tr> +					% }  				% } -			% } -		</tbody> -	</table> +			</tbody> +		</table> +	</div>  </div>  | 
