summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-04-23 22:27:13 +0200
committerDaniel Friesel <derf@finalrewind.org>2019-04-23 22:27:13 +0200
commit6c1cae86f4fa343b4f165f80a4e42eba37fa917c (patch)
tree273fcc63fd249a766b39855f5dc3f60b4dcecb26 /templates
parentffaa0c44a78bb4bab632fcb76b668215da4c0a82 (diff)
Primitive auto-refresh of current journey status
Todo: Redirect user to destination station upon arrival
Diffstat (limited to 'templates')
-rw-r--r--templates/_cancelled.html.ep27
-rw-r--r--templates/_checked_in.html.ep85
-rw-r--r--templates/_checked_out.html.ep12
-rw-r--r--templates/departures.html.ep13
-rw-r--r--templates/landingpage.html.ep88
-rw-r--r--templates/layouts/default.html.ep2
6 files changed, 128 insertions, 99 deletions
diff --git a/templates/_cancelled.html.ep b/templates/_cancelled.html.ep
new file mode 100644
index 0000000..d35c849
--- /dev/null
+++ b/templates/_cancelled.html.ep
@@ -0,0 +1,27 @@
+<div class="card yellow lighten-4">
+ <div class="card-content">
+ <span class="card-title">Zugausfall dokumentieren</span>
+ <p>Prinzipiell wärest du nun eingecheckt in
+ <%= $status->{train_type} %> <%= $status->{train_no} %>
+ ab <%= $status->{station_name} %>, doch dieser Zug fällt aus.
+ </p>
+ <p>Falls du den Zugausfall z.B. für ein Fahrgastrechteformular
+ dokumentieren möchtest, wähle bitte jetzt deine geplante
+ Zielstation aus. Achtung: Momentan wird dabei keine
+ Soll-Ankunftszeit gespeichert, das zu beheben steht auf
+ der Todoliste.</p>
+ <table>
+ <tbody>
+ % my $is_after = 0;
+ % for my $station (@{$status->{route_after}}) {
+ <tr><td><a class="action-cancelled-to" data-station="<%= $station %>"><%= $station %></a></td></tr>
+ % }
+ </tbody>
+ </table>
+ </div>
+ <div class="card-action">
+ <a class="action-undo" data-id="in_transit">
+ <i class="material-icons">undo</i> Checkinversuch Rückgängig?
+ </a>
+ </div>
+</div>
diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep
new file mode 100644
index 0000000..e4afeda
--- /dev/null
+++ b/templates/_checked_in.html.ep
@@ -0,0 +1,85 @@
+<div class="card green darken-4 autorefresh">
+ <div class="card-content white-text">
+ <span class="card-title">Eingecheckt</span>
+ <p>
+ In <b><%= $status->{train_type} %> <%= $status->{train_no} %></b>
+ % if ($status->{arr_name}) {
+ von <b><%= $status->{dep_name} %></b> nach <b><%= $status->{arr_name} %></b>.
+ % }
+ % else {
+ ab <b><%= $status->{dep_name} %></b>.
+ % }
+ </p>
+ <p>
+ <b><%= $status->{real_departure}->strftime('%H:%M') %></b>
+ % if ($status->{real_departure}->epoch != $status->{sched_departure}->epoch) {
+ (<%= sprintf('%+d', ($status->{real_departure}->epoch - $status->{sched_departure}->epoch)/60) %>)
+ % }
+ →
+ % if ($status->{real_arrival}->epoch) {
+ <b><%= $status->{real_arrival}->strftime('%H:%M') %></b>
+ % if ($status->{real_arrival}->epoch != $status->{sched_arrival}->epoch) {
+ (<%= sprintf('%+d', ($status->{real_arrival}->epoch - $status->{sched_arrival}->epoch)/60) %>)
+ % }
+ % }
+ % else {
+ unbekannt
+ % }
+ </p>
+ <p>
+ <div class="center">
+ % if ($status->{departure_countdown} > 120) {
+ Abfahrt in <%= int($status->{departure_countdown} / 60) %> Minuten
+ % }
+ % elsif ($status->{arrival_countdown}) {
+ % if ($status->{arrival_countdown} > 0) {
+ Ankunft in <%= int($status->{arrival_countdown} / 60) %>
+ Minute<%= int($status->{arrival_countdown} / 60) == 1 ? '' : 'n' %>
+ % }
+ % else {
+ Ziel erreicht
+ % }
+ % }
+ % elsif ($status->{arr_name}) {
+ Ankunft in mehr als zwei Stunden
+ % }
+ </div>
+ <div class="progress green darken-3" style="height: 1ex;">
+ <div class="determinate white" style="width: <%= sprintf('%.2f', 100 * $status->{journey_completion}); %>%;"></div>
+ </div>
+ </p>
+ % if ($status->{arr_name}) {
+ <p>Zielstation ändern?</p>
+ % }
+ % else {
+ <p>Zielstation wählen:</p>
+ % }
+ <table>
+ <tbody>
+ % my $is_after = 0;
+ % for my $station (@{$status->{route_after}}) {
+ % if ($status->{arr_name} and $station eq $status->{arr_name}) {
+ <tr><td><b><a class="action-checkout" data-station="<%= $station %>"><%= $station %></a></b></td></tr>
+ % }
+ % else {
+ <tr><td><a class="action-checkout" data-station="<%= $station %>"><%= $station %></a></td></tr>
+ % }
+ % }
+ </tbody>
+ </table>
+ % if ($status->{arr_name}) {
+ <p>
+ Falls das Backend ausgefallen ist oder der Zug aus anderen
+ Gründen verloren ging: <a class="action-checkout"
+ data-force="1" data-station="<%= $status->{arr_name}
+ %>">Ohne Echtzeitdaten in <%= $status->{arr_name} %>
+ auschecken</a>.
+ </p>
+ % }
+ </div>
+ <div class="card-action">
+ <a class="action-undo" data-id="in_transit">
+ <i class="material-icons">undo</i> Checkin Rückgängig?
+ </a>
+ </div>
+</div>
diff --git a/templates/_checked_out.html.ep b/templates/_checked_out.html.ep
new file mode 100644
index 0000000..cec61bc
--- /dev/null
+++ b/templates/_checked_out.html.ep
@@ -0,0 +1,12 @@
+<div class="card grey darken-4">
+ <div class="card-content white-text">
+ <span class="card-title">Ausgecheckt</span>
+ <p>Aus <%= $status->{train_type} %> <%= $status->{train_no} %>
+ bis <%= $status->{arr_name} %></p>
+ </div>
+ <div class="card-action">
+ <a class="action-undo" data-id="<%= $status->{journey_id} %>">
+ <i class="material-icons">undo</i> Rückgängig?
+ </a>
+ </div>
+</div>
diff --git a/templates/departures.html.ep b/templates/departures.html.ep
index 7d33417..32a4336 100644
--- a/templates/departures.html.ep
+++ b/templates/departures.html.ep
@@ -16,18 +16,7 @@
</div>
% }
% elsif ($status->{timestamp_delta} < 180) {
- <div class="card grey darken-4">
- <div class="card-content white-text">
- <span class="card-title">Ausgecheckt</span>
- <p>Aus <%= $status->{train_type} %> <%= $status->{train_no} %>
- bis <%= $status->{arr_name} %></p>
- </div>
- <div class="card-action">
- <a class="action-undo" data-id="<%= $status->{journey_id} %>">
- <i class="material-icons">undo</i> Rückgängig?
- </a>
- </div>
- </div>
+ %= include '_checked_out', status => $status;
% }
</div>
</div>
diff --git a/templates/landingpage.html.ep b/templates/landingpage.html.ep
index 84514c5..83b8303 100644
--- a/templates/landingpage.html.ep
+++ b/templates/landingpage.html.ep
@@ -12,94 +12,10 @@
</div>
% }
<div class="row">
- <div class="col s12">
+ <div class="col s12 statuscol">
% my $status = get_user_status();
% if ($status->{checked_in}) {
- <div class="card green darken-4">
- <div class="card-content white-text">
- <span class="card-title">Eingecheckt</span>
- <p>
- In <b><%= $status->{train_type} %> <%= $status->{train_no} %></b>
- % if ($status->{arr_name}) {
- von <b><%= $status->{dep_name} %></b> nach <b><%= $status->{arr_name} %></b>.
- % }
- % else {
- ab <b><%= $status->{dep_name} %></b>.
- % }
- </p>
- <p>
- <b><%= $status->{real_departure}->strftime('%H:%M') %></b>
- % if ($status->{real_departure}->epoch != $status->{sched_departure}->epoch) {
- (<%= sprintf('%+d', ($status->{real_departure}->epoch - $status->{sched_departure}->epoch)/60) %>)
- % }
- →
- % if ($status->{real_arrival}->epoch) {
- <b><%= $status->{real_arrival}->strftime('%H:%M') %></b>
- % if ($status->{real_arrival}->epoch != $status->{sched_arrival}->epoch) {
- (<%= sprintf('%+d', ($status->{real_arrival}->epoch - $status->{sched_arrival}->epoch)/60) %>)
- % }
- % }
- % else {
- unbekannt
- % }
- </p>
- <p>
- <div class="center">
- % if ($status->{departure_countdown} > 120) {
- Abfahrt in <%= int($status->{departure_countdown} / 60) %> Minuten
- % }
- % elsif ($status->{arrival_countdown}) {
- % if ($status->{arrival_countdown} > 0) {
- Ankunft in <%= int($status->{arrival_countdown} / 60) %>
- Minute<%= int($status->{arrival_countdown} / 60) == 1 ? '' : 'n' %>
- % }
- % else {
- Ziel erreicht
- % }
- % }
- % elsif ($status->{arr_name}) {
- Ankunft in mehr als zwei Stunden
- % }
- </div>
- <div class="progress green darken-3" style="height: 1ex;">
- <div class="determinate white" style="width: <%= sprintf('%.2f', 100 * $status->{journey_completion}); %>%;"></div>
- </div>
- </p>
- % if ($status->{arr_name}) {
- <p>Zielstation ändern?</p>
- % }
- % else {
- <p>Zielstation wählen:</p>
- % }
- <table>
- <tbody>
- % my $is_after = 0;
- % for my $station (@{$status->{route_after}}) {
- % if ($status->{arr_name} and $station eq $status->{arr_name}) {
- <tr><td><b><a class="action-checkout" data-station="<%= $station %>"><%= $station %></a></b></td></tr>
- % }
- % else {
- <tr><td><a class="action-checkout" data-station="<%= $station %>"><%= $station %></a></td></tr>
- % }
- % }
- </tbody>
- </table>
- % if ($status->{arr_name}) {
- <p>
- Falls das Backend ausgefallen ist oder der Zug aus anderen
- Gründen verloren ging: <a class="action-checkout"
- data-force="1" data-station="<%= $status->{arr_name}
- %>">Ohne Echtzeitdaten in <%= $status->{arr_name} %>
- auschecken</a>.
- </p>
- % }
- </div>
- <div class="card-action">
- <a class="action-undo" data-id="in_transit">
- <i class="material-icons">undo</i> Checkin Rückgängig?
- </a>
- </div>
- </div>
+ %= include '_checked_in', status => $status;
% }
% elsif ($status->{cancelled}) {
<div class="card yellow lighten-4">
diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep
index cdd624a..a2a5648 100644
--- a/templates/layouts/default.html.ep
+++ b/templates/layouts/default.html.ep
@@ -5,7 +5,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#673ab7">
- % my $av = 'v6'; # asset version
+ % my $av = 'v7'; # asset version
%= stylesheet "/static/${av}/css/materialize.min.css"
%= stylesheet "/static/${av}/css/material-icons.css"
%= stylesheet "/static/${av}/css/local.css"