window.addEventListener('load', function (e) { if (window.localStorage) { var recentViewTrainStr = localStorage.getItem('recent/view-train') if (recentViewTrainStr) { /** * @type {object} * @property {?string} trainNumber * @property {?string} name * @property {string} tripId * @property {string} date * @property {string} $addDate */ var recentViewTrain = JSON.parse(recentViewTrainStr) var addDate = new Date(recentViewTrain.$addDate) addDate.setHours(addDate.getHours() + 6) // store recents for 6 hours if (addDate.getTime() > Date.now()) { var recentViewTrainLi = document.createElement('li') var recentViewTrainLink = document.createElement('a') recentViewTrainLi.appendChild(recentViewTrainLink) var recentViewTrainLinkUrl = new URL('/view-train.html', window.location.origin) recentViewTrainLinkUrl.searchParams.append('tripId', recentViewTrain.tripId) recentViewTrainLinkUrl.searchParams.append('date', recentViewTrain.date) recentViewTrainLink.href = recentViewTrainLinkUrl.toString() recentViewTrainLink.classList.add('items') recentViewTrainLink.innerText = `Recent train: ${recentViewTrain.name || "..."}` if (recentViewTrain.trainNumber) { recentViewTrainLink.innerText = `Recent train: ${recentViewTrain.name || "..."} (${recentViewTrain.trainNumber})` } fetch(`https://v6.db.transport.rest/trips/${encodeURI(recentViewTrain.tripId)}`) .then(function (result) { if (result.ok) { return result.json() } else { return Promise.reject('Response not okay') } }) .then(function (result) { recentViewTrainLink.innerText = `Recent train: ${result.trip.line.name} (${result.trip.line.fahrtNr})` }) var myTrainLi = document.getElementById("my-train-li") myTrainLi.parentNode.insertBefore(recentViewTrainLi, myTrainLi.nextSibling) } } var recentRouteStr = localStorage.getItem('recent/route') if (recentRouteStr) { /** * @type {object} * @property {string} queryParams * @property {string} from * @property {string} to * @property {string} $addDate */ var recentRoute = JSON.parse(recentRouteStr) var addDate = new Date(recentRoute.$addDate) addDate.setHours(addDate.getHours() + 12) // store recents for 6 hours if (addDate.getTime() > Date.now()) { var recentRouteLi = document.createElement('li') var recentRouteLink = document.createElement('a') recentRouteLi.appendChild(recentRouteLink) var recentRouteLinkUrl = new URL('/config-route.html', window.location.origin) recentRouteLinkUrl.search = recentRoute.queryParams recentRouteLink.href = recentRouteLinkUrl.toString() recentRouteLink.classList.add('items') recentRouteLink.innerText = `Recent route: ${recentRoute.from} → ${recentRoute.to}` var routesLi = document.getElementById("routes-li") routesLi.parentNode.insertBefore(recentRouteLi, routesLi.nextSibling) } } } }) window.addEventListener('beforeinstallprompt', function (e) { var installAppLi = document.createElement('li') var installAppLink = document.createElement('a') installAppLi.appendChild(installAppLink) installAppLink.href = '#' installAppLink.classList.add('items') installAppLink.innerText = 'Install application' installAppLink.addEventListener('click', function (clickE) { e.prompt().then(function (_) { installAppLi.remove() }) }) var routesLi = document.getElementById("routes-li") routesLi.parentNode.insertBefore(installAppLi, routesLi) })