aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/cobrands/fixmystreet/assets.js80
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js4
-rw-r--r--web/cobrands/sass/_base.scss3
3 files changed, 51 insertions, 36 deletions
diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js
index 4854b902e..14aab2db2 100644
--- a/web/cobrands/fixmystreet/assets.js
+++ b/web/cobrands/fixmystreet/assets.js
@@ -49,6 +49,49 @@ $(fixmystreet).on('report_new:category_change:extras_received', fixmystreet.usrn
var selected_feature = null;
var fault_popup = null;
+/*
+ * Adds the layer to the map and sets up event handlers and whatnot.
+ * Called as part of fixmystreet.assets.init for each asset layer on the map.
+ */
+function init_asset_layer(layer, pins_layer) {
+ fixmystreet.map.addLayer(layer);
+ if (layer.fixmystreet.asset_category) {
+ fixmystreet.map.events.register( 'zoomend', layer, check_zoom_message_visibility);
+ }
+
+ // Don't cover the existing pins layer
+ if (pins_layer) {
+ layer.setZIndex(pins_layer.getZIndex()-1);
+ }
+
+ // Make sure the fault markers always appear beneath the linked assets
+ if (layer.fixmystreet.fault_layer) {
+ fixmystreet.map.addLayer(layer.fixmystreet.fault_layer);
+ layer.fixmystreet.fault_layer.setZIndex(layer.getZIndex()-1);
+ }
+
+ if (!layer.fixmystreet.always_visible) {
+ // Show/hide the asset layer when the category is chosen
+ $("#problem_form").on("change.category", "select#form_category", function(){
+ var category = $(this).val();
+ if (category == layer.fixmystreet.asset_category) {
+ layer.setVisibility(true);
+ if (layer.fixmystreet.fault_layer) {
+ layer.fixmystreet.fault_layer.setVisibility(true);
+ }
+ zoom_to_assets(layer);
+ } else {
+ layer.setVisibility(false);
+ if (layer.fixmystreet.fault_layer) {
+ layer.fixmystreet.fault_layer.setVisibility(false);
+ }
+ }
+ });
+ }
+
+}
+
+
function close_fault_popup() {
if (!!fault_popup) {
fixmystreet.map.removePopup(fault_popup);
@@ -417,25 +460,6 @@ fixmystreet.assets = {
if (select_feature_control) {
fixmystreet.assets.controls.push(select_feature_control);
}
-
- if (!asset_layer.fixmystreet.always_visible) {
- // Show/hide the asset layer when the category is chosen
- $("#problem_form").on("change.category", "select#form_category", function(){
- var category = $(this).val();
- if (category == options.asset_category) {
- asset_layer.setVisibility(true);
- if (asset_layer.fixmystreet.fault_layer) {
- asset_layer.fixmystreet.fault_layer.setVisibility(true);
- }
- zoom_to_assets(asset_layer);
- } else {
- asset_layer.setVisibility(false);
- if (asset_layer.fixmystreet.fault_layer) {
- asset_layer.fixmystreet.fault_layer.setVisibility(false);
- }
- }
- });
- }
},
init: function() {
@@ -461,23 +485,7 @@ fixmystreet.assets = {
var pins_layer = fixmystreet.map.getLayersByName("Pins")[0];
for (var i = 0; i < fixmystreet.assets.layers.length; i++) {
- var layer = fixmystreet.assets.layers[i];
- fixmystreet.map.addLayer(layer);
- if (layer.fixmystreet.asset_category) {
- fixmystreet.map.events.register( 'zoomend', layer, check_zoom_message_visibility);
- }
-
- // Don't cover the existing pins layer
- if (pins_layer) {
- layer.setZIndex(pins_layer.getZIndex()-1);
- }
-
- // Make sure the fault markers always appear beneath the linked assets
- if (layer.fixmystreet.fault_layer) {
- fixmystreet.map.addLayer(layer.fixmystreet.fault_layer);
- layer.fixmystreet.fault_layer.setZIndex(layer.getZIndex()-1);
- }
-
+ init_asset_layer(fixmystreet.assets.layers[i], pins_layer);
}
for (i = 0; i < fixmystreet.assets.controls.length; i++) {
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index aae275ede..d85a5cdbc 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -409,6 +409,10 @@ $.extend(fixmystreet.set_up, {
if ( data.category_extra ) {
if ( $category_meta.length ) {
$category_meta.replaceWith( data.category_extra );
+ // Preserve any existing values
+ $category_meta.find("[name]").each(function() {
+ $('#category_meta').find("[name="+this.name+"]").val(this.value);
+ });
} else {
$('#form_category_row').after( data.category_extra );
}
diff --git a/web/cobrands/sass/_base.scss b/web/cobrands/sass/_base.scss
index 4f46d685a..4e2a2fd5f 100644
--- a/web/cobrands/sass/_base.scss
+++ b/web/cobrands/sass/_base.scss
@@ -560,6 +560,9 @@ ul.error {
font-size: 1.25em;
border-bottom: 0.25em solid #333;
}
+ a:visited {
+ color: #333;
+ }
a:hover, span.hover {
background-color: #333;
color: #fff;