diff options
-rw-r--r-- | sass/src/common/local.scss | 126 | ||||
-rw-r--r-- | sass/src/dark/_variables.scss | 3 | ||||
-rw-r--r-- | sass/src/light/_variables.scss | 2 | ||||
-rw-r--r-- | templates/_departures_hafas.html.ep | 53 | ||||
-rw-r--r-- | templates/_departures_iris.html.ep | 55 |
5 files changed, 171 insertions, 68 deletions
diff --git a/sass/src/common/local.scss b/sass/src/common/local.scss index 4c52486..71f9e81 100644 --- a/sass/src/common/local.scss +++ b/sass/src/common/local.scss @@ -21,10 +21,6 @@ color: #f5c4ce !important; } -td.cancelled { - text-decoration: line-through; -} - .wagons span { margin-right: 0.5ex; color: #808080; @@ -72,7 +68,123 @@ ul.suggestions { } } -table.departures tr.now td { - padding-top: 2em; - padding-bottom: 2em; +.departures li { + transition: background .3s; + display: grid; + grid-template-columns: 10ch 11ch 1fr; + align-items: center; + &:hover { + background-color: $departures-highlight-color; + } + &.cancelled { + background-color: $departures-cancelled-color; + font-style: italic; + .dep-line { + background-color: transparent; + border: 1px solid; + color: $off-black; + } + .dep-dest::before { + content: "Fahrt nach"; + } + .dep-dest::after { + content: "entfällt"; + } + } +} +.followee-checkin { + font-size: 0.9rem; + display: block; + i.material-icons { + vertical-align: middle; + } +} +.departures #now { + background-color: $departures-highlight-color; + padding: 2rem 20px; + grid-template-columns: 10ch 1fr; + strong { + font-weight: bold; + } +} + + +.departures .dep-line { + text-align: center; + padding: .2rem; + color: white; + background: color('grey', 'darken-3'); + border-radius: .2rem; + display: inline-block; + font-weight: 600; + line-height: 1; + margin-right: 0.8rem; + height: fit-content; + + &.Bus, &.RUF, &.AST { + background-color: #a3167e; + border-radius: 5rem; + padding: .2rem .5rem; + } + &.STR { + background-color: #c5161c; + border-radius: 5rem; + padding: .2rem .5rem; + } + &.S, &.RS, &.RER, &.SKW { + background-color: #008d4f; + border-radius: 5rem; + padding: .2rem .5rem; + } + &.U, &.STB, &.M { + background-color: #014e8d; + border-radius: 5rem; + padding: .2rem .5rem; + } + &.RE, &.IRE { + background-color: #ff4f00; + } + &.RB, &.MEX, &.TER { + background-color: #1f4a87; + } + // DE + &.IC, &.ICE, &.EC, &.ECE, &.D, + // CH + &.IR, + // FR + &.TGV, &.OGV, &.EST, + // PL + &.TLK, &.EIC { + background-color: #ff0404; + font-weight: 900; + font-style: italic; + padding: .2rem; + } + &.RJ, &.RJX { + background-color: #c63131; + } + &.NJ, &.EN { + background-color: #29255b; + } + &.WB { + background-color: #2e85ce; + } + &.FLX { + background-color: #71d800; + } +} + +@media screen and (max-width: 600px) { + .departures li { + grid-template-columns: 11ch 1fr; + .dep-line, .dep-time { + grid-column: 1; + margin-right: 0.8rem; + text-align: center; + } + .dep-dest { + grid-column: 2; + grid-row: 1 / span 2; + } + } } diff --git a/sass/src/dark/_variables.scss b/sass/src/dark/_variables.scss index 04e3689..ba14a75 100644 --- a/sass/src/dark/_variables.scss +++ b/sass/src/dark/_variables.scss @@ -21,3 +21,6 @@ $table-striped-color: color('grey', 'darken-4'); $button-flat-color: $off-black; $card-bg-color: color('grey', 'darken-4'); $card-link-color: $link-color; + +$departures-highlight-color: $table-striped-color; +$departures-cancelled-color: color('red', 'darken-3'); diff --git a/sass/src/light/_variables.scss b/sass/src/light/_variables.scss index 6c5095b..4a634e9 100644 --- a/sass/src/light/_variables.scss +++ b/sass/src/light/_variables.scss @@ -6,3 +6,5 @@ $collection-link-color: color('shades', 'black'); $card-bg-color: color('blue-grey', 'lighten-5'); $inactive-color: color('grey', 'darken-2'); $input-label-color: color('shades', 'black'); +$departures-highlight-color: color('grey', 'lighten-3'); +$departures-cancelled-color: color('red', 'lighten-4'); diff --git a/templates/_departures_hafas.html.ep b/templates/_departures_hafas.html.ep index 169b319..f611d8e 100644 --- a/templates/_departures_hafas.html.ep +++ b/templates/_departures_hafas.html.ep @@ -1,39 +1,28 @@ -<table class="striped departures"> -<tbody> +<ul class="collection departures"> % my $orientation_bar_shown = param('train'); % my $now_epoch = now->epoch; % for my $result (@{$results}) { - % my $td_class = ''; + % my $row_class = ''; % my $link_class = 'action-checkin'; % if ($result->is_cancelled) { - % $td_class = "cancelled"; + % $row_class = "cancelled"; % $link_class = 'action-cancelled-from'; % } % if (not $orientation_bar_shown and $result->datetime->epoch < $now_epoch) { % $orientation_bar_shown = 1; - <tr class="now"> - <td> - </td> - <td> - <strong>— Anfragezeitpunkt —</strong> - </td> - <td><strong> + <li class="collection-item" id="now"> + <strong class="dep-time"> %= now->strftime('%H:%M') - </strong></td> - </tr> + </strong> + <strong>— Anfragezeitpunkt —</strong> + </li> % } - <tr class="<%= $link_class %>" data-station="<%= $result->station_eva %>" data-train="<%= $result->id %>" data-ts="<%= ($result->sched_datetime // $result->datetime)->epoch %>" data-tr="3"> - <td> - <a> - <%= $result->line %> - </a> - </td> - <td class="<%= $td_class %>"> - <a> - <%= $result->destination %> - </a> - </td> - <td class="<%= $td_class %>"> + <li class="collection-item <%= $link_class %> <%= $row_class %>" + data-station="<%= $result->station_eva %>" + data-train="<%= $result->id %>" + data-ts="<%= ($result->sched_datetime // $result->datetime)->epoch %>" + > + <span class="dep-time"> %= $result->datetime->strftime('%H:%M') % if ($result->delay) { (<%= sprintf('%+d', $result->delay) %>) @@ -41,8 +30,14 @@ % elsif (not defined $result->delay and not $result->is_cancelled) { <i class="material-icons" aria-label="Keine Echtzeitdaten vorhanden" style="font-size: 16px;">gps_off</i> % } - </td> - </tr> + </span> + <a class="dep-line <%= (split(/ /, $result->line))[0] %>"> + %= $result->line + </a> + <span class="dep-dest"> + %= $result->destination + % } + </span> + </li> % } -</tbody> -</table> +</ul> diff --git a/templates/_departures_iris.html.ep b/templates/_departures_iris.html.ep index c8dd834..237757c 100644 --- a/templates/_departures_iris.html.ep +++ b/templates/_departures_iris.html.ep @@ -1,42 +1,28 @@ -<table class="striped departures"> -<tbody> +<ul class="collection departures"> % my $orientation_bar_shown = param('train'); % my $now_epoch = now->epoch; % for my $result (@{$results}) { - % my $td_class = ''; + % my $row_class = ''; % my $link_class = 'action-checkin'; % if ($result->departure_is_cancelled) { - % $td_class = "cancelled"; + % $row_class = "cancelled"; % $link_class = 'action-cancelled-from'; % } % if (not $orientation_bar_shown and $result->departure->epoch < $now_epoch) { % $orientation_bar_shown = 1; - <tr class="now"> - <td> - </td> - <td> - <strong>— Anfragezeitpunkt —</strong> - </td> - <td><strong> + <li class="collection-item" id="now"> + <strong class="dep-time"> %= now->strftime('%H:%M') - </strong></td> - </tr> + </strong> + <strong>— Anfragezeitpunkt —</strong> + </li> % } - <tr class="<%= $link_class %>" data-station="<%= $result->station_uic %>" data-train="<%= $result->train_id %>" data-ts="<%= ($result->sched_departure // $result->departure)->epoch %>" data-tr="3"> - <td> - <a> - <%= $result->line %> - </a> - </td> - <td class="<%= $td_class %>"> - <a> - <%= $result->destination %> - </a> - % for my $checkin (@{$checkin_by_train->{$result->train_id} // []}) { - <br/>(<%= $checkin->{followee_name} %> → <%= $checkin->{arr_name} // '???' %>) - % } - </td> - <td class="<%= $td_class %>"> + <li class="collection-item <%= $link_class %> <%= $row_class %>" + data-station="<%= $result->station_uic %>" + data-train="<%= $result->train_id %>" + data-ts="<%= ($result->sched_departure // $result->departure)->epoch %>" + > + <span class="dep-time"> % if ($result->departure_hidden) { (<%= $result->departure->strftime('%H:%M') %>) % } @@ -49,8 +35,13 @@ % 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> + </span> + <a class="dep-line <%= (split(/ /, $result->line))[0] %>"> + %= $result->line + </a> + <span class="dep-dest"> + %= $result->destination + </span> + </li> % } -</tbody> -</table> +</ul> |