1 line
2.4 KiB
JavaScript
1 line
2.4 KiB
JavaScript
$(document).ready(function(){function r(){return $("div.geolocation div.progress")}function e(e){$.post("/geolocation",{lon:e.coords.longitude,lat:e.coords.latitude},o)}function t(e){e.code==e.PERMISSION_DENIED?n("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert.","geolocation.error.PERMISSION_DENIED"):e.code==e.POSITION_UNAVAILABLE?n("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)","geolocation.error.POSITION_UNAVAILABLE"):e.code==e.TIMEOUT?n("Standort konnte nicht ermittelt werden","(Timeout)","geolocation.error.TIMEOUT"):n("Standort konnte nicht ermittelt werden","(unbekannter Fehler)","unknown geolocation.error code")}const n=function(e,t,n){var o=$(document.createElement("div")),t=(o.attr("class","error"),o.text(t),$(document.createElement("strong"))),e=(t.text(e+" "),o.prepend(t),$("div.geolocation").append(o),$("div.geolocation").data("recent"));if(e){t=e.split("|");const a=$(document.createElement("p"));$.each(t,function(e,t){t=t.split(";"),t=$('<a class="tablerow" href="/s/'+t[0]+"?hafas="+t[2]+'"><span><i class="material-icons" aria-hidden="true">'+("0"==t[2]?"train":"directions")+"</i>"+t[1]+"</span></a>");t.click(function(){$("nav .preloader-wrapper").addClass("active")}),a.append(t)}),$("p.geolocationhint").text("Letzte Ziele:"),r().replaceWith(a)}else r().remove()},o=function(e){if(e.error)n("Backend-Fehler:",e.error,null);else if(0==e.candidates.length)n("Keine Bahnhöfe in 70km Umkreis gefunden","",null);else{const i=$(document.createElement("p"));$.each(e.candidates,function(e,t){var n=t.eva,o=t.name,a=t.hafas,t=(t.distance.toFixed(1),$('<a class="tablerow" href="/s/'+n+"?hafas="+a+'"><span><i class="material-icons" aria-hidden="true">'+(0==parts[2]?"train":"directions")+"</i>"+o+"</span></a>"));t.click(function(){$("nav .preloader-wrapper").addClass("active")}),i.append(t)}),r().replaceWith(i)}},a=$("div.geolocation > button");a.data("recent");function i(){a.replaceWith($('<p class="geolocationhint">Stationen in der Umgebung:</p><div class="progress"><div class="indeterminate"></div></div>')),navigator.geolocation.getCurrentPosition(e,t)}a.length&&(navigator.geolocation?navigator.permissions?navigator.permissions.query({name:"geolocation"}).then(function(e){"prompt"===e.state?a.on("click",i):i()}):a.on("click",i):n("Standortanfragen werden von diesem Browser nicht unterstützt","",null))});
|