diff options
author | Matthew Somerville <matthew@mysociety.org> | 2019-10-23 14:17:40 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2019-10-28 16:06:39 +0000 |
commit | 531055c3e46fb47f9cf0592d8672e98cdd5d75b5 (patch) | |
tree | b9c581685f78de2bbe0c0fff07b3eb8b17b9253c | |
parent | 64687c93beffc07d0fcb10459e5a898544bf8aae (diff) |
Only add filter strategy if HTTP WFS being used.
If GET-based WFS is being used, no server-side filtering takes place, so
we need a client side filter to perform the same job. But if normal POST
WFS is being used, the server-side filtering has already been performed,
so no need to do it again (in fact, no need to return the data necessary
to do such filtering either).
-rw-r--r-- | web/cobrands/bristol/assets.js | 3 | ||||
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 13 |
2 files changed, 8 insertions, 8 deletions
diff --git a/web/cobrands/bristol/assets.js b/web/cobrands/bristol/assets.js index 0e22e8f19..0e1ac603f 100644 --- a/web/cobrands/bristol/assets.js +++ b/web/cobrands/bristol/assets.js @@ -19,7 +19,7 @@ var options = { wfs_url: "https://maps.bristol.gov.uk/arcgis/services/ext/FixMyStreetSupportData/MapServer/WFSServer", wfs_feature: "COD_ASSETS_POINT", asset_id_field: 'COD_ASSET_ID', - propertyNames: [ 'COD_ASSET_ID', 'COD_USRN', 'COD_ASSET_TYPE', 'SHAPE' ], + propertyNames: [ 'COD_ASSET_ID', 'COD_USRN', 'SHAPE' ], filter_key: 'COD_ASSET_TYPE', attributes: { asset_id: 'COD_ASSET_ID', @@ -50,7 +50,6 @@ fixmystreet.assets.add(options, { fixmystreet.assets.add(options, { asset_category: "Flooding", asset_item: 'flood risk structure', - filter_key: 'COD_ASSET_TYPE', filter_value: 'FRST' }); diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js index ad832e67f..25c1ac08e 100644 --- a/web/cobrands/fixmystreet/assets.js +++ b/web/cobrands/fixmystreet/assets.js @@ -596,8 +596,8 @@ function construct_layer_options(options, protocol) { } if (options.filter_key) { - // Add this filter to the layer, so it can potentially be used - // in the request (though only Bristol currently does this). + // Add this filter to the layer, so it can potentially be + // used in the request if non-HTTP WFS if (OpenLayers.Util.isArray(options.filter_value)) { layer_options.filter = new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.OR, @@ -621,10 +621,11 @@ function construct_layer_options(options, protocol) { value: options.filter_value }); } - // Add a strategy filter to the layer, to filter the incoming results - // after they are received. Bristol does not need this, but has to ask - // for the filter data in its response so it doesn't then disappear. - layer_options.strategies.push(new OpenLayers.Strategy.Filter({filter: layer_options.filter})); + // If using HTTP WFS, add a strategy filter to the layer, + // to filter the incoming results after being received. + if (options.http_options) { + layer_options.strategies.push(new OpenLayers.Strategy.Filter({filter: layer_options.filter})); + } } return layer_options; |