From db4410e5681837a782a6956614563e9fb9724ad7 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 14 Apr 2019 09:33:45 +0000 Subject: [PATCH] Reduce variable redefinitions --- map.js | 145 +++++++++++++++++++---------------------------- 1 files changed, 59 insertions(+), 86 deletions(-) diff --git a/map.js b/map.js index f16133c..11c7aa0 100644 --- a/map.js +++ b/map.js @@ -151,7 +151,7 @@ function fail_ajax_generic(data, fnc) { // abort() is not a failure - if(data.readyState == 0 && data.statusText == 'abort') return; + if(data.readyState == 0) return; if(data.status == 0) { fnc(lang.error_request_failed_connectivity, data); @@ -226,8 +226,7 @@ stop_selected_layer.setStyle(style); - var feature = null; - var prefix = null; + var feature, prefix; for(var i = 0; i < stops.length; i++) { feature = null; if(stops[i].getId) { @@ -247,7 +246,7 @@ function unstyleSelectedFeatures() { stop_selected_source.clear(); route_source.clear(); - if(feature_clicked && ttss_types.indexOf(feature_clicked.getId().substr(0, 1)) >= 0) { + if(feature_clicked && ttss_types.includes(feature_clicked.getId().substr(0, 1))) { styleVehicle(feature_clicked); } } @@ -315,7 +314,7 @@ var stop = stops[i]; if(stop.category == 'other') continue; - if(stops_ignored.indexOf(stop.shortName) >= 0) continue; + if(stops_ignored.includes(stop.shortName)) continue; stop.geometry = getGeometry(stop); var stop_feature = new ol.Feature(stop); @@ -360,7 +359,7 @@ ).done(function(data) { if(!data || !data.paths || !data.paths[0] || !data.paths[0].wayPoints) return; - var point = null; + var point; var points = []; for(var i = 0; i < data.paths[0].wayPoints.length; i++) { point = data.paths[0].wayPoints[i]; @@ -375,6 +374,7 @@ })); route_layer.setVisible(true); }); + return path_xhr; } function vehicleTable(feature, table) { @@ -395,8 +395,10 @@ deleteChildren(table); - for(var i = 0, il = data.old.length; i < il; i++) { - var tr = document.createElement('tr'); + var i, il; + var tr; + for(i = 0, il = data.old.length; i < il; i++) { + tr = document.createElement('tr'); addCellWithText(tr, data.old[i].actualTime || data.old[i].plannedTime); addCellWithText(tr, data.old[i].stop_seq_num + '. ' + data.old[i].stop.name); @@ -406,8 +408,8 @@ var stopsToMark = []; - for(var i = 0, il = data.actual.length; i < il; i++) { - var tr = document.createElement('tr'); + for(i = 0, il = data.actual.length; i < il; i++) { + tr = document.createElement('tr'); addCellWithText(tr, data.actual[i].actualTime || data.actual[i].plannedTime); addCellWithText(tr, data.actual[i].stop_seq_num + '. ' + data.actual[i].stop.name); @@ -423,13 +425,12 @@ feature_timer = setTimeout(function() { vehicleTable(feature, table); }, ttss_refresh); }).fail(fail_ajax_popup); + return feature_xhr; } -function stopTable(stopType, stopId, table, featureId) { +function stopTable(stopType, stopId, table, ttss_type) { if(feature_xhr) feature_xhr.abort(); if(feature_timer) clearTimeout(feature_timer); - - var ttss_type = featureId.substr(1, 1); feature_xhr = $.get( ttss_urls[ttss_type] + '/services/passageInfo/stopPassages/' + stopType @@ -438,32 +439,36 @@ ).done(function(data) { deleteChildren(table); - for(var i = 0, il = data.old.length; i < il; i++) { - var tr = document.createElement('tr'); + var i, il; + var tr, dir_cell, vehicle, status, status_cell, delay, delay_cell; + for(i = 0, il = data.old.length; i < il; i++) { + tr = document.createElement('tr'); addCellWithText(tr, data.old[i].patternText); - var dir_cell = addCellWithText(tr, data.old[i].direction); - var vehicle = parseVehicle(data.old[i].vehicleId); + dir_cell = addCellWithText(tr, data.old[i].direction); + vehicle = parseVehicle(data.old[i].vehicleId); dir_cell.appendChild(displayVehicle(vehicle)); - var status = parseStatus(data.old[i]); - addCellWithText(tr, status); - addCellWithText(tr, ''); + status = parseStatus(data.old[i]); + status_cell = addCellWithText(tr, status); + delay_cell = addCellWithText(tr, ''); tr.className = 'active'; table.appendChild(tr); } - for(var i = 0, il = data.actual.length; i < il; i++) { - var tr = document.createElement('tr'); + for(i = 0, il = data.actual.length; i < il; i++) { + tr = document.createElement('tr'); addCellWithText(tr, data.actual[i].patternText); - var dir_cell = addCellWithText(tr, data.actual[i].direction); - var vehicle = parseVehicle(data.actual[i].vehicleId); + dir_cell = addCellWithText(tr, data.actual[i].direction); + vehicle = parseVehicle(data.actual[i].vehicleId); dir_cell.appendChild(displayVehicle(vehicle)); - var status = parseStatus(data.actual[i]); - var status_cell = addCellWithText(tr, status); - var delay = parseDelay(data.actual[i]); - var delay_cell = addCellWithText(tr, delay); + status = parseStatus(data.actual[i]); + status_cell = addCellWithText(tr, status); + delay = parseDelay(data.actual[i]); + delay_cell = addCellWithText(tr, delay); - if(status == lang.boarding_sign) { + if(data.actual[i].status === 'DEPARTED') { + tr.className = 'active'; + } else if(status == lang.boarding_sign) { tr.className = 'success'; status_cell.className = 'status-boarding'; } else if(parseInt(delay) > 9) { @@ -476,8 +481,9 @@ table.appendChild(tr); } - feature_timer = setTimeout(function() { stopTable(stopType, stopId, table, featureId); }, ttss_refresh); + feature_timer = setTimeout(function() { stopTable(stopType, stopId, table, ttss_type); }, ttss_refresh); }).fail(fail_ajax_popup); + return feature_xhr; } function featureClicked(feature) { @@ -506,19 +512,20 @@ var tabular_data = true; var type = feature.getId().substr(0, 1); + var full_type = feature.getId().match(/^[a-z]+/)[0]; + var typeName = lang.types[full_type]; + if(typeof typeName === 'undefined') { + typeName = ''; + } + // Location if(type == 'l') { tabular_data = false; + name = typeName; typeName = ''; - name = lang.type_location; } // Vehicle - else if(ttss_types.indexOf(type) >= 0) { - typeName = lang.type_bus; - if(type == 't') { - typeName = lang.type_tram; - } - + else if(ttss_types.includes(type)) { var span = displayVehicle(feature.get('vehicle_type')); additional = document.createElement('p'); @@ -538,17 +545,18 @@ styleVehicle(feature, true); } // Stop or stop point - else if(['s', 'p'].indexOf(type) >= 0) { + else if(['s', 'p'].includes(type)) { + var ttss_type = feature.getId().substr(1, 1); if(type == 's') { - typeName = lang.type_stop_tram; var second_type = lang.departures_for_buses; var mapping = stops_mapping['sb']; - if(feature.getId().startsWith('sb')) { - typeName = lang.type_stop_bus; + if(ttss_type == 'b') { second_type = lang.departures_for_trams; mapping = stops_mapping['st']; } + + stopTable('stop', feature.get('shortName'), tbody, ttss_type); if(mapping[feature.get('shortName')]) { additional = document.createElement('p'); @@ -561,18 +569,14 @@ ); } } else { - typeName = lang.type_stoppoint_tram; - - if(feature.getId().startsWith('pb')) { - typeName = lang.type_stoppoint_bus; - } + stopTable('stopPoint', feature.get('stopPoint'), tbody, ttss_type); additional = document.createElement('p'); additional.className = 'small'; addElementWithText(additional, 'a', lang.departures_for_stop).addEventListener( 'click', function() { - var mapping = stops_mapping['s' + feature.getId().substr(1,1)]; + var mapping = stops_mapping['s' + ttss_type]; featureClicked(mapping[feature.get('shortName')]); } ); @@ -583,7 +587,6 @@ addElementWithText(thead, 'th', lang.header_time); addElementWithText(thead, 'th', lang.header_delay); - stopTable('stop', feature.get('shortName'), tbody, feature.getId()); markStops([feature], feature.getId().substr(1,1)); } else { panel.close(); @@ -644,41 +647,21 @@ addParaWithText(div, lang.select_feature); + var feature, p, a, full_type, typeName; for(var i = 0; i < features.length; i++) { - var feature = features[i]; + feature = features[i]; - var p = document.createElement('p'); - var a = document.createElement('a'); + p = document.createElement('p'); + a = document.createElement('a'); p.appendChild(a); a.addEventListener('click', function(feature) { return function() { featureClicked(feature); }}(feature)); - var type = feature.getId().substr(0, 1); - var typeName = ''; - if(type == 'l') { + full_type = feature.getId().match(/^[a-z]+/)[0]; + typeName = lang.types[full_type]; + if(typeof typeName === 'undefined') { typeName = ''; - name = lang.type_location; - } else if(ttss_types.indexOf(type) >= 0) { - typeName = lang.type_bus; - if(type == 't') { - typeName = lang.type_tram; - } - if(feature.get('vehicle_type').num) { - typeName += ' ' + feature.get('vehicle_type').num; - } - } else if(type == 's') { - typeName = lang.type_stop_tram; - if(feature.getId().startsWith('sb')) { - typeName = lang.type_stop_bus; - } - } else if (type == 'p') { - typeName = lang.type_stoppoint_tram; - if(feature.getId().startsWith('pb')) { - typeName = lang.type_stoppoint_bus; - } - } else { - continue; } addElementWithText(a, 'span', typeName).className = 'small'; @@ -795,16 +778,6 @@ } function init() { - if(!window.jQuery) { - fail(lang.jquery_not_loaded); - return; - } - - $.ajaxSetup({ - dataType: 'json', - timeout: 10000, - }); - panel = new Panel(document.getElementById('panel')); route_source = new ol.source.Vector({ @@ -973,7 +946,7 @@ stops_type.forEach(function(type) { future_requests.push(updateStops(type.substr(0,1), type.substr(1,1))); }); - $.when(future_requests).done(hash); + Deferred.all(future_requests).done(hash); window.addEventListener('hashchange', hash); -- Gitblit v1.9.1