diff options
author | Derf Null <derf@finalrewind.org> | 2023-03-27 21:03:25 +0200 |
---|---|---|
committer | Derf Null <derf@finalrewind.org> | 2023-03-27 21:03:25 +0200 |
commit | c3c7a0c78b30cc7ef2b836cca4eb0a4e110955da (patch) | |
tree | b66a6f0dcb4cb8d0e10ad29c84d79d0f309ee402 /templates | |
parent | 3acee2b285ac81405c5d2ce8889c77460f6f58a0 (diff) |
stationboard: add HAFAS support
Diffstat (limited to 'templates')
-rw-r--r-- | templates/_departures_hafas.html.ep | 44 | ||||
-rw-r--r-- | templates/_departures_iris.html.ep | 52 | ||||
-rw-r--r-- | templates/departures.html.ep | 58 | ||||
-rw-r--r-- | templates/exception.html.ep | 2 |
4 files changed, 103 insertions, 53 deletions
diff --git a/templates/_departures_hafas.html.ep b/templates/_departures_hafas.html.ep new file mode 100644 index 0000000..5b1a057 --- /dev/null +++ b/templates/_departures_hafas.html.ep @@ -0,0 +1,44 @@ +<table class="striped"> +<tbody> +% my $orientation_bar_shown = param('train'); +% my $now_epoch = now()->epoch; +% for my $result (@{$results}) { + % my $td_class = ''; + % my $link_class = 'action-checkin'; + % if ($result->is_cancelled) { + % $td_class = "cancelled"; + % $link_class = 'action-cancelled-from'; + % } + % if (not $orientation_bar_shown and $result->datetime->epoch < $now_epoch) { + % $orientation_bar_shown = 1; + <tr> + <td> + </td> + <td> + — Anfragezeitpunkt — + </td> + <td> + </td> + </tr> + % } + <tr class="<%= $link_class %>" data-station="<%= $result->station_eva %>" data-train="<%= $result->id %>" data-tr="3"> + <td> + <a> + <%= $result->line %> + </a> + </td> + <td class="<%= $td_class %>"> + <a> + <%= $result->destination %> + </a> + </td> + <td class="<%= $td_class %>"> + %= $result->datetime->strftime('%H:%M') + % if ($result->delay) { + (<%= sprintf('%+d', $result->delay) %>) + % } + </td> + </tr> +% } +</tbody> +</table> diff --git a/templates/_departures_iris.html.ep b/templates/_departures_iris.html.ep new file mode 100644 index 0000000..b24c3f1 --- /dev/null +++ b/templates/_departures_iris.html.ep @@ -0,0 +1,52 @@ +<table class="striped"> +<tbody> +% my $orientation_bar_shown = param('train'); +% my $now_epoch = now()->epoch; +% for my $result (@{$results}) { + % my $td_class = ''; + % my $link_class = 'action-checkin'; + % if ($result->departure_is_cancelled) { + % $td_class = "cancelled"; + % $link_class = 'action-cancelled-from'; + % } + % if (not $orientation_bar_shown and $result->departure->epoch < $now_epoch) { + % $orientation_bar_shown = 1; + <tr> + <td> + </td> + <td> + — Anfragezeitpunkt — + </td> + <td> + </td> + </tr> + % } + <tr class="<%= $link_class %>" data-station="<%= $result->station_uic %>" data-train="<%= $result->train_id %>" data-tr="3"> + <td> + <a> + <%= $result->line %> + </a> + </td> + <td class="<%= $td_class %>"> + <a> + <%= $result->destination %> + </a> + </td> + <td class="<%= $td_class %>"> + % if ($result->departure_hidden) { + (<%= $result->departure->strftime('%H:%M') %>) + % } + % else { + %= $result->departure->strftime('%H:%M') + % } + % if ($result->departure_delay) { + (<%= sprintf('%+d', $result->departure_delay) %>) + % } + % elsif (not $result->has_realtime and $result->start->epoch < $now_epoch) { + <i class="material-icons" aria-label="Keine Echtzeitdaten vorhanden" style="font-size: 16px;">gps_off</i> + % } + </td> + </tr> +% } +</tbody> +</table> diff --git a/templates/departures.html.ep b/templates/departures.html.ep index 25e752a..857be74 100644 --- a/templates/departures.html.ep +++ b/templates/departures.html.ep @@ -63,58 +63,12 @@ und maximal 120 Minuten nach Abfahrt möglich. % } </p> - <table class="striped"> - <tbody> - % my $orientation_bar_shown = param('train'); - % my $now_epoch = now()->epoch; - % for my $result (@{$results}) { - % my $td_class = ''; - % my $link_class = 'action-checkin'; - % if ($result->departure_is_cancelled) { - % $td_class = "cancelled"; - % $link_class = 'action-cancelled-from'; - % } - % if (not $orientation_bar_shown and $result->departure->epoch < $now_epoch) { - % $orientation_bar_shown = 1; - <tr> - <td> - </td> - <td> - — Anfragezeitpunkt — - </td> - <td> - </td> - </tr> - % } - <tr class="<%= $link_class %>" data-station="<%= $result->station_uic %>" data-train="<%= $result->train_id %>" data-tr="3"> - <td> - <a> - <%= $result->line %> - </a> - </td> - <td class="<%= $td_class %>"> - <a> - <%= $result->destination %> - </a> - </td> - <td class="<%= $td_class %>"> - % if ($result->departure_hidden) { - (<%= $result->departure->strftime('%H:%M') %>) - % } - % else { - %= $result->departure->strftime('%H:%M') - % } - % if ($result->departure_delay) { - (<%= sprintf('%+d', $result->departure_delay) %>) - % } - % elsif (not $result->has_realtime and $result->start->epoch < $now_epoch) { - <i class="material-icons" aria-label="Keine Echtzeitdaten vorhanden" style="font-size: 16px;">gps_off</i> - % } - </td> - </tr> - % } - </tbody> - </table> + % if ($hafas) { + %= include '_departures_hafas', results => $results; + % } + % else { + %= include '_departures_iris', results => $results; + % } </div> </div> diff --git a/templates/exception.html.ep b/templates/exception.html.ep index 290efc5..ec01ad2 100644 --- a/templates/exception.html.ep +++ b/templates/exception.html.ep @@ -21,7 +21,7 @@ %= DateTime->now(time_zone => 'Europe/Berlin')->strftime("%d/%b/%Y:%H:%M:%S %z") <br/><br/> Message: - %= (split(qr{\n}, $exception->message))[0] + %= ref($exception) ? (split(qr{\n}, $exception->message))[0] : $exception </p> </div> </div> |