aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--data/bathnes/openlayers.bathnes.cfg1
-rw-r--r--web/cobrands/bathnes/js.js47
-rw-r--r--web/cobrands/bathnes/staff.js40
-rw-r--r--web/vendor/OpenLayers/OpenLayers.bathnes.js5
4 files changed, 78 insertions, 15 deletions
diff --git a/data/bathnes/openlayers.bathnes.cfg b/data/bathnes/openlayers.bathnes.cfg
index 5127aac9f..45eb2b26e 100644
--- a/data/bathnes/openlayers.bathnes.cfg
+++ b/data/bathnes/openlayers.bathnes.cfg
@@ -11,6 +11,7 @@ OpenLayers/Renderer/SVG.js
OpenLayers/Renderer/VML.js
OpenLayers/Strategy/Fixed.js
OpenLayers/Strategy/BBOX.js
+OpenLayers/Strategy/Filter.js
OpenLayers/Control/ArgParser.js
OpenLayers/Control/Attribution.js
OpenLayers/Control/DragFeature.js
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