summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/service-worker.js22
-rw-r--r--public/static/css/material-icons.css8
-rw-r--r--public/static/js/geolocation.js28
-rw-r--r--public/static/js/geolocation.min.js2
-rw-r--r--public/static/manifest.json12
l---------public/static/v95 (renamed from public/static/v93)0
-rw-r--r--templates/layouts/default.html.ep2
7 files changed, 43 insertions, 31 deletions
diff --git a/public/service-worker.js b/public/service-worker.js
index 85b2992..98678f0 100644
--- a/public/service-worker.js
+++ b/public/service-worker.js
@@ -1,17 +1,17 @@
-const CACHE_NAME = 'static-cache-v94';
+const CACHE_NAME = 'static-cache-v95';
const FILES_TO_CACHE = [
'/favicon.ico',
'/offline.html',
- '/static/v94/css/light.min.css',
- '/static/v94/css/dark.min.css',
- '/static/v94/css/material-icons.css',
- '/static/v94/fonts/MaterialIcons-Regular.woff2',
- '/static/v94/fonts/MaterialIcons-Regular.woff',
- '/static/v94/fonts/MaterialIcons-Regular.ttf',
- '/static/v94/js/jquery-3.4.1.min.js',
- '/static/v94/js/materialize.min.js',
- '/static/v94/js/travelynx-actions.min.js',
- '/static/v94/js/geolocation.min.js',
+ '/static/v95/css/light.min.css',
+ '/static/v95/css/dark.min.css',
+ '/static/v95/css/material-icons.css',
+ '/static/v95/fonts/MaterialIcons-Regular.woff2',
+ '/static/v95/fonts/MaterialIcons-Regular.woff',
+ '/static/v95/fonts/MaterialIcons-Regular.ttf',
+ '/static/v95/js/jquery-3.4.1.min.js',
+ '/static/v95/js/materialize.min.js',
+ '/static/v95/js/travelynx-actions.min.js',
+ '/static/v95/js/geolocation.min.js',
];
self.addEventListener('install', (evt) => {
diff --git a/public/static/css/material-icons.css b/public/static/css/material-icons.css
index 3c1b3a7..ad59f3a 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/v94/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */
+ src: url(/static/v95/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
- url(/static/v94/fonts/MaterialIcons-Regular.woff2) format('woff2'),
- url(/static/v94/fonts/MaterialIcons-Regular.woff) format('woff'),
- url(/static/v94/fonts/MaterialIcons-Regular.ttf) format('truetype');
+ url(/static/v95/fonts/MaterialIcons-Regular.woff2) format('woff2'),
+ url(/static/v95/fonts/MaterialIcons-Regular.woff) format('woff'),
+ url(/static/v95/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
diff --git a/public/static/js/geolocation.js b/public/static/js/geolocation.js
index f3bacd1..877bd59 100644
--- a/public/static/js/geolocation.js
+++ b/public/static/js/geolocation.js
@@ -26,7 +26,7 @@ $(document).ready(function() {
const parts = stop.split(';');
const [ eva, name, dbris, efa, hafas, motis ] = parts;
- const node = $('<a class="tablerow" href="/s/' + (eva||0) + '?dbris=' + (dbris||0) + '&amp;efa=' + (efa||0) + '&amp;hafas=' + (hafas||0) + '&amp;motis=' + (motis||0) + '"><span><i class="material-icons" aria-hidden="true">' + (!(dbris||efa||motis) ? 'train' : 'directions') + '</i>' + name + '</span></a>');
+ const node = $('<a class="tablerow" href="/s/' + eva + '?dbris=' + (dbris||0) + '&amp;efa=' + (efa||0) + '&amp;hafas=' + (hafas||0) + '&amp;motis=' + (motis||0) + '"><span><i class="material-icons" aria-hidden="true">' + (!(dbris||efa||hafas||motis) ? 'train' : 'directions') + '</i>' + name + '</span></a>');
node.click(function() {
$('nav .preloader-wrapper').addClass('active');
});
@@ -49,24 +49,36 @@ $(document).ready(function() {
$.each(data.candidates, function(i, candidate) {
let node;
- if (candidate.motis !== undefined) {
- const { id, name, motis } = candidate;
-
- node = $('<a class="tablerow" href="/s/' + id + '?motis=' + motis + '"><span><i class="material-icons" aria-hidden="true">train</i>' + name + '</span></a>');
- } else if (candidate.efa !== undefined) {
+ if (candidate.dbris) {
+ const eva = candidate.eva,
+ name = candidate.name,
+ dbris = candidate.dbris,
+ distance = candidate.distance.toFixed(1);
+ node = $('<a class="tablerow" href="/s/' + id + '?dbris=' + dbris + '"><span><i class="material-icons" aria-hidden="true">directions</i>' + name + '</span></a>');
+ } else if (candidate.efa) {
const eva = candidate.eva,
name = candidate.name,
efa = candidate.efa,
distance = candidate.distance.toFixed(1);
node = $('<a class="tablerow" href="/s/' + eva + '?efa=' + efa + '"><span><i class="material-icons" aria-hidden="true">directions</i>' + name + '</span></a>');
- } else {
+ } else if (candidate.hafas) {
const eva = candidate.eva,
name = candidate.name,
hafas = candidate.hafas,
distance = candidate.distance.toFixed(1);
- node = $('<a class="tablerow" href="/s/' + eva + '?hafas=' + hafas + '"><span><i class="material-icons" aria-hidden="true">' + (hafas == '0' ? 'train' : 'directions') + '</i>' + name + '</span></a>');
+ node = $('<a class="tablerow" href="/s/' + eva + '?hafas=' + hafas + '"><span><i class="material-icons" aria-hidden="true">directions</i>' + name + '</span></a>');
+ } else if (candidate.motis) {
+ const { id, name, motis } = candidate;
+
+ node = $('<a class="tablerow" href="/s/' + id + '?motis=' + motis + '"><span><i class="material-icons" aria-hidden="true">directions</i>' + name + '</span></a>');
+ } else {
+ const eva = candidate.eva,
+ name = candidate.name,
+ distance = candidate.distance.toFixed(1);
+
+ node = $('<a class="tablerow" href="/s/' + eva + '"><span><i class="material-icons" aria-hidden="true">train</i>' + name + '</span></a>');
}
node.click(function() {
diff --git a/public/static/js/geolocation.min.js b/public/static/js/geolocation.min.js
index 4bf5584..4ec9dc7 100644
--- a/public/static/js/geolocation.min.js
+++ b/public/static/js/geolocation.min.js
@@ -1 +1 @@
-$(document).ready(function(){function i(){return $("div.geolocation div.progress")}function e(e){var t=$("div.geolocation").data("backend");$.post("/geolocation",{lon:e.coords.longitude,lat:e.coords.latitude,backend:t},a)}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 a=$(document.createElement("div")),t=(a.attr("class","error"),a.text(t),$(document.createElement("strong"))),e=(t.text(e+" "),a.prepend(t),$("div.geolocation").append(a),$("div.geolocation").data("recent"));if(e){t=e.split("|");const c=$(document.createElement("p"));$.each(t,function(e,t){var[t,n,a,i,o,r]=t.split(";"),t=$('<a class="tablerow" href="/s/'+(t||0)+"?dbris="+(a||0)+"&amp;efa="+(i||0)+"&amp;hafas="+(o||0)+"&amp;motis="+(r||0)+'"><span><i class="material-icons" aria-hidden="true">'+(a||i||r?"directions":"train")+"</i>"+n+"</span></a>");t.click(function(){$("nav .preloader-wrapper").addClass("active")}),c.append(t)}),$("p.geolocationhint").text("Letzte Ziele:"),i().replaceWith(c)}else i().remove()},a=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 r=$(document.createElement("p"));$.each(e.candidates,function(e,t){let n;var a,i,o;(n=void 0!==t.motis?({id:a,name:i,motis:o}=t,$('<a class="tablerow" href="/s/'+a+"?motis="+o+'"><span><i class="material-icons" aria-hidden="true">train</i>'+i+"</span></a>")):void 0!==t.efa?(a=t.eva,o=t.name,i=t.efa,t.distance.toFixed(1),$('<a class="tablerow" href="/s/'+a+"?efa="+i+'"><span><i class="material-icons" aria-hidden="true">directions</i>'+o+"</span></a>")):(a=t.eva,i=t.name,o=t.hafas,t.distance.toFixed(1),$('<a class="tablerow" href="/s/'+a+"?hafas="+o+'"><span><i class="material-icons" aria-hidden="true">'+("0"==o?"train":"directions")+"</i>"+i+"</span></a>"))).click(function(){$("nav .preloader-wrapper").addClass("active")}),r.append(n)}),i().replaceWith(r)}},o=$("div.geolocation > .request");o.data("recent");function r(){o.replaceWith($('<p class="geolocationhint">Stationen in der Umgebung:</p><div class="progress"><div class="indeterminate"></div></div>')),navigator.geolocation.getCurrentPosition(e,t)}o.length&&(navigator.geolocation?navigator.permissions?navigator.permissions.query({name:"geolocation"}).then(function(e){"prompt"===e.state?o.on("click",r):r()}):o.on("click",r):n("Standortanfragen werden von diesem Browser nicht unterstützt","",null))});
+$(document).ready(function(){function i(){return $("div.geolocation div.progress")}function e(e){var a=$("div.geolocation").data("backend");$.post("/geolocation",{lon:e.coords.longitude,lat:e.coords.latitude,backend:a},t)}function a(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,a,n){var t=$(document.createElement("div")),a=(t.attr("class","error"),t.text(a),$(document.createElement("strong"))),e=(a.text(e+" "),t.prepend(a),$("div.geolocation").append(t),$("div.geolocation").data("recent"));if(e){a=e.split("|");const s=$(document.createElement("p"));$.each(a,function(e,a){var[a,n,t,i,o,r]=a.split(";"),a=$('<a class="tablerow" href="/s/'+a+"?dbris="+(t||0)+"&amp;efa="+(i||0)+"&amp;hafas="+(o||0)+"&amp;motis="+(r||0)+'"><span><i class="material-icons" aria-hidden="true">'+(t||i||o||r?"directions":"train")+"</i>"+n+"</span></a>");a.click(function(){$("nav .preloader-wrapper").addClass("active")}),s.append(a)}),$("p.geolocationhint").text("Letzte Ziele:"),i().replaceWith(s)}else i().remove()},t=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 c=$(document.createElement("p"));$.each(e.candidates,function(e,a){let n;if(a.dbris){a.eva;var t=a.name,i=a.dbris;a.distance.toFixed(1);n=$('<a class="tablerow" href="/s/'+id+"?dbris="+i+'"><span><i class="material-icons" aria-hidden="true">directions</i>'+t+"</span></a>")}else if(a.efa){var i=a.eva,t=a.name,o=a.efa;a.distance.toFixed(1);n=$('<a class="tablerow" href="/s/'+i+"?efa="+o+'"><span><i class="material-icons" aria-hidden="true">directions</i>'+t+"</span></a>")}else if(a.hafas){i=a.eva,o=a.name,t=a.hafas;a.distance.toFixed(1);n=$('<a class="tablerow" href="/s/'+i+"?hafas="+t+'"><span><i class="material-icons" aria-hidden="true">directions</i>'+o+"</span></a>")}else if(a.motis){const{id,name:r,motis:s}=a;n=$('<a class="tablerow" href="/s/'+id+"?motis="+s+'"><span><i class="material-icons" aria-hidden="true">directions</i>'+r+"</span></a>")}else{i=a.eva,t=a.name;a.distance.toFixed(1);n=$('<a class="tablerow" href="/s/'+i+'"><span><i class="material-icons" aria-hidden="true">train</i>'+t+"</span></a>")}n.click(function(){$("nav .preloader-wrapper").addClass("active")}),c.append(n)}),i().replaceWith(c)}},o=$("div.geolocation > .request");o.data("recent");function r(){o.replaceWith($('<p class="geolocationhint">Stationen in der Umgebung:</p><div class="progress"><div class="indeterminate"></div></div>')),navigator.geolocation.getCurrentPosition(e,a)}o.length&&(navigator.geolocation?navigator.permissions?navigator.permissions.query({name:"geolocation"}).then(function(e){"prompt"===e.state?o.on("click",r):r()}):o.on("click",r):n("Standortanfragen werden von diesem Browser nicht unterstützt","",null))});
diff --git a/public/static/manifest.json b/public/static/manifest.json
index 0709497..648b1e1 100644
--- a/public/static/manifest.json
+++ b/public/static/manifest.json
@@ -3,27 +3,27 @@
"short_name": "Travelynx",
"scope": "/",
"icons": [{
- "src": "/static/v94/icons/icon-128x128.png",
+ "src": "/static/v95/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png"
}, {
- "src": "/static/v94/icons/icon-144x144.png",
+ "src": "/static/v95/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png"
}, {
- "src": "/static/v94/icons/icon-152x152.png",
+ "src": "/static/v95/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png"
}, {
- "src": "/static/v94/icons/icon-192x192.png",
+ "src": "/static/v95/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
}, {
- "src": "/static/v94/icons/icon-256x256.png",
+ "src": "/static/v95/icons/icon-256x256.png",
"sizes": "256x256",
"type": "image/png"
}, {
- "src": "/static/v94/icons/icon-512x512.png",
+ "src": "/static/v95/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}],
diff --git a/public/static/v93 b/public/static/v95
index 945c9b4..945c9b4 120000
--- a/public/static/v93
+++ b/public/static/v95
diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep
index ec10b75..0726426 100644
--- a/templates/layouts/default.html.ep
+++ b/templates/layouts/default.html.ep
@@ -13,7 +13,7 @@
% while (my ($key, $value) = each %{stash('opengraph') // {}}) {
<meta property="og:<%= $key %>" content="<%= $value %>">
% }
- % my $av = 'v94'; # asset version
+ % my $av = 'v95'; # asset version
<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-96x96.png" sizes="96x96">