aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/cobrands/fixmystreet-uk-councils/alloy.js95
-rw-r--r--web/cobrands/hackney/_colours.scss45
-rw-r--r--web/cobrands/hackney/assets.js246
-rw-r--r--web/cobrands/hackney/base.scss222
-rw-r--r--web/cobrands/hackney/hackney-search-icon.pngbin0 -> 464 bytes
-rw-r--r--web/cobrands/hackney/images/hackney-logo-white.pngbin0 -> 18214 bytes
-rw-r--r--web/cobrands/hackney/layout.scss143
-rw-r--r--web/cobrands/northamptonshire/assets.js21
8 files changed, 749 insertions, 23 deletions
diff --git a/web/cobrands/fixmystreet-uk-councils/alloy.js b/web/cobrands/fixmystreet-uk-councils/alloy.js
index ace0062de..88d0b017f 100644
--- a/web/cobrands/fixmystreet-uk-councils/alloy.js
+++ b/web/cobrands/fixmystreet-uk-councils/alloy.js
@@ -3,6 +3,7 @@
OpenLayers.Protocol.Alloy = OpenLayers.Class(OpenLayers.Protocol.HTTP, {
currentRequests: [],
+ tileSize: 512,
abort: function() {
if (this.currentRequests.length) {
for (var j = 0; j < this.currentRequests.length; j++) {
@@ -63,8 +64,8 @@ OpenLayers.Protocol.Alloy = OpenLayers.Class(OpenLayers.Protocol.HTTP, {
var adjustY = reverse ? 0 : 0.5;
var xFromOrigin = Math.floor((bounds[0] - origin.lon) / resolution + adjustX);
var yFromOrigin = Math.floor((bounds[1] - origin.lat) / resolution + adjustY);
- var tileCoordX = Math.floor(xFromOrigin / 512);
- var tileCoordY = Math.floor(yFromOrigin / 512) * -1;
+ var tileCoordX = Math.floor(xFromOrigin / this.tileSize);
+ var tileCoordY = Math.floor(yFromOrigin / this.tileSize) * -1;
if (reverse) {
tileCoordX -= 1;
@@ -88,13 +89,18 @@ OpenLayers.Strategy.Alloy = OpenLayers.Class(OpenLayers.Strategy.FixMyStreet, {
this.failCount = 0;
this.layer.destroyFeatures();
},
+ // allow sub classes to override the remote projection for converting the geometry
+ // of the features
+ getRemoteProjection: function() {
+ return this.layer.projection;
+ },
merge: function(resp) {
this.count++;
// This if/else clause lifted from OpenLayers.Strategy.BBOX
if (resp.success()) {
var features = resp.features;
if(features && features.length > 0) {
- var remote = this.layer.projection;
+ var remote = this.getRemoteProjection();
var local = this.layer.map.getProjectionObject();
if(!local.equals(remote)) {
var geom;
@@ -133,4 +139,87 @@ fixmystreet.alloy_defaults = {
strategy_class: OpenLayers.Strategy.Alloy
};
+/* for Alloy V2 */
+OpenLayers.Format.AlloyV2 = OpenLayers.Class(OpenLayers.Format.GeoJSON, {
+ read: function(json, type, filter) {
+ var results = null;
+ var obj = null;
+ if (typeof json == "string") {
+ obj = OpenLayers.Format.JSON.prototype.read.apply(this, [json, filter]);
+ } else {
+ obj = json;
+ }
+
+ if(!obj) {
+ OpenLayers.Console.error("Bad JSON: " + json);
+ } else {
+ results = [];
+ for(var i=0, len=obj.results.length; i<len; ++i) {
+ try {
+ results.push(this.parseFeature(obj.results[i]));
+ } catch(err) {
+ results = null;
+ OpenLayers.Console.error(err);
+ }
+ }
+ }
+ return results;
+ }
+});
+
+OpenLayers.Protocol.AlloyV2 = OpenLayers.Class(OpenLayers.Protocol.Alloy, {
+ tileSize: 128,
+ getURL: function(coords, options) {
+ return OpenLayers.String.format(options.base, {'layerid': options.layerid, 'styleid': options.styleid, 'z': 17, 'x': coords[0], 'y': coords[1]});
+ }
+});
+
+OpenLayers.Strategy.AlloyV2 = OpenLayers.Class(OpenLayers.Strategy.Alloy, {
+ initialize: function(name, options) {
+ this.remote = new OpenLayers.Projection("EPSG:4326");
+ OpenLayers.Strategy.Alloy.prototype.initialize.apply(this, arguments);
+ },
+ // the layer uses EPSG:3857 for generating the tile location but the features
+ // use EPSG:4326
+ getRemoteProjection: function() {
+ return this.remote;
+ }
+});
+
+fixmystreet.alloyv2_defaults = {
+ format_class: OpenLayers.Format.AlloyV2,
+ srsName: "EPSG:3857",
+ strategy_class: OpenLayers.Strategy.AlloyV2
+};
+
+fixmystreet.alloy_add_layers = function(defaults, layers) {
+ $.each(layers, function(index, layer) {
+ if ( layer.categories ) {
+ var options = {
+ http_options: {
+ layerid: layer.layerid || layer.layer
+ },
+ asset_type: layer.asset_type || "spot",
+ asset_category: layer.categories,
+ asset_item: layer.item_name || layer.layer_name.toLowerCase()
+ };
+ // Alloy v2
+ if (layer.styleid) {
+ options.http_options.styleid = layer.styleid;
+ }
+ // Alloy v1
+ if (layer.version) {
+ options.http_options.layerVersion = layer.version;
+ }
+ if (layer.max_resolution) {
+ options.max_resolution = layer.max_resolution;
+ }
+ if (layer.snap_threshold || layer.snap_threshold === 0) {
+ options.snap_threshold = layer.snap_threshold;
+ }
+ fixmystreet.assets.add(defaults, options);
+ }
+ });
+};
+
})();
diff --git a/web/cobrands/hackney/_colours.scss b/web/cobrands/hackney/_colours.scss
new file mode 100644
index 000000000..4c0af7b03
--- /dev/null
+++ b/web/cobrands/hackney/_colours.scss
@@ -0,0 +1,45 @@
+/* COLOURS */
+
+$menu-image: 'menu-black';
+
+// Primary
+$white: #fff;
+$green: #00b341;
+$grey: #666664;
+
+
+// Secondary
+$yellow: #ffc845;
+$blue: #0072ce;
+$pale_green: #f2f7f0;
+$alt_green: #328b15;
+$light_green: #84bd00;
+$dark_green: #00664f;
+$teal :#1e98a7;
+$black: #000;
+$red: #be3a34;
+
+$primary: $green;
+$primary_b: #000;
+$primary_text: $black;
+
+$base_bg: $white;
+$base_fg: $black;
+
+$link-color: $blue;
+$link-visited_color: $dark-green;
+$link-hover-color: $green;
+
+$nav_background_colour: $black;
+$nav_colour: $white;
+$nav_hover_background_colour: $black;
+
+$col_click_map: $green;
+
+$header-top-border: false;
+
+$montserrat: 'Montserrat', Arial, sans-serif;
+
+$heading-font: $montserrat;
+$body-font: $montserrat;
+$meta-font: $montserrat; \ No newline at end of file
diff --git a/web/cobrands/hackney/assets.js b/web/cobrands/hackney/assets.js
new file mode 100644
index 000000000..9941594f0
--- /dev/null
+++ b/web/cobrands/hackney/assets.js
@@ -0,0 +1,246 @@
+(function(){
+
+if (!fixmystreet.maps) {
+ return;
+}
+
+/** These layers are from the Hackney WFS feed, for non-Alloy categories: */
+var wfs_defaults = {
+ http_options: {
+ url: "https://map.hackney.gov.uk/geoserver/wfs",
+ params: {
+ SERVICE: "WFS",
+ VERSION: "1.1.0",
+ REQUEST: "GetFeature",
+ SRSNAME: "urn:ogc:def:crs:EPSG::27700"
+ }
+},
+ asset_type: 'spot',
+ max_resolution: 2.388657133579254,
+ asset_id_field: 'id',
+ attributes: {},
+ geometryName: 'geom',
+ srsName: "EPSG:27700",
+ strategy_class: OpenLayers.Strategy.FixMyStreet,
+ body: "Hackney Council",
+ asset_item: "item"
+};
+
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "greenspaces:park_bin",
+ }
+ },
+ asset_category: "Overflowing bin",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "amenity:public_toilet",
+ }
+ },
+ asset_category: ["Public toilets", "Toilets"],
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "parking:pay_display_machine_liberator",
+ }
+ },
+ asset_category: "Pay & Display Machines",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "recycling:estate_recycling_bin",
+ }
+ },
+ asset_category: "Bin Contamination",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "amenity:sport_facility",
+ }
+ },
+ asset_category: "Sport Area",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "greenspaces:park_bench",
+ }
+ },
+ asset_category: "Park Furniture (bench)",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "greenspaces:park_bin",
+ }
+ },
+ asset_category: "Park Furniture (bin)",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "greenspaces:park_picnic_bench",
+ }
+ },
+ asset_category: "Park Furniture (picnic bench)",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "transport:bike_hangar_scheme",
+ }
+ },
+ asset_category: "Cycle Hangars",
+ attributes: {}
+});
+
+fixmystreet.assets.add(wfs_defaults, {
+ http_options: {
+ params: {
+ TYPENAME: "greenspaces:park_bench",
+ }
+ },
+ asset_category: "Benches",
+ attributes: {}
+});
+
+
+/** These layers are served directly from Alloy: */
+
+// View all layers with something like:
+// curl https://tilma.staging.mysociety.org/resource-proxy/proxy.php\?https://hackney.assets/ | jq '.results[] | .layer.code, ( .layer.styles[] | { id, name } ) '
+var layers = [
+ {
+ "categories": ["Street Lighting", "Lamposts"],
+ "item_name": "street light",
+ "layer_name": "Street Lights",
+ "styleid": "5d308d57fe2ad8046c67cdb5",
+ "layerid": "layers_streetLightingAssets"
+ },
+ {
+ "categories": ["Illuminated Bollards", "Non-illuminated Bollards"],
+ "item_name": "bollard",
+ "layer_name": "Bollards",
+ "styleid": "5d308d57fe2ad8046c67cdb9",
+ "layerid": "layers_streetLightingAssets"
+ },
+ {
+ "categories": ["Benches"],
+ "item_name": "bench",
+ "layer_name": "Bench",
+ "styleid": "5e8b16f0ca31500f60b3f589",
+ "layerid": "layers_bench_5e8b15f0ca31500f60b3f568"
+ },
+ {
+ "categories": ["Potholes"],
+ "item_name": "road",
+ "layer_name": "Carriageway",
+ "styleid": "5d53d28bfe2ad80fc4573184",
+ "layerid": "layers_carriageway_5d53cc74fe2ad80c3403b77d"
+ },
+ {
+ "categories": ["Road Markings / Lines"],
+ "item_name": "road",
+ "layer_name": "Markings",
+ "styleid": "5d308dd7fe2ad8046c67da33",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Pavement"],
+ "item_name": "pavement",
+ "layer_name": "Footways",
+ "styleid": "5d308dd6fe2ad8046c67da2a",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Cycle Tracks"],
+ "item_name": "cycle track",
+ "layer_name": "Cycle Tracks",
+ "styleid": "5d308dd6fe2ad8046c67da29",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Drains and gutters"],
+ "item_name": "drain",
+ "layer_name": "Gullies",
+ "styleid": "5d308dd6fe2ad8046c67da2e",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Verges"],
+ "item_name": "verge",
+ "layer_name": "Verges",
+ "styleid": "5d308dd7fe2ad8046c67da36",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Road Hump Fault / Damage"],
+ "item_name": "road hump",
+ "layer_name": "Traffic Calming",
+ "styleid": "5d308dd7fe2ad8046c67da35",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Broken or Faulty Barrier Gates"],
+ "item_name": "barrier gate",
+ "layer_name": "Gates",
+ "styleid": "5d308dd6fe2ad8046c67da2c",
+ "layerid": "layers_highwayAssets"
+ },
+ {
+ "categories": ["Belisha Beacon"],
+ "item_name": "beacon",
+ "layer_name": "Belisha Beacon",
+ "styleid": "5d308d57fe2ad8046c67cdb6",
+ "layerid": "layers_streetLightingAssets"
+ },
+ {
+ "categories": ["Loose or Damaged Kerb Stones"],
+ "item_name": "kerb",
+ "layer_name": "Kerbs",
+ "styleid": "5d308dd6fe2ad8046c67da30",
+ "layerid": "layers_highwayAssets"
+ }
+];
+
+var hackney_defaults = $.extend(true, {}, fixmystreet.alloyv2_defaults, {
+ class: OpenLayers.Layer.NCCVectorAsset,
+ protocol_class: OpenLayers.Protocol.AlloyV2,
+ http_options: {
+ base: "https://tilma.staging.mysociety.org/resource-proxy/proxy.php?https://hackney.assets/${layerid}/${x}/${y}/${z}/cluster?styleIds=${styleid}"
+ },
+ non_interactive: false,
+ body: "Hackney Council",
+ attributes: {
+ asset_resource_id: function() {
+ return this.fid;
+ }
+ }
+});
+
+fixmystreet.alloy_add_layers(hackney_defaults, layers);
+
+})();
diff --git a/web/cobrands/hackney/base.scss b/web/cobrands/hackney/base.scss
new file mode 100644
index 000000000..4bc3fc8b1
--- /dev/null
+++ b/web/cobrands/hackney/base.scss
@@ -0,0 +1,222 @@
+@import "../sass/h5bp";
+@import "./_colours";
+@import "../sass/mixins";
+
+@import "../sass/base";
+
+
+#site-header {
+ box-shadow:
+ 0 0 0 6px $white,
+ 0 0 0 10px $dark-green,
+ 0 0 0 13px $white,
+ 0 0 0 16px $green,
+ 0 0 0 19px $white,
+ 0 0 0 21px $light-green;
+}
+
+#site-logo {
+ background: transparent url('images/hackney-logo-white.png') 0 50% no-repeat;
+ background-size: 200px 36px;
+ width: 200px;
+ &:focus {
+ outline: 4px solid $yellow;
+ }
+}
+
+.nav-menu--mysoc {
+ a {
+ color: $primary_text;
+ background-color: $primary;
+ }
+}
+
+#front-main {
+ background-color: $white;
+ margin: 0;
+ padding: 1em;
+ text-align: inherit;
+
+ h1 {
+ color: $black;
+ }
+
+ #postcodeForm {
+ margin: 0;
+ padding: 0;
+ background: transparent;
+ color: inherit;
+
+ div {
+ border: none;
+ background: transparent;
+ position: relative;
+ background: #fff;
+ box-shadow: 1px 1px 5px 1px rgba(104, 104, 104, 0.4);
+
+ input#pc {
+ box-sizing: border-box;
+ padding: 10px 22px;
+ }
+
+ input#sub {
+ width: 0;
+ padding-left: 50px;
+ overflow: hidden;
+ @include flex(0 0 auto);
+ background: $black url('hackney-search-icon.png') no-repeat 50% 50%;
+ background-size: 25px 25px;
+ color: $black;
+ &:hover,
+ &:focus {
+ background: $dark-green url('hackney-search-icon.png') no-repeat 50% 50%;
+ background-size: 25px 25px;
+ color: $dark_green;
+ }
+ &:focus {
+ outline: 4px solid $yellow;
+ }
+ }
+ }
+ }
+
+ a#geolocate_link {
+ background: transparent;
+ display: block;
+ padding: 0;
+ margin-top: 0.5em;
+ font-family: inherit;
+ font-size: 1em;
+ border-radius: 0;
+ color: $dark_green;
+
+ &:hover {
+ background: transparent;
+ text-decoration: underline;
+ }
+ }
+
+ .form-hint {
+ color: inherit;
+ }
+}
+
+.hackney-footer {
+ background-color: $dark_green;
+ color: #fff;
+ padding: 1em 0;
+}
+
+.hackney-footer__logo {
+ background: transparent url('images/hackney-logo-white.png') 0 50% no-repeat;
+ background-size: 200px 36px;
+ width: 200px;
+ height: 54px;
+ text-indent: -999999px;
+ display: inline-block;
+ &:focus {
+ outline: 4px solid $yellow;
+ }
+}
+
+a.platform-logo {
+ color: #fff;
+}
+
+#front_stats {
+ background-color: $dark_green;
+ color: #fff;
+}
+
+.green-btn,
+.btn {
+ border-radius: 4px;
+ font-size: 1.1875em;
+ font-weight: 400;
+ line-height: 1.4375em;
+ vertical-align: top;
+ display: inline-block;
+ position: relative;
+ border: 1px solid $dark_green;
+ box-shadow: inset #003d2f 0 -2px 0 0;
+ &:hover {
+ background: none;
+ background-color: #005a30;
+ color: #fff !important;
+ }
+
+ &:focus {
+ border-color:#ffdd00;
+ color:#0b0c0c !important;
+ background: none;
+ background-color:#ffdd00;
+ box-shadow: 0 2px 0#0b0c0c;
+ }
+}
+
+.btn--primary,
+.btn-primary,
+.green-btn {
+ background: $dark_green;
+ border: 2px solid transparent;
+ color: #ffffff;
+ box-shadow: 0 2px 0 #002d18;
+}
+
+textarea.form-control,
+.dropzone,
+input.form-control {
+ border: 2px solid #0b0c0c;
+ border-radius: 0;
+ box-shadow: none;
+ &:focus {
+ outline: 3px solid#ffdd00;
+ outline-offset: 0;
+ box-shadow: inset 0 0 0 2px;
+ }
+}
+
+label, legend, .label {
+ font-weight: 300;
+}
+
+.big-green-banner {
+ background-color: $dark_green;
+ text-transform: none;
+}
+
+div.form-error, p.form-error {
+ color: $red;
+ background-color: transparent;
+ padding: 0;
+ width: 100%;
+
+ a {
+ color: $red;
+ text-decoration: underline;
+ }
+}
+
+
+input.form-error, textarea.form-error,
+select.form-error {
+ border-color: $red;
+ border-radius: 0 !important;
+}
+
+.box-warning {
+ background-color: rgba(164, 214, 94, 0.5);
+}
+
+.dz-clickable:hover, .dz-drag-hover {
+ border-color: $light-green;
+}
+
+.dz-clickable:hover .dz-message u, .dz-drag-hover .dz-message u {
+ color: $green;
+}
+
+.sso-staff-sign-in {
+ font-size: 0.9em;
+ margin: 1em 0;
+}
diff --git a/web/cobrands/hackney/hackney-search-icon.png b/web/cobrands/hackney/hackney-search-icon.png
new file mode 100644
index 000000000..99305f24a
--- /dev/null
+++ b/web/cobrands/hackney/hackney-search-icon.png
Binary files differ
diff --git a/web/cobrands/hackney/images/hackney-logo-white.png b/web/cobrands/hackney/images/hackney-logo-white.png
new file mode 100644
index 000000000..3a41df786
--- /dev/null
+++ b/web/cobrands/hackney/images/hackney-logo-white.png
Binary files differ
diff --git a/web/cobrands/hackney/layout.scss b/web/cobrands/hackney/layout.scss
new file mode 100644
index 000000000..8b6fa6278
--- /dev/null
+++ b/web/cobrands/hackney/layout.scss
@@ -0,0 +1,143 @@
+@import "_colours";
+@import "../sass/layout";
+
+#main-nav {
+ display: block; // remove flex so nav touches top of parent
+ min-height: 0; // no vertical align, so no need for a height
+ margin-top: 0; // don't bother overlapping the border
+ height: auto;
+ margin-top: 0.5em;
+ .frontpage & {
+ margin-top: 1em;
+ }
+ .ie9 & {
+ position: static;
+ float: $right;
+
+ & > * {
+ position: static;
+ -ms-transform: none;
+ }
+ }
+
+ a {
+ font-weight: 600;
+ }
+}
+
+.nav-menu--mysoc {
+ padding: 0em 0.5em;
+ margin-#{$left}: 0.25em;
+ background-color: $primary;
+ @include border-radius(0 0 0.375em 0.375em);
+ a {
+ background-color: transparent;
+ color: $primary_text;
+ text-transform: uppercase;
+ font-size: 0.6875em;
+ padding: 1.3em 0.7em 1em;
+ &:hover {
+ color: #fff;
+ background-color: transparent;
+ }
+ }
+}
+
+body.frontpage {
+ #site-logo {
+ margin: 0.5em 0 0.5em;
+ width: 200px;
+ height: 54px;
+ background: transparent url('images/hackney-logo-white.png') 0 50% no-repeat;
+ background-size: 200px 36px;
+ }
+}
+
+#site-header {
+ padding: 4px 0;
+ margin-bottom: 2em;
+ .mappage & {
+ margin-bottom: 0;
+ }
+}
+
+#front-main {
+ background-color: $white;
+ padding: 50px 0;
+ border-bottom: 3px solid $light_green;
+ label {
+ font-size: 18px;
+ font-weight: 600;
+ }
+
+ h1 {
+ font-size: 40px;
+ font-weight: 600;
+ }
+
+ #postcodeForm {
+ overflow: visible;
+ margin: 0;
+
+ div {
+ margin: 0;
+ }
+ }
+
+ #front-main-container {
+ padding: 0 1em;
+ }
+}
+
+ol.big-numbers>li:before {
+ color: $dark_green;
+}
+
+.nav-menu--main span {
+ color: $light_green;
+ font-weight: 600;
+}
+
+#front_stats {
+ border-color: $dark_green;
+ big {
+ color: $dark_green;
+ }
+}
+
+.nav-menu--main a.report-a-problem-btn {
+ background-color: transparent;
+ color: white;
+ &:hover,
+ &:active,
+ &:focus {
+ background-color: transparent;
+ color: white;
+ }
+}
+
+#front-howto h2,
+#front-recently h2 {
+ font-weight: 600;
+}
+
+#front_stats {
+ background-color: transparent;
+}
+
+.big-green-banner {
+ background-color: $dark_green;
+}
+
+.footer-powered-by {
+ position: relative;
+ top: -40px;
+ right: 0;
+ text-align: right;
+
+}
+
+a.platform-logo {
+ text-align: left;
+
+} \ No newline at end of file
diff --git a/web/cobrands/northamptonshire/assets.js b/web/cobrands/northamptonshire/assets.js
index 2b6cdeb69..377e1091c 100644
--- a/web/cobrands/northamptonshire/assets.js
+++ b/web/cobrands/northamptonshire/assets.js
@@ -439,26 +439,7 @@ var northants_defaults = $.extend(true, {}, fixmystreet.alloy_defaults, {
}
});
-$.each(layers, function(index, layer) {
- if ( layer.categories ) {
- var options = {
- http_options: {
- layerid: layer.layer,
- layerVersion: layer.version,
- },
- asset_type: layer.asset_type || 'spot',
- asset_category: layer.categories,
- asset_item: layer.item_name || layer.layer_name.toLowerCase(),
- };
- if (layer.max_resolution) {
- options.max_resolution = layer.max_resolution;
- }
- if (layer.snap_threshold || layer.snap_threshold === 0) {
- options.snap_threshold = layer.snap_threshold;
- }
- fixmystreet.assets.add(northants_defaults, options);
- }
-});
+fixmystreet.alloy_add_layers(northants_defaults, layers);
// NCC roads layers which prevent report submission unless we have selected
// an asset.