aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorChris Mytton <chrism@mysociety.org>2020-01-21 16:32:46 +0000
committerChris Mytton <chrism@mysociety.org>2020-02-20 14:01:10 +0000
commitfe62503ff288efd655b18aaab970a1f2c725eebe (patch)
tree60de5a9710b912a29128c73cb54d218ee4fa68bc /web
parent0f7037f9db5d73c1020468e68ce852e585ba6a19 (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.js4
-rw-r--r--web/cobrands/peterborough/assets.js24
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
});
})();