From 2b645413fc163863d000bddde5bc27a836321422 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sat, 13 Apr 2019 23:06:48 +0000 Subject: [PATCH] Get rid of jQuery dependency - use XHR and Promise --- map.js | 73 +++++++++--------------------------- 1 files changed, 19 insertions(+), 54 deletions(-) diff --git a/map.js b/map.js index a92594a..e8550d4 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); @@ -247,7 +247,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 +315,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); @@ -375,6 +375,7 @@ })); route_layer.setVisible(true); }); + return path_xhr; } function vehicleTable(feature, table) { @@ -423,6 +424,7 @@ feature_timer = setTimeout(function() { vehicleTable(feature, table); }, ttss_refresh); }).fail(fail_ajax_popup); + return feature_xhr; } function stopTable(stopType, stopId, table, ttss_type) { @@ -476,6 +478,7 @@ feature_timer = setTimeout(function() { stopTable(stopType, stopId, table, ttss_type); }, ttss_refresh); }).fail(fail_ajax_popup); + return feature_xhr; } function featureClicked(feature) { @@ -504,19 +507,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'); @@ -536,15 +540,13 @@ 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(ttss_type == 'b') { - typeName = lang.type_stop_bus; second_type = lang.departures_for_trams; mapping = stops_mapping['st']; } @@ -562,12 +564,6 @@ ); } } else { - typeName = lang.type_stoppoint_tram; - - if(ttss_type == 'b') { - typeName = lang.type_stoppoint_bus; - } - stopTable('stopPoint', feature.get('stopPoint'), tbody, ttss_type); additional = document.createElement('p'); @@ -656,31 +652,10 @@ featureClicked(feature); }}(feature)); - var type = feature.getId().substr(0, 1); - var typeName = ''; - if(type == 'l') { + var full_type = feature.getId().match(/^[a-z]+/)[0]; + var 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'; @@ -797,16 +772,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({ @@ -975,7 +940,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