Unverified Commit 654bde92 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

geosearch: always query iris and hafas stops

parent 5d330a77
Loading
Loading
Loading
Loading
+46 −17
Original line number Diff line number Diff line
@@ -555,9 +555,11 @@ sub geolocation {

	if ( not $lon or not $lat ) {
		$self->render( json => { error => 'Invalid lon/lat received' } );
		return;
	}
	else {
		my @candidates = map {
	$self->render_later;

	my @iris = map {
		{
			ds100    => $_->[0][0],
			name     => $_->[0][1],
@@ -568,22 +570,49 @@ sub geolocation {
		}
	} Travel::Status::DE::IRIS::Stations::get_station_by_location( $lon,
		$lat, 10 );
		@candidates = uniq_by { $_->{name} } @candidates;
		if ( @candidates > 5 ) {
	@iris = uniq_by { $_->{name} } @iris;
	if ( @iris > 5 ) {
		@iris = @iris[ 0 .. 4 ];
	}

	Travel::Status::DE::HAFAS->new_p(
		promise    => 'Mojo::Promise',
		user_agent => $self->ua,
		geoSearch  => {
			lat => $lat,
			lon => $lon
		}
	)->then(
		sub {
			my ($hafas) = @_;
			my @hafas = map {
				{
					name     => $_->name,
					eva      => $_->eva,
					distance => $_->distance_m / 1000,
					hafas    => 1
				}
			} $hafas->results;
			if ( @hafas > 5 ) {
				@hafas = @hafas[ 0 .. 4 ];
			}
			$self->render(
				json => {
					candidates => [ @candidates[ 0 .. 4 ] ],
					candidates => [ @iris, @hafas ],
				}
			);
		}
		else {
	)->catch(
		sub {
			my ($err) = @_;
			$self->render(
				json => {
					candidates => [@candidates],
					candidates => [@iris],
					warning    => $err,
				}
			);
		}
	}
	)->wait;
}

sub travel_action {
+3 −2
Original line number Diff line number Diff line
@@ -46,11 +46,12 @@ $(document).ready(function() {
			const res = $(document.createElement('p'));
			$.each(data.candidates, function(i, candidate) {

				const ds100 = candidate.ds100,
				const eva = candidate.eva,
					name = candidate.name,
					hafas = candidate.hafas,
					distance = candidate.distance.toFixed(1);

				const node = $('<a class="tablerow" href="/s/' + ds100 + '"><span>' + name + '</span></a>');
				const node = $('<a class="tablerow" href="/s/' + eva + '?hafas=' + hafas + '"><span>' + name + '</span></a>');
				node.click(function() {
					$('nav .preloader-wrapper').addClass('active');
				});