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,14 +425,13 @@
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
+ '?' + stopType + '=' + encodeURIComponent(stopId)
@@ -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,18 +545,19 @@
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');
additional.className = 'small';
@@ -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.10.0