diff options
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 16 |
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; |