From 165d74936a1a16c11ed7da4b80f046634347f30d Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 4 Apr 2021 08:46:03 +0200 Subject: geostop, geotrain: handle network errors --- public/static/css/material-icons.css | 8 ++++---- public/static/js/geostop.js | 5 ++++- public/static/js/geostop.min.js | 2 +- public/static/js/geotrain.js | 2 +- public/static/js/geotrain.min.js | 2 +- public/static/v48 | 1 - public/static/v50 | 1 + templates/layouts/app.html.ep | 2 +- templates/layouts/legacy.html.ep | 2 +- 9 files changed, 14 insertions(+), 11 deletions(-) delete mode 120000 public/static/v48 create mode 120000 public/static/v50 diff --git a/public/static/css/material-icons.css b/public/static/css/material-icons.css index 767d1f5..9b5f2a2 100644 --- a/public/static/css/material-icons.css +++ b/public/static/css/material-icons.css @@ -2,12 +2,12 @@ font-family: 'Material Icons'; font-style: normal; font-weight: 400; - src: url(/static/v49/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */ + src: url(/static/v50/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */ src: local('Material Icons'), local('MaterialIcons-Regular'), - url(/static/v49/fonts/MaterialIcons-Regular.woff2) format('woff2'), - url(/static/v49/fonts/MaterialIcons-Regular.woff) format('woff'), - url(/static/v49/fonts/MaterialIcons-Regular.ttf) format('truetype'); + url(/static/v50/fonts/MaterialIcons-Regular.woff2) format('woff2'), + url(/static/v50/fonts/MaterialIcons-Regular.woff) format('woff'), + url(/static/v50/fonts/MaterialIcons-Regular.ttf) format('truetype'); } .material-icons { diff --git a/public/static/js/geostop.js b/public/static/js/geostop.js index 253f000..34ba58e 100644 --- a/public/static/js/geostop.js +++ b/public/static/js/geostop.js @@ -56,7 +56,10 @@ $(function() { }; var processLocation = function(loc) { - $.post('/_geolocation', {lon: loc.coords.longitude, lat: loc.coords.latitude}, processResult); + $.post('/_geolocation', {lon: loc.coords.longitude, lat: loc.coords.latitude}, processResult).fail(function(jqXHR, textStatus, errorThrown) { + removeStatus(); + showError("Netzwerkfehler: ", textStatus, errorThrown); + }); $('div.candidatestatus').text('Suche Bahnhöfe…'); }; diff --git a/public/static/js/geostop.min.js b/public/static/js/geostop.min.js index 29587be..3b35f9d 100644 --- a/public/static/js/geostop.min.js +++ b/public/static/js/geostop.min.js @@ -1 +1 @@ -$(function(){var e=function(){$("div.candidatestatus").remove()},t=function(e,t,n){var r=$(document.createElement("div"));r.attr("class","error"),r.text(t);var o=$(document.createElement("strong"));if(o.text(e),r.prepend(o),n){var a=$(document.createElement("div"));a.attr("class","errcode"),a.text(n),r.append(a)}$("div.candidatelist").append(r)},n=function(n){e(),n.error?t("Backend-Fehler:",n.error,null):0==n.candidates.length?t("Keine Bahnhöfe in 70km Umkreis gefunden","",null):$.each(n.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);var i=$(document.createElement("div"));i.attr("class","distance"),i.text(o),a.append(i),$("div.candidatelist").append(a)})},r=function(e){$.post("/_geolocation",{lon:e.coords.longitude,lat:e.coords.latitude},n),$("div.candidatestatus").text("Suche Bahnhöfe…")},o=function(n){e(),n.code==n.PERMISSION_DENIED?t("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert.","geolocation.error.PERMISSION_DENIED"):n.code==n.POSITION_UNAVAILABLE?t("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)","geolocation.error.POSITION_UNAVAILABLE"):n.code==n.TIMEOUT?t("Standort konnte nicht ermittelt werden","(Timeout)","geolocation.error.TIMEOUT"):t("Standort konnte nicht ermittelt werden","(unbekannter Fehler)","unknown geolocation.error code")};navigator.geolocation?(navigator.geolocation.getCurrentPosition(r,o),$("div.candidatestatus").text("Position wird bestimmt…")):(e(),t("Standortanfragen werden von diesem Browser nicht unterstützt","",null))}); +$(function(){var e=function(){$("div.candidatestatus").remove()},t=function(e,t,n){var r=$(document.createElement("div"));r.attr("class","error"),r.text(t);var o=$(document.createElement("strong"));if(o.text(e),r.prepend(o),n){var a=$(document.createElement("div"));a.attr("class","errcode"),a.text(n),r.append(a)}$("div.candidatelist").append(r)},n=function(n){e(),n.error?t("Backend-Fehler:",n.error,null):0==n.candidates.length?t("Keine Bahnhöfe in 70km Umkreis gefunden","",null):$.each(n.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);var i=$(document.createElement("div"));i.attr("class","distance"),i.text(o),a.append(i),$("div.candidatelist").append(a)})},r=function(r){$.post("/_geolocation",{lon:r.coords.longitude,lat:r.coords.latitude},n).fail(function(n,r,o){e(),t("Netzwerkfehler: ",r,o)}),$("div.candidatestatus").text("Suche Bahnhöfe…")},o=function(n){e(),n.code==n.PERMISSION_DENIED?t("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert.","geolocation.error.PERMISSION_DENIED"):n.code==n.POSITION_UNAVAILABLE?t("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)","geolocation.error.POSITION_UNAVAILABLE"):n.code==n.TIMEOUT?t("Standort konnte nicht ermittelt werden","(Timeout)","geolocation.error.TIMEOUT"):t("Standort konnte nicht ermittelt werden","(unbekannter Fehler)","unknown geolocation.error code")};navigator.geolocation?(navigator.geolocation.getCurrentPosition(r,o),$("div.candidatestatus").text("Position wird bestimmt…")):(e(),t("Standortanfragen werden von diesem Browser nicht unterstützt","",null))}); diff --git a/public/static/js/geotrain.js b/public/static/js/geotrain.js index 3e0eec5..9df546b 100644 --- a/public/static/js/geotrain.js +++ b/public/static/js/geotrain.js @@ -61,7 +61,7 @@ $(function() { var processLocation = function(loc) { $.get('https://dbf.finalrewind.org/__geotrain/search', {lon: loc.coords.longitude, lat: loc.coords.latitude}, processResult).fail(function(jqXHR, textStatus, errorThrown) { removeStatus(); - showError("Fehler im Zuglokalisierungs-Backend: ", textStatus, errorThrown); + showError("Netzwerkfehler: ", textStatus, errorThrown); }); $('div.candidatestatus').text('Suche Züge…'); }; diff --git a/public/static/js/geotrain.min.js b/public/static/js/geotrain.min.js index 8bf7abb..3d05899 100644 --- a/public/static/js/geotrain.min.js +++ b/public/static/js/geotrain.min.js @@ -1 +1 @@ -$(function(){var e=function(){$("div.candidatestatus").remove()},t=function(e,t,n){var r=$(document.createElement("div"));r.attr("class","error"),r.text(t);var o=$(document.createElement("strong"));if(o.text(e),r.prepend(o),n){var i=$(document.createElement("div"));i.attr("class","errcode"),i.text(n),r.append(i)}$("div.candidatelist").append(r)},n=function(n){e(),n.error?t("Backend-Fehler:",n.error,null):0==n.evas.length?t("Keine Bahnstrecke gefunden","",null):0==n.trains.length?t("Keine Züge auf der Strecke gefunden","",null):$.each(n.trains,function(e,t){const n=t.stops[0][1],r=t.stops[0][2],o=t.stops[1][0],i=t.stops[1][1],a=t.stops[1][2];var d=$(document.createElement("a"));d.attr("href","/z/"+t.train+"/"+o),d.text(t.line);var c=$(document.createElement("div"));c.attr("class","traininfo"),c.html(t.likelihood+"%
"+r+" "+n+"
"+a+" "+i),d.append(c),$("div.candidatelist").append(d)})},r=function(r){$.get("https://dbf.finalrewind.org/__geotrain/search",{lon:r.coords.longitude,lat:r.coords.latitude},n).fail(function(n,r,o){e(),t("Fehler im Zuglokalisierungs-Backend: ",r,o)}),$("div.candidatestatus").text("Suche Züge…")},o=function(n){e(),n.code==n.PERMISSION_DENIED?t("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert.","geolocation.error.PERMISSION_DENIED"):n.code==n.POSITION_UNAVAILABLE?t("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)","geolocation.error.POSITION_UNAVAILABLE"):n.code==n.TIMEOUT?t("Standort konnte nicht ermittelt werden","(Timeout)","geolocation.error.TIMEOUT"):t("Standort konnte nicht ermittelt werden","(unbekannter Fehler)","unknown geolocation.error code")};navigator.geolocation?(navigator.geolocation.getCurrentPosition(r,o),$("div.candidatestatus").text("Position wird bestimmt…")):(e(),t("Standortanfragen werden von diesem Browser nicht unterstützt","",null))}); +$(function(){var e=function(){$("div.candidatestatus").remove()},t=function(e,t,n){var r=$(document.createElement("div"));r.attr("class","error"),r.text(t);var o=$(document.createElement("strong"));if(o.text(e),r.prepend(o),n){var i=$(document.createElement("div"));i.attr("class","errcode"),i.text(n),r.append(i)}$("div.candidatelist").append(r)},n=function(n){e(),n.error?t("Backend-Fehler:",n.error,null):0==n.evas.length?t("Keine Bahnstrecke gefunden","",null):0==n.trains.length?t("Keine Züge auf der Strecke gefunden","",null):$.each(n.trains,function(e,t){const n=t.stops[0][1],r=t.stops[0][2],o=t.stops[1][0],i=t.stops[1][1],a=t.stops[1][2];var d=$(document.createElement("a"));d.attr("href","/z/"+t.train+"/"+o),d.text(t.line);var c=$(document.createElement("div"));c.attr("class","traininfo"),c.html(t.likelihood+"%
"+r+" "+n+"
"+a+" "+i),d.append(c),$("div.candidatelist").append(d)})},r=function(r){$.get("https://dbf.finalrewind.org/__geotrain/search",{lon:r.coords.longitude,lat:r.coords.latitude},n).fail(function(n,r,o){e(),t("Netzwerkfehler: ",r,o)}),$("div.candidatestatus").text("Suche Züge…")},o=function(n){e(),n.code==n.PERMISSION_DENIED?t("Standortanfrage nicht möglich.","Vermutlich fehlen die Rechte im Browser oder der Android Location Service ist deaktiviert.","geolocation.error.PERMISSION_DENIED"):n.code==n.POSITION_UNAVAILABLE?t("Standort konnte nicht ermittelt werden","(Service nicht verfügbar)","geolocation.error.POSITION_UNAVAILABLE"):n.code==n.TIMEOUT?t("Standort konnte nicht ermittelt werden","(Timeout)","geolocation.error.TIMEOUT"):t("Standort konnte nicht ermittelt werden","(unbekannter Fehler)","unknown geolocation.error code")};navigator.geolocation?(navigator.geolocation.getCurrentPosition(r,o),$("div.candidatestatus").text("Position wird bestimmt…")):(e(),t("Standortanfragen werden von diesem Browser nicht unterstützt","",null))}); diff --git a/public/static/v48 b/public/static/v48 deleted file mode 120000 index 945c9b4..0000000 --- a/public/static/v48 +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file diff --git a/public/static/v50 b/public/static/v50 new file mode 120000 index 0000000..945c9b4 --- /dev/null +++ b/public/static/v50 @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep index 75d10b1..ed529c7 100644 --- a/templates/layouts/app.html.ep +++ b/templates/layouts/app.html.ep @@ -18,7 +18,7 @@ % } - % my $av = 'v49'; # asset version + % my $av = 'v50'; # asset version % if (session('theme') and session('theme') eq 'dark' or param('dark')) { %= stylesheet "/static/${av}/css/dark.min.css", id => 'theme' % } diff --git a/templates/layouts/legacy.html.ep b/templates/layouts/legacy.html.ep index 10a7629..0f26726 100644 --- a/templates/layouts/legacy.html.ep +++ b/templates/layouts/legacy.html.ep @@ -17,7 +17,7 @@ % } - % my $av = 'v49'; # asset version + % my $av = 'v50'; # asset version %= stylesheet "/static/${av}/css/default.css" %= stylesheet "/static/${av}/css/material-icons.css" %= stylesheet "/static/${av}/css/jquery-ui.min.css" -- cgit v1.2.3