summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-04-02 21:40:18 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2024-04-02 21:40:18 +0200
commitb8254210a97e833fbf396f0af9aa9e49339d8284 (patch)
tree44e53d03e874d6987523f916dd9980680b01a9dd
parent8fe91bd6645e69ac576998abf00779aaf1f019aa (diff)
Pass HAFAS service on to geostop
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm16
-rw-r--r--public/static/js/geostop.js3
-rw-r--r--templates/landingpage.html.ep2
-rw-r--r--templates/layouts/app.html.ep2
4 files changed, 17 insertions, 6 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index 305035c..60a15d5 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -1818,14 +1818,23 @@ sub handle_result {
sub stations_by_coordinates {
my $self = shift;
- my $lon = $self->param('lon');
- my $lat = $self->param('lat');
+ my $lon = $self->param('lon');
+ my $lat = $self->param('lat');
+ my $hafas = $self->param('hafas');
if ( not $lon or not $lat ) {
$self->render( json => { error => 'Invalid lon/lat received' } );
return;
}
+ my $service = 'DB';
+ if ( $hafas
+ and $hafas ne '1'
+ and Travel::Status::DE::HAFAS::get_service($hafas) )
+ {
+ $service = $hafas;
+ }
+
$self->render_later;
my @iris = map {
@@ -1846,6 +1855,7 @@ sub stations_by_coordinates {
Travel::Status::DE::HAFAS->new_p(
promise => 'Mojo::Promise',
user_agent => $self->ua,
+ service => $service,
geoSearch => {
lat => $lat,
lon => $lon
@@ -1858,7 +1868,7 @@ sub stations_by_coordinates {
name => $_->name,
eva => $_->eva,
distance => $_->distance_m / 1000,
- hafas => 1
+ hafas => $service,
}
} $hafas->results;
if ( @hafas > 10 ) {
diff --git a/public/static/js/geostop.js b/public/static/js/geostop.js
index 80e8311..00699ec 100644
--- a/public/static/js/geostop.js
+++ b/public/static/js/geostop.js
@@ -61,7 +61,8 @@ $(function() {
};
const processLocation = function(loc) {
- $.post('/_geolocation', {lon: loc.coords.longitude, lat: loc.coords.latitude}, processResult).fail(function(jqXHR, textStatus, errorThrown) {
+ const param = new URLSearchParams(window.location.search);
+ $.post('/_geolocation', {lon: loc.coords.longitude, lat: loc.coords.latitude, hafas: param.get('hafas')}, processResult).fail(function(jqXHR, textStatus, errorThrown) {
removeStatus();
showError("Netzwerkfehler: ", textStatus, errorThrown);
});
diff --git a/templates/landingpage.html.ep b/templates/landingpage.html.ep
index 82128ca..17bb2bb 100644
--- a/templates/landingpage.html.ep
+++ b/templates/landingpage.html.ep
@@ -21,7 +21,7 @@
</p>
% }
<p class="geolink">
-<a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>">Stationen in der Umgebung suchen</a>
+<a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https')->query({hafas => param('hafas')}) %>">Stationen in der Umgebung suchen</a>
</p>
<p>
Oder hier angeben:
diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep
index ae3a7a2..8c6715a 100644
--- a/templates/layouts/app.html.ep
+++ b/templates/layouts/app.html.ep
@@ -138,7 +138,7 @@ Bitte eine Station aus der Liste auswählen</div>
</div>
% if (stash('input')) {
<div class="geolink">
- <a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>">Stationen in der Umgebung suchen</a>
+ <a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https')->query({hafas => param('hafas')}) %>">Stationen in der Umgebung suchen</a>
</div>
% }
<div class="break"></div>