diff options
author | Dave Arter <davea@mysociety.org> | 2018-05-21 17:19:38 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2018-06-26 17:20:28 +0100 |
commit | 56e635e9a1b8beca98a3a0a461dcd744bdfa08e7 (patch) | |
tree | d42b73ecb1ca2dfef2b0688f4b1d3c0791d33014 /web | |
parent | 9f7f6f482062f7f230849e7548abbc7fce79bad0 (diff) |
[BANES] Add parks & grounds asset layer
Styled to only be visible to staff.
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/bathnes/js.js | 47 | ||||
-rw-r--r-- | web/cobrands/bathnes/staff.js | 40 | ||||
-rw-r--r-- | web/vendor/OpenLayers/OpenLayers.bathnes.js | 5 |
3 files changed, 77 insertions, 15 deletions
diff --git a/web/cobrands/bathnes/js.js b/web/cobrands/bathnes/js.js index 84c9c56f5..71077ed43 100644 --- a/web/cobrands/bathnes/js.js +++ b/web/cobrands/bathnes/js.js @@ -45,6 +45,53 @@ fixmystreet.assets.add($.extend(true, {}, fixmystreet.maps.banes_defaults, { } })); +fixmystreet.assets.add($.extend(true, {}, fixmystreet.maps.banes_defaults, { + http_options: { + params: { + TYPENAME: "ParksOpenSpacesAssets" + } + }, + asset_category: [ + 'Abandoned vehicles', + 'Dead animals', + 'Dog fouling', + 'Fly-tipping', + 'Graffiti', + 'Excessive or dangerous littering', + 'Needles', + 'Play area safety issue', + 'Damage to bins, benches, and infrastructure', + 'Allotment issue', + 'Trees and woodland', + 'Obstructive vegetation' + ], + asset_item: "park", + disable_pin_snapping: true, + stylemap: new OpenLayers.StyleMap({ + 'default': new OpenLayers.Style({ + fill: false, + stroke: false + }) + }), + attributes: { + asset_details: function() { + var a = this.attributes; + return a.description + " " + a.assetid; + } + }, + filter_key: 'category', + filter_value: [ + 'Flower Beds', + 'Grass', + 'Hard', + 'Hedgerow', + 'Path', + 'Pitch', + 'Seats' + ], + name: "Parks and Grounds" +})); + /* diff --git a/web/cobrands/bathnes/staff.js b/web/cobrands/bathnes/staff.js index 763761929..c6a8a9560 100644 --- a/web/cobrands/bathnes/staff.js +++ b/web/cobrands/bathnes/staff.js @@ -35,22 +35,34 @@ fixmystreet.assets.add($.extend(true, {}, fixmystreet.maps.banes_defaults, { })); -// Staff can actually see the adopted highways layer, so replace the invisible -// stylemap of that layer. -var highways_stylemap = new OpenLayers.StyleMap({ - 'default': new OpenLayers.Style({ - fill: true, - fillOpacity: 0, - // strokeColor: "#55BB00", - strokeColor: "#FFFF00", - strokeOpacity: 0.5, - strokeWidth: 2, - title: '${description}\n${notes}' +// Some normally-invisible layers are visible to staff, so replace their +// stylemaps accordingly. +var replacement_stylemaps = { + "Adopted Highways": new OpenLayers.StyleMap({ + 'default': new OpenLayers.Style({ + fill: true, + fillOpacity: 0, + // strokeColor: "#55BB00", + strokeColor: "#FFFF00", + strokeOpacity: 0.5, + strokeWidth: 2, + title: '${description}\n${notes}' + }) + }), + "Parks and Grounds": new OpenLayers.StyleMap({ + 'default': new OpenLayers.Style({ + fill: false, + strokeColor: "#008800", + strokeOpacity: 0.5, + strokeWidth: 2, + title: '${site_name}' + }) }) -}); +}; + $.each(fixmystreet.assets.layers, function() { - if (this.name == "Adopted Highways") { - this.styleMap = highways_stylemap; + if (typeof replacement_stylemaps[this.name] !== 'undefined') { + this.styleMap = replacement_stylemaps[this.name]; } }); diff --git a/web/vendor/OpenLayers/OpenLayers.bathnes.js b/web/vendor/OpenLayers/OpenLayers.bathnes.js index 4a2efc3ea..7fc6b790e 100644 --- a/web/vendor/OpenLayers/OpenLayers.bathnes.js +++ b/web/vendor/OpenLayers/OpenLayers.bathnes.js @@ -1684,4 +1684,7 @@ var center=mapBounds.getCenterLonLat();var dataWidth=mapBounds.getWidth()*this.r var evt={filter:this.createFilter()};this.layer.events.triggerEvent("loadstart",evt);this.response=this.layer.protocol.read(OpenLayers.Util.applyDefaults({filter:evt.filter,callback:this.merge,scope:this},options));},createFilter:function(){var filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.BBOX,value:this.bounds,projection:this.layer.projection});if(this.layer.filter){filter=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.AND,filters:[this.layer.filter,filter]});} return filter;},merge:function(resp){this.layer.destroyFeatures();if(resp.success()){var features=resp.features;if(features&&features.length>0){var remote=this.layer.projection;var local=this.layer.map.getProjectionObject();if(remote&&local&&!local.equals(remote)){var geom;for(var i=0,len=features.length;i<len;++i){geom=features[i].geometry;if(geom){geom.transform(remote,local);}}} this.layer.addFeatures(features);}}else{this.bounds=null;} -this.response=null;this.layer.events.triggerEvent("loadend",{response:resp});},CLASS_NAME:"OpenLayers.Strategy.BBOX"});
\ No newline at end of file +this.response=null;this.layer.events.triggerEvent("loadend",{response:resp});},CLASS_NAME:"OpenLayers.Strategy.BBOX"});OpenLayers.Strategy.Filter=OpenLayers.Class(OpenLayers.Strategy,{filter:null,cache:null,caching:false,activate:function(){var activated=OpenLayers.Strategy.prototype.activate.apply(this,arguments);if(activated){this.cache=[];this.layer.events.on({"beforefeaturesadded":this.handleAdd,"beforefeaturesremoved":this.handleRemove,scope:this});} +return activated;},deactivate:function(){this.cache=null;if(this.layer&&this.layer.events){this.layer.events.un({"beforefeaturesadded":this.handleAdd,"beforefeaturesremoved":this.handleRemove,scope:this});} +return OpenLayers.Strategy.prototype.deactivate.apply(this,arguments);},handleAdd:function(event){if(!this.caching&&this.filter){var features=event.features;event.features=[];var feature;for(var i=0,ii=features.length;i<ii;++i){feature=features[i];if(this.filter.evaluate(feature)){event.features.push(feature);}else{this.cache.push(feature);}}}},handleRemove:function(event){if(!this.caching){this.cache=[];}},setFilter:function(filter){this.filter=filter;var previousCache=this.cache;this.cache=[];this.handleAdd({features:this.layer.features});if(this.cache.length>0){this.caching=true;this.layer.removeFeatures(this.cache.slice());this.caching=false;} +if(previousCache.length>0){var event={features:previousCache};this.handleAdd(event);if(event.features.length>0){this.caching=true;this.layer.addFeatures(event.features);this.caching=false;}}},CLASS_NAME:"OpenLayers.Strategy.Filter"});
\ No newline at end of file |