diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-03-23 18:09:04 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-03-26 15:08:14 +0100 |
commit | 3b82cc190589cbc712ec35e28efa1dd0af2f0d82 (patch) | |
tree | c33bdff36feda1b049769aaf33d194d5fce38110 /web/js | |
parent | 96d6d115c68d5e0a4b23612aa630c3e0de98daa5 (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.js | 4 |
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 ); |