Commit c8f9fc90 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

allow manual input of station name

Closes #1
parent 26da2b59
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -988,6 +988,13 @@ post '/geolocation' => sub {

};

post '/list_departures' => sub {
	my ($self) = @_;
	my $station = $self->param('station');

	$self->redirect_to("/s/${station}");
};

get '/api/v0/:action/:token' => sub {
	my ($self) = @_;

+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ $(document).ready(function() {
		placeholder.remove();
		var errnode = $(document.createElement('div'));
		errnode.attr('class', 'error');
		errnode.text(message + '. Alternativ kannst du unter „travelynx.de/s/Name der Station“ einchecken.');
		errnode.text(message);

		var headnode = $(document.createElement('strong'));
		headnode.text(header);
+1 −1
Original line number Diff line number Diff line
$(document).ready(function(){var e=$("p.geolocationhint"),t=$("div.geolocation div.progress"),n=function(n,r,o){e.remove(),t.remove();var a=$(document.createElement("div"));a.attr("class","error"),a.text(r+". Alternativ kannst du unter „travelynx.de/s/Name der Station“ einchecken.");var i=$(document.createElement("strong"));i.text(n),a.prepend(i),$("div.geolocation").append(a)},r=function(e){e.error?n("Backend-Fehler:",e.error):0==e.candidates.length?n("Keine Bahnhöfe in 70km Umkreis gefunden",""):(resultTable=$("<table><tbody></tbody></table>"),resultBody=resultTable.children(),$.each(e.candidates,function(e,t){var n=t.ds100,r=t.name,o=t.distance;o=o.toFixed(1);var a=$(document.createElement("a"));a.attr("href",n),a.text(r),resultBody.append('<tr><td><a href="/s/'+n+'">'+r+"</a></td></tr>")}),t.replaceWith(resultTable))},o=function(e){$.post("/geolocation",{lon:e.coords.longitude,lat:e.coords.latitude},r)},a=function(e){e.code==e.PERMISSION_DENIED?n("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert."):e.code==e.POSITION_UNAVAILABLE?n("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)"):e.code==e.TIMEOUT?n("Standort konnte nicht ermittelt werden","(Timeout)"):n("Standort konnte nicht ermittelt werden","(unbekannter Fehler)")};navigator.geolocation?navigator.geolocation.getCurrentPosition(o,a):n("Standortanfragen werden von diesem Browser nicht unterstützt","")});
$(document).ready(function(){var e=$("p.geolocationhint"),t=$("div.geolocation div.progress"),n=function(n,r,o){e.remove(),t.remove();var a=$(document.createElement("div"));a.attr("class","error"),a.text(r);var i=$(document.createElement("strong"));i.text(n),a.prepend(i),$("div.geolocation").append(a)},r=function(e){e.error?n("Backend-Fehler:",e.error):0==e.candidates.length?n("Keine Bahnhöfe in 70km Umkreis gefunden",""):(resultTable=$("<table><tbody></tbody></table>"),resultBody=resultTable.children(),$.each(e.candidates,function(e,t){var n=t.ds100,r=t.name,o=t.distance;o=o.toFixed(1);var a=$(document.createElement("a"));a.attr("href",n),a.text(r),resultBody.append('<tr><td><a href="/s/'+n+'">'+r+"</a></td></tr>")}),t.replaceWith(resultTable))},o=function(e){$.post("/geolocation",{lon:e.coords.longitude,lat:e.coords.latitude},r)},a=function(e){e.code==e.PERMISSION_DENIED?n("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert."):e.code==e.POSITION_UNAVAILABLE?n("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)"):e.code==e.TIMEOUT?n("Standort konnte nicht ermittelt werden","(Timeout)"):n("Standort konnte nicht ermittelt werden","(unbekannter Fehler)")};navigator.geolocation?navigator.geolocation.getCurrentPosition(o,a):n("Standortanfragen werden von diesem Browser nicht unterstützt","")});
+0 −0

File moved.

+12 −0
Original line number Diff line number Diff line
@@ -34,6 +34,18 @@
						<div class="geolocation">
							<div class="progress"><div class="indeterminate"></div></div>
						</div>
						%= form_for 'list_departures' => begin
							<div class="input-field text-white">
								%= text_field 'station', id => 'station', class => 'white-text', require => undef
								<label for="station">Manuelle Eingabe (Name oder DS100)</label>
							</div>
							<div class="center-align">
								<button class="btn waves-effect waves-light btn-flat white" type="submit" name="action" value="departures">
									<i class="material-icons left">send</i>
									Abfahrten
								</button>
							</div>
						%= end
					</div>
				</div>
			% }
Loading