aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--web/cobrands/fixmystreet/assets.js7
-rw-r--r--web/js/map-OpenLayers.js4
3 files changed, 10 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 51dcc36c4..330b578c6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
- Add minimum password length and common password checking.
- Nicer display of national phone numbers.
- 'Report as another user' allows phone number without email. #1978
+ - Display loading spinner on map when asset layers are loading. #1991
- Bugfixes:
- Fix bug specifying category in URL on /around. #1950
- Fix bug with multiple select-multiples on a page. #1951
diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js
index dd76a8e8f..e24e76495 100644
--- a/web/cobrands/fixmystreet/assets.js
+++ b/web/cobrands/fixmystreet/assets.js
@@ -306,6 +306,8 @@ fixmystreet.add_assets = function(options) {
};
OpenLayers.Util.applyDefaults(lo, layer_options);
asset_fault_layer = new OpenLayers.Layer.Vector("WFS", lo);
+ asset_fault_layer.events.register( 'loadstart', null, fixmystreet.maps.loading_spinner.show);
+ asset_fault_layer.events.register( 'loadend', null, fixmystreet.maps.loading_spinner.hide);
asset_layer.fixmystreet.fault_layer = asset_fault_layer;
}
@@ -316,6 +318,11 @@ fixmystreet.add_assets = function(options) {
asset_layer.events.register( 'loadend', asset_layer, layer_loadend);
asset_layer.events.register( 'visibilitychanged', asset_layer, layer_visibilitychanged);
fixmystreet.map.events.register( 'zoomend', asset_layer, check_zoom_message_visibility);
+
+ // Make sure the user knows something is happening (some asset layers can be sllooowwww)
+ asset_layer.events.register( 'loadstart', null, fixmystreet.maps.loading_spinner.show);
+ asset_layer.events.register( 'loadend', null, fixmystreet.maps.loading_spinner.hide);
+
// Set up handlers for simply hovering over a street light marker
var hover_feature_control = new OpenLayers.Control.SelectFeature(
asset_layer,
diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js
index af62de34a..0f6cca2b5 100644
--- a/web/js/map-OpenLayers.js
+++ b/web/js/map-OpenLayers.js
@@ -568,6 +568,8 @@ $.extend(fixmystreet.utils, {
fixmystreet.map.removePopup(fixmystreet.map.popups[0]);
}
});
+ fixmystreet.markers.events.register( 'loadstart', null, fixmystreet.maps.loading_spinner.show);
+ fixmystreet.markers.events.register( 'loadend', null, fixmystreet.maps.loading_spinner.hide);
var markers = fixmystreet.maps.markers_list( fixmystreet.pins, true );
fixmystreet.markers.addFeatures( markers );
@@ -877,7 +879,6 @@ OpenLayers.Protocol.FixMyStreet = OpenLayers.Class(OpenLayers.Protocol.HTTP, {
use_page: false,
read: function(options) {
- fixmystreet.maps.loading_spinner.show();
// Pass the values of the category, status, and sort fields as query params
options.params = options.params || {};
$.each({ filter_category: 'filter_categories', status: 'statuses', sort: 'sort' }, function(key, id) {
@@ -905,7 +906,6 @@ OpenLayers.Protocol.FixMyStreet = OpenLayers.Class(OpenLayers.Protocol.HTTP, {
/* Pan data handler */
OpenLayers.Format.FixMyStreet = OpenLayers.Class(OpenLayers.Format.JSON, {
read: function(json, filter) {
- fixmystreet.maps.loading_spinner.hide();
var obj;
if (typeof json == 'string') {
obj = OpenLayers.Format.JSON.prototype.read.apply(this, [json, filter]);