diff options
Diffstat (limited to 'public/static/js/geolocation.js')
-rw-r--r-- | public/static/js/geolocation.js | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/public/static/js/geolocation.js b/public/static/js/geolocation.js index 03857a1..2082e44 100644 --- a/public/static/js/geolocation.js +++ b/public/static/js/geolocation.js @@ -24,7 +24,9 @@ $(document).ready(function() { const res = $(document.createElement('p')); $.each(stops, function(i, stop) { const parts = stop.split(';'); - const node = $('<a class="tablerow" href="/s/' + parts[0] + '?hafas=' + parts[2] + '"><span><i class="material-icons" aria-hidden="true">' + (parseInt(parts[2]) ? 'directions' : 'train') + '</i>' + parts[1] + '</span></a>'); + const [ eva, name, dbris, efa, hafas, motis ] = parts; + + const node = $('<a class="tablerow" href="/s/' + eva + '?dbris=' + (dbris||0) + '&efa=' + (efa||0) + '&hafas=' + (hafas||0) + '&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'); }); @@ -45,13 +47,40 @@ $(document).ready(function() { } else { const res = $(document.createElement('p')); $.each(data.candidates, function(i, candidate) { + let node; + + if (candidate.dbris) { + const eva = candidate.eva, + name = candidate.name, + dbris = candidate.dbris, + distance = candidate.distance.toFixed(1); + node = $('<a class="tablerow" href="/s/' + eva + '?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 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">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); - const eva = candidate.eva, - name = candidate.name, - hafas = candidate.hafas, - 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>'); + } - const node = $('<a class="tablerow" href="/s/' + eva + '?hafas=' + hafas + '"><span><i class="material-icons" aria-hidden="true">' + (parseInt(hafas) ? 'directions' : 'train') + '</i>' + name + '</span></a>'); node.click(function() { $('nav .preloader-wrapper').addClass('active'); }); @@ -62,7 +91,8 @@ $(document).ready(function() { }; const processLocation = function(loc) { - $.post('/geolocation', {lon: loc.coords.longitude, lat: loc.coords.latitude}, processResult); + const backend = $('div.geolocation').data('backend'); + $.post('/geolocation', {lon: loc.coords.longitude, lat: loc.coords.latitude, backend: backend}, processResult); }; const processError = function(error) { @@ -77,7 +107,7 @@ $(document).ready(function() { } }; - const geoLocationButton = $('div.geolocation > button'); + const geoLocationButton = $('div.geolocation > .request'); const recentStops = geoLocationButton.data('recent'); const getGeoLocation = function() { geoLocationButton.replaceWith($('<p class="geolocationhint">Stationen in der Umgebung:</p><div class="progress"><div class="indeterminate"></div></div>')); |