diff --git a/elevators.js b/elevators.js index 02c98f1..ea999f4 100644 --- a/elevators.js +++ b/elevators.js @@ -6,13 +6,8 @@ let geolocationPermission = false; let geolocation = null; const openStations = new Set(); let sortByDistance = false; -const version = '0.5.1' -const minorVersion = version.split('.').splice(0, 2).join('.'); -const numberFormat = new Intl.NumberFormat('de-DE', { - maximumFractionDigits: 1 -}); -const substituteData = [ +const substituteCoordinates = [ { name: 'Borgweg (Stadtpark)', coordinates: [53.5907696, 10.0147719], @@ -29,26 +24,6 @@ const substituteData = [ name: 'Hagenbecks Tierpark', coordinates: [53.5925874, 9.9440359], }, - { - name: 'Hamburg Hbf', - searchTarget: "Hauptbahnhof", - }, - { - name: 'Jungfernstieg', - searchTarget: "Rathaus", - }, - { - name: 'Rathaus', - searchTarget: "Jungfernstieg", - }, - { - name: 'Stephansplatz (Oper/CCH)', - searchTarget: "Dammtor (Messe/CCH)", - }, - { - name: 'Dammtor (Messe/CCH)', - searchTarget: "Stephansplatz (Oper/CCH)", - }, { name: 'Hauptbahnhof Nord', coordinates: [53.5541197, 10.0061270], @@ -114,13 +89,6 @@ async function loadElevators() { for (const station of stations) { const stationName = station['mainSubStation']['stationName']; const stationComment = station['mainSubStation']['comment']; - let searchTarget = undefined; - - const substitute = substituteData.filter(subs => subs.name === stationName) - - if (substitute.length && substitute[0].hasOwnProperty('searchTarget')) { - searchTarget = substitute[0].searchTarget; - } const lines = new Set(); const elevators = []; for (const elevatorKey of Object.keys(station.elevators)) { @@ -189,7 +157,6 @@ async function loadElevators() { internalData.stations[stationIndex++] = { name: stationName, comment: stationComment, - searchTarget: searchTarget, state: stationState, lines: stationLines, types: stationTypes, @@ -198,7 +165,7 @@ async function loadElevators() { } localStorage.setItem("internal_data", JSON.stringify({ - api: minorVersion, + api: 'v1', ...internalData })); } @@ -250,20 +217,20 @@ async function loadOsmData() { } if (!internalData.stations[stationIndex].hasOwnProperty('coordinates')) { - const substitute = substituteData.filter(subs => subs.name === internalData.stations[stationIndex].name) - if (substitute.length && substitute.hasOwnProperty('coordinates')) { + const substitute = substituteCoordinates.filter(subs => subs.name === internalData.stations[stationIndex].name) + if (substitute.length) { internalData.stations[stationIndex]['coordinates'] = substitute[0].coordinates; } } } localStorage.setItem("osm_data", JSON.stringify({ - api: minorVersion, + api: 'v1', lastUpdate: new Date(), nodes: osmNodes })); localStorage.setItem("internal_data", JSON.stringify({ - api: minorVersion, + api: 'v1', ...internalData })); } @@ -403,17 +370,7 @@ function renderData(location = null) { document.querySelector('#filters').classList.remove('hidden'); document.querySelector('#initialLoad').classList.add('hidden'); const dateContainer = document.querySelector('#lastUpdated'); - const oldDataWarning = document.querySelector('#oldDataWarning'); - - const lastUpdate = new Date(internalData.lastUpdate); - const now = new Date(); - dateContainer.innerHTML = dateTimeStyle.format(lastUpdate); - oldDataWarning.classList.add('hidden'); - if (now - lastUpdate > 86400 * 1000) { - const days = numberFormat.format((now - lastUpdate) / (86400 * 1000)); - oldDataWarning.classList.remove('hidden'); - oldDataWarning.innerHTML = `Daten ${days} Tag${days !== '1' ? 'e' : ''} alt!`; - } + dateContainer.innerHTML = dateTimeStyle.format(new Date(internalData.lastUpdate)); const listContainer = document.querySelector('#stationList'); //clear list before update @@ -689,25 +646,22 @@ function filterData() { const typeA = document.querySelector('button.typeChip[data-type="A"]'); const typeR = document.querySelector('button.typeChip[data-type="R"]'); const activeTypes = []; - if (typeU.dataset.pressed === 'true') activeTypes.push('U'); - if (typeS.dataset.pressed === 'true') activeTypes.push('S'); - if (typeA.dataset.pressed === 'true') activeTypes.push('A'); - if (typeR.dataset.pressed === 'true') activeTypes.push('R'); + if(typeU.dataset.pressed === 'true') activeTypes.push('U'); + if(typeS.dataset.pressed === 'true') activeTypes.push('S'); + if(typeA.dataset.pressed === 'true') activeTypes.push('A'); + if(typeR.dataset.pressed === 'true') activeTypes.push('R'); const stationCount = internalData.stations.length; let filteredStations = 0; if (internalData) { for (const stationIndex in internalData.stations) { - const matchesName = internalData.stations[stationIndex].name.toLowerCase().search(searchString.toLowerCase()) >= 0; - const matchesSearchTarget = internalData.stations[stationIndex].hasOwnProperty('searchTarget') - ? internalData.stations[stationIndex].searchTarget.toLowerCase().search(searchString.toLowerCase()) >= 0 - : false; + const matchesSearch = internalData.stations[stationIndex].name.toLowerCase().search(searchString.toLowerCase()) >= 0; let matchesType = false; internalData.stations[stationIndex].types.forEach(type => { - if (activeTypes.includes(type)) matchesType = true; + if(activeTypes.includes(type)) matchesType = true; }) - const filtered = !((matchesName || matchesSearchTarget) && matchesType); + const filtered = !(matchesSearch && matchesType); document.querySelector(`#station_${stationIndex}`).classList.toggle('hidden', filtered); - if (filtered) filteredStations++; + if(filtered) filteredStations++; } document.querySelector('#stationCount').innerHTML = stationCount; @@ -738,14 +692,11 @@ function closeDialog(selector) { document.querySelector(selector).classList.add('hidden') } -// set version -document.querySelector('#version').innerHTML = `v${version}`; - // data api version check const check_internal = JSON.parse(localStorage.getItem("internal_data")); const check_osm = JSON.parse(localStorage.getItem("osm_data")); -if (check_internal === null || check_internal.hasOwnProperty('api') && check_internal.api === minorVersion) { - if (check_osm === null || check_osm.hasOwnProperty('api') && check_osm.api === minorVersion) { +if (check_internal === null || check_internal.hasOwnProperty('api') && check_internal.api === 'v1') { + if (check_osm === null || check_osm.hasOwnProperty('api') && check_osm.api === 'v1') { renderData(); } else { console.log('osm_data: version mismatch') diff --git a/index.html b/index.html index 4af499c..b676958 100644 --- a/index.html +++ b/index.html @@ -28,11 +28,10 @@

Liste aller Stationen mit Aufzug im HVV


@@ -66,7 +65,7 @@