diff options
author | Chris Mytton <chrism@mysociety.org> | 2020-01-21 16:32:46 +0000 |
---|---|---|
committer | Chris Mytton <chrism@mysociety.org> | 2020-02-20 14:01:10 +0000 |
commit | fe62503ff288efd655b18aaab970a1f2c725eebe (patch) | |
tree | 60de5a9710b912a29128c73cb54d218ee4fa68bc /web | |
parent | 0f7037f9db5d73c1020468e68ce852e585ba6a19 (diff) |
[Peterborough] Disable pin snapping for new tree requests
We don't want to plant trees where there are already trees, so we add a
separate layer for new tree requests, and disable pin snapping for that
layer.
This adds a new option for layers named "relevant". If provided it will
be called with an options object, allowing you to check ".category" and
".group" and return a boolean for whether you want to display the layer
based on the passed options.
Note: You still need to provide an "asset_group" option even if you use
the "relevant" option as this is used elsewhere.
The "regular" tree-points layer uses this to exclude just the new trees
subcategory from being displayed.
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 4 | ||||
-rw-r--r-- | web/cobrands/peterborough/assets.js | 24 |
2 files changed, 26 insertions, 2 deletions
diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js index ac22b6dde..0a08c0f69 100644 --- a/web/cobrands/fixmystreet/assets.js +++ b/web/cobrands/fixmystreet/assets.js @@ -31,7 +31,9 @@ OpenLayers.Layer.VectorAsset = OpenLayers.Class(OpenLayers.Layer.Vector, { group = $('select#category_group').val(), layer = this.fixmystreet, relevant; - if (layer.asset_group) { + if (layer.relevant) { + relevant = layer.relevant({category: category, group: group}); + } else if (layer.asset_group) { relevant = (layer.asset_group === group); } else { relevant = (OpenLayers.Util.indexOf(layer.asset_category, category) != -1); diff --git a/web/cobrands/peterborough/assets.js b/web/cobrands/peterborough/assets.js index 7bc1df574..6f5896d72 100644 --- a/web/cobrands/peterborough/assets.js +++ b/web/cobrands/peterborough/assets.js @@ -53,6 +53,8 @@ fixmystreet.assets.add(defaults, { asset_item: 'tree group' }); +var NEW_TREE_CATEGORY_NAME = 'Request for tree to be planted'; + fixmystreet.assets.add(defaults, { http_options: { url: "https://tilma.staging.mysociety.org/mapserver/peterborough", @@ -66,7 +68,27 @@ fixmystreet.assets.add(defaults, { }, asset_type: 'spot', asset_group: 'Trees', - asset_item: 'tree' + asset_item: 'tree', + relevant: function(options) { + return options.group === 'Trees' && options.category !== NEW_TREE_CATEGORY_NAME; + } +}); + +// We don't want to plant trees where the existing trees are, so add a +// separate layer with pin-snapping disabled for new tree requests. +// The new tree request category is disabled in the other tree point layer. +fixmystreet.assets.add(defaults, { + http_options: { + url: "https://tilma.staging.mysociety.org/mapserver/peterborough", + params: { + TYPENAME: "tree_points" + } + }, + asset_id_field: 'TREE_CODE', + asset_type: 'spot', + asset_category: NEW_TREE_CATEGORY_NAME, + asset_item: 'tree', + disable_pin_snapping: true }); })(); |