diff options
author | Matthew Somerville <matthew@mysociety.org> | 2019-10-16 14:38:38 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2019-10-16 14:38:38 +0100 |
commit | abd9877717dce1784de7d097b2ea02044b19c802 (patch) | |
tree | 4dbbdb0c99711c7335b9b5a9d38c5abd503a2dd8 | |
parent | de94514cd3d66e584d77e60c1869482f4433db77 (diff) |
Check asset attribute fields on category change.
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.
-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; |