From 3b82cc190589cbc712ec35e28efa1dd0af2f0d82 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 23 Mar 2018 18:09:04 +0000 Subject: 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. --- web/js/map-OpenLayers.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'web/js/map-OpenLayers.js') 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 ); -- cgit v1.2.3