diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2024-08-21 19:39:30 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2024-08-21 19:39:30 +0200 |
commit | 1a185897e271a9c6471071d8b9b70a5fed16e596 (patch) | |
tree | 34182b0628b993c20e0fd643fb7cc4079393f8ad | |
parent | 4c7b3117cd55b3cae67277a4280e2412d2e71ff8 (diff) |
backend selection: add coverage regions and links to coverage map2.8.27
-rw-r--r-- | lib/Travelynx/Controller/Account.pm | 33 | ||||
-rw-r--r-- | templates/select_backend.html.ep | 16 |
2 files changed, 46 insertions, 3 deletions
diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm index 647f616..1847cda 100644 --- a/lib/Travelynx/Controller/Account.pm +++ b/lib/Travelynx/Controller/Account.pm @@ -1005,6 +1005,36 @@ sub backend_form { my @backends = $self->stations->get_backends; + my %place_map = ( + AT => 'Österreich', + CH => 'Schweiz', + 'CH-BE' => 'Kanton Bern', + 'CH-GE' => 'Kanton Genf', + 'CH-LU' => 'Kanton Luzern', + 'CH-ZH' => 'Kanton Zürich', + DE => 'Deutschland', + 'DE-BB' => 'Brandenburg', + 'DE-BW' => 'Baden-Württemberg', + 'DE-BE' => 'Berlin', + 'DE-BY' => 'Bayern', + 'DE-HB' => 'Bremen', + 'DE-HE' => 'Hessen', + 'DE-MV' => 'Mecklenburg-Vorpommern', + 'DE-NI' => 'Niedersachsen', + 'DE-NW' => 'Nordrhein-Westfalen', + 'DE-RP' => 'Rheinland-Pfalz', + 'DE-SH' => 'Schleswig-Holstein', + 'DE-ST' => 'Sachsen-Anhalt', + 'DE-TH' => 'Thüringen', + DK => 'Dänemark', + 'GB-NIR' => 'Nordirland', + LI => 'Liechtenstein', + LU => 'Luxembourg', + IE => 'Irland', + 'US-CA' => 'California', + 'US-TX' => 'Texas', + ); + for my $backend (@backends) { my $type = 'UNKNOWN'; if ( $backend->{iris} ) { @@ -1018,6 +1048,9 @@ sub backend_form { $type = 'HAFAS'; $backend->{longname} = $s->{name}; $backend->{homepage} = $s->{homepage}; + $backend->{regions} = [ map { $place_map{$_} // $_ } + @{ $s->{coverage}{regions} // [] } ]; + $backend->{has_area} = $s->{coverage}{area} ? 1 : 0; } else { $type = undef; diff --git a/templates/select_backend.html.ep b/templates/select_backend.html.ep index 0f65039..d5bc9d5 100644 --- a/templates/select_backend.html.ep +++ b/templates/select_backend.html.ep @@ -17,12 +17,22 @@ % for my $backend (@{ stash('backends') // [] }) { <div class="row"> <div class="col s8 m6 l6 right-align"> - % if ($backend->{longname}) { - <a href="<%= $backend->{homepage} %>"><%= $backend->{longname} %></a> - % } + %= $backend->{longname} % if ($backend->{id} == $user->{backend_id}) { (aktuell ausgewählt) % } + % if ($backend->{has_area}) { + <br/> + <a href="https://dbf.finalrewind.org/coverage/HAFAS/<%= $backend->{name} %>"><%= join(q{, }, @{$backend->{regions} // []}) || '[Karte]' %></a> + % } + % elsif ($backend->{regions}) { + <br/> + %= join(q{, }, @{$backend->{regions} // []}) + % } + % if ($backend->{homepage}) { + <br/> + <a href="<%= $backend->{homepage} %>"><%= $backend->{homepage} =~ s{ ^ http s? :// (?: www[.] )? (.*?) (?: / )? $ }{$1}xr %></a> + % } </div> <div class="col s4 m6 l6 left-align"> <button class="btn waves-effect waves-light <%= $backend->{id} == $user->{backend_id} ? 'disabled' : q{} %>" style="min-width: 6em;" type="submit" name="backend" value="<%= $backend->{id} %>"> |