aboutsummaryrefslogtreecommitdiffstats
path: root/web/js
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2018-03-23 18:09:04 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2018-03-26 15:08:14 +0100
commit3b82cc190589cbc712ec35e28efa1dd0af2f0d82 (patch)
treec33bdff36feda1b049769aaf33d194d5fce38110 /web/js
parent96d6d115c68d5e0a4b23612aa630c3e0de98daa5 (diff)
Fix race condition making a new report.
If you started a new report by clicking the map before the server had responded with the map list pins, when they did arrive they would replace the new report pin.
Diffstat (limited to 'web/js')
-rw-r--r--web/js/map-OpenLayers.js4
1 files changed, 4 insertions, 0 deletions
diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js
index 0a1c947a0..ec4f8bc3d 100644
--- a/web/js/map-OpenLayers.js
+++ b/web/js/map-OpenLayers.js
@@ -96,6 +96,7 @@ $.extend(fixmystreet.utils, {
fixmystreet.markers.features[0].move(lonlat);
} else {
var markers = fixmystreet.maps.markers_list( [ [ lonlat.lat, lonlat.lon, fixmystreet.pin_new_report_colour ] ], false );
+ fixmystreet.bbox_strategy.layer.protocol.abort(fixmystreet.bbox_strategy.response);
fixmystreet.bbox_strategy.deactivate();
fixmystreet.markers.removeAllFeatures();
fixmystreet.markers.addFeatures( markers );
@@ -578,6 +579,9 @@ $.extend(fixmystreet.utils, {
});
fixmystreet.markers.events.register( 'loadstart', null, fixmystreet.maps.loading_spinner.show);
fixmystreet.markers.events.register( 'loadend', null, fixmystreet.maps.loading_spinner.hide);
+ OpenLayers.Request.XMLHttpRequest.onabort = function() {
+ fixmystreet.markers.events.triggerEvent("loadend", {response: null});
+ };
var markers = fixmystreet.maps.markers_list( fixmystreet.pins, true );
fixmystreet.markers.addFeatures( markers );