From ffee7177ac26f4e79227cdf0abcd83f80f34faa4 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 7 Apr 2019 18:44:33 +0200 Subject: Refactor history template, add yearly stats --- templates/_history_months.html.ep | 12 ++++ templates/_history_stats.html.ep | 33 +++++++++ templates/_history_trains.html.ep | 51 ++++++++++++++ templates/_history_years.html.ep | 12 ++++ templates/cancelled.html.ep | 16 +++++ templates/history.html.ep | 133 +++++-------------------------------- templates/history_by_month.html.ep | 13 ++++ templates/history_by_year.html.ep | 13 ++++ templates/landingpage.html.ep | 33 +-------- 9 files changed, 169 insertions(+), 147 deletions(-) create mode 100644 templates/_history_months.html.ep create mode 100644 templates/_history_stats.html.ep create mode 100644 templates/_history_trains.html.ep create mode 100644 templates/_history_years.html.ep create mode 100644 templates/cancelled.html.ep create mode 100644 templates/history_by_month.html.ep create mode 100644 templates/history_by_year.html.ep (limited to 'templates') diff --git a/templates/_history_months.html.ep b/templates/_history_months.html.ep new file mode 100644 index 0000000..465a159 --- /dev/null +++ b/templates/_history_months.html.ep @@ -0,0 +1,12 @@ +
+
+
    + % while ($since < $now) { + % my $link_to = $since->strftime('%Y/%m'); + % my $class = $link_to eq $current ? 'active' : 'waves-effect'; +
  • <%= $since->strftime('%m.%Y') %>
  • + % $since->add(months => 1)->set(day => 1, hour => 0, minute => 0, second => 0); + % } +
+
+
diff --git a/templates/_history_stats.html.ep b/templates/_history_stats.html.ep new file mode 100644 index 0000000..f203631 --- /dev/null +++ b/templates/_history_stats.html.ep @@ -0,0 +1,33 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
Fahrten<%= $stats->{num_journeys} %>
Züge<%= $stats->{num_trains} %>
Entfernungca. <%= sprintf('%.f', $stats->{km_route}) %> km + (Luftlinie: <%= sprintf('%.f', $stats->{km_beeline}) %> km)
Fahrtzeit<%= 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) %>) +
Wartezeit (nur Umstiege)<%= sprintf('%02d:%02d', $stats->{min_interchange_real} / 60, $stats->{min_interchange_real} % 60) %> Stunden +
Kumulierte VerspätungBei Abfahrt: <%= sprintf('%02d:%02d', $stats->{delay_dep} / 60, $stats->{delay_dep} % 60) %> Stunden
+ Bei Ankunft: <%= sprintf('%02d:%02d', $stats->{delay_arr} / 60, $stats->{delay_arr} % 60) %> Stunden
+
+
diff --git a/templates/_history_trains.html.ep b/templates/_history_trains.html.ep new file mode 100644 index 0000000..2044f7b --- /dev/null +++ b/templates/_history_trains.html.ep @@ -0,0 +1,51 @@ +
+
+ + + + + + + + + + + % for my $travel (@{$journeys}) { + % if ($travel->{completed}) { + % my $detail_link = '/journey/' . current_user()->{id} . '-' . $travel->{ids}->[1]; + + + + + + + % } + % } + +
DatumZeitZugStrecke
<%= $travel->{sched_departure}->strftime('%d.%m.%Y') %> + % 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) { + timer_off + % } 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) %>) + % } + % } + % } +
+ % 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) %>) + % } + % } +
<%= $travel->{type} %> <%= $travel->{line} // '' %> <%= $travel->{no} %><%= $travel->{from_name} %> → <%= $travel->{to_name} %>
+
+
diff --git a/templates/_history_years.html.ep b/templates/_history_years.html.ep new file mode 100644 index 0000000..02bb70d --- /dev/null +++ b/templates/_history_years.html.ep @@ -0,0 +1,12 @@ +
+
+
    + % while ($since < $now) { + % my $link_to = $since->strftime('%Y'); + % my $class = $link_to eq $current ? 'active' : 'waves-effect'; +
  • <%= $since->strftime('%Y') %>
  • + % $since->add(years => 1)->set(month => 1, day => 1, hour => 0, minute => 0, second => 0); + % } +
+
+
diff --git a/templates/cancelled.html.ep b/templates/cancelled.html.ep new file mode 100644 index 0000000..ff5ba1e --- /dev/null +++ b/templates/cancelled.html.ep @@ -0,0 +1,16 @@ +

Zugausfälle

+
+
+ Die folgenden Zugfahrten haben nicht stattgefunden. +
+
+
+
+ +
+
+ +%= include '_history_trains', journeys => stash('journeys'); diff --git a/templates/history.html.ep b/templates/history.html.ep index e65d31f..10cc596 100644 --- a/templates/history.html.ep +++ b/templates/history.html.ep @@ -1,126 +1,29 @@ -% my $since = get_user_data()->{registered_at}; -% my $now = DateTime->now(time_zone => 'Europe/Berlin'); -
-
-
    - - % 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'; -
  • <%= $since->strftime('%m.%Y') %>
  • - % $since->add(months => 1)->set(day => 1, hour => 0, minute => 0, second => 0); - % } - -
-
-
-% if (my $stats = stash('statistics')) { -

<%= stash('month_name') %> <%= stash('year') %>

-
-
- - - - - - - - - - - - - - - - - - - - - - - -
Fahrten<%= $stats->{num_journeys} %>
Züge<%= $stats->{num_trains} %>
Entfernungca. <%= sprintf('%.f', $stats->{km_route}) %> km - (Luftlinie: <%= sprintf('%.f', $stats->{km_beeline}) %> km)
Fahrtzeit<%= 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) %>) -
Wartezeit (nur Umstiege)<%= sprintf('%02d:%02d', $stats->{min_interchange_real} / 60, $stats->{min_interchange_real} % 60) %> Stunden -
Kumulierte VerspätungBei Abfahrt: <%= sprintf('%02d:%02d', $stats->{delay_dep} / 60, $stats->{delay_dep} % 60) %> Stunden
- Bei Ankunft: <%= sprintf('%02d:%02d', $stats->{delay_arr} / 60, $stats->{delay_arr} % 60) %> Stunden
-
-
-% } -% elsif (param('cancelled')) { -

Ausgefallene Fahrten

+

Fahrten

+
- + Hier finden sich alle bisherigen Zugfahrten und Statistiken für jedes + Jahr und jeden Monat.
-% } -% else { -

Fahrten

+
+ +

Nach Jahr

+% my $since = get_user_data()->{registered_at}; +% my $now = DateTime->now(time_zone => 'Europe/Berlin'); +%= include '_history_years', current => '', since => $since->clone, now => $now; + +

Nach Monat

+%= include '_history_months', current => '', since => $since->clone, now => $now; + +% if (stash('statistics')) { + %= include '_history_stats', stats => stash('statistics'); % } -
-
- - - - - - - - - - - % for my $travel (@{$journeys}) { - % if ($travel->{completed}) { - % my $detail_link = '/journey/' . current_user()->{id} . '-' . $travel->{ids}->[1]; - - - - - - - % } - % } - -
DatumZeitZugStrecke
<%= $travel->{sched_departure}->strftime('%d.%m.%Y') %> - % 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) { - timer_off - % } 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) %>) - % } - % } - % } -
- % 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) %>) - % } - % } -
<%= $travel->{type} %> <%= $travel->{line} // '' %> <%= $travel->{no} %><%= $travel->{from_name} %> → <%= $travel->{to_name} %>
-
-
diff --git a/templates/history_by_month.html.ep b/templates/history_by_month.html.ep new file mode 100644 index 0000000..3794858 --- /dev/null +++ b/templates/history_by_month.html.ep @@ -0,0 +1,13 @@ +% my $since = get_user_data()->{registered_at}; +% my $now = DateTime->now(time_zone => 'Europe/Berlin'); +%= include '_history_months', current => "${year}/${month}", since => $since, now => $now; + +

<%= stash('month_name') %> <%= stash('year') %>

+ +% if (stash('statistics')) { + %= include '_history_stats', stats => stash('statistics'); +% } + +% if (stash('journeys')) { + %= include '_history_trains', journeys => stash('journeys'); +% } diff --git a/templates/history_by_year.html.ep b/templates/history_by_year.html.ep new file mode 100644 index 0000000..97c223f --- /dev/null +++ b/templates/history_by_year.html.ep @@ -0,0 +1,13 @@ +% my $since = get_user_data()->{registered_at}; +% my $now = DateTime->now(time_zone => 'Europe/Berlin'); +%= include '_history_years', current => $year, since => $since, now => $now; + +

Jahresrückblick <%= $year %>

+ +% if (stash('statistics')) { + %= include '_history_stats', stats => stash('statistics'); +% } + +% if (stash('journeys')) { + %= include '_history_trains', journeys => stash('journeys'); +% } diff --git a/templates/landingpage.html.ep b/templates/landingpage.html.ep index b01896d..5d06dbf 100644 --- a/templates/landingpage.html.ep +++ b/templates/landingpage.html.ep @@ -91,38 +91,7 @@

Letzte Fahrten

-
- - - - - - - - - - - % for my $travel (get_user_travels(limit => 1)) { - % if ($travel->{completed}) { - - % my $detail_link = '/journey/' . current_user()->{id} . '-' . $travel->{ids}->[1]; - - - - % if ($travel->{rt_arrival}->epoch and $travel->{rt_departure}->epoch) { - - % } else { - - % } - - % } - % } - - - + %= include '_history_trains', journeys => [get_user_travels(limit => 1)]; % } % else {
-- cgit v1.2.3
DatumZugStreckeDauer
<%= $travel->{sched_departure}->strftime('%d.%m.%Y') %><%= $travel->{type} %> <%= $travel->{line} // $travel->{no} %><%= $travel->{from_name} %> → <%= $travel->{to_name} %><%= ($travel->{rt_arrival}->epoch - $travel->{rt_departure}->epoch) / 60 %> min - <%= sprintf('%.f', $self->get_travel_distance($travel->{from_name}, $travel->{to_name}, $travel->{route})) %>km - timer_off -