aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--web/cobrands/fixmystreet/assets.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js
index 6a676beaa..cb466a47e 100644
--- a/web/cobrands/fixmystreet/assets.js
+++ b/web/cobrands/fixmystreet/assets.js
@@ -22,6 +22,7 @@ OpenLayers.Layer.VectorAsset = OpenLayers.Class(OpenLayers.Layer.Vector, {
// Update layer based upon new data from category change
$(fixmystreet).on('assets:selected', this.checkSelected.bind(this));
$(fixmystreet).on('assets:unselected', this.checkSelected.bind(this));
+ $(fixmystreet).on('report_new:category_change', this.changeCategory.bind(this));
$(fixmystreet).on('report_new:category_change', this.update_layer_visibility.bind(this));
},
@@ -104,6 +105,21 @@ OpenLayers.Layer.VectorAsset = OpenLayers.Class(OpenLayers.Layer.Vector, {
}
},
+ // It's possible an asset has been selected before a category (e.g. if
+ // assets are showing for a whole category group. So on category change,
+ // make sure we check if any attribute fields need setting/clearing.
+ changeCategory: function() {
+ if (!fixmystreet.map) {
+ return;
+ }
+ var feature = fixmystreet.assets.selectedFeature();
+ if (feature) {
+ this.setAttributeFields(feature);
+ } else {
+ this.clearAttributeFields();
+ }
+ },
+
setAttributeFields: function(feature) {
if (!this.fixmystreet.attributes) {
return;