diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 80 | ||||
-rw-r--r-- | web/cobrands/fixmystreet/fixmystreet.js | 4 | ||||
-rw-r--r-- | web/cobrands/sass/_base.scss | 3 |
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; |