diff options
Diffstat (limited to 'web/js')
-rw-r--r-- | web/js/fixmystreet.js | 12 | ||||
-rw-r--r-- | web/js/map-OpenLayers.js | 2 | ||||
-rw-r--r-- | web/js/southampton.js | 97 |
3 files changed, 98 insertions, 13 deletions
diff --git a/web/js/fixmystreet.js b/web/js/fixmystreet.js index 36d47b5b2..b689d501c 100644 --- a/web/js/fixmystreet.js +++ b/web/js/fixmystreet.js @@ -47,7 +47,7 @@ $(function(){ jQuery.validator.addMethod('validName', function(value, element) { var validNamePat = /\ba\s*n+on+((y|o)mo?u?s)?(ly)?\b/i; - return this.optional(element) || value.length > 5 && value.match( /\S/ ) && !value.match( validNamePat ); }, validation_strings.category ); + return this.optional(element) || value.length > 5 && value.match( /\S/ ) && value.match( /\s/ ) && !value.match( validNamePat ); }, validation_strings.category ); var form_submitted = 0; var submitted = false; @@ -108,7 +108,10 @@ $(function(){ $('#submit_register').click( function(e) { $('#form_category').addClass('required validCategory').removeClass('valid'); - $('#form_name').addClass('required validName'); + $('#form_name').addClass('required'); + if ( $('#mapForm').length ) { + $('#form_name').addClass('validName'); + } $('#form_first_name').addClass('required'); $('#form_last_name').addClass('required'); $('#form_fms_extra_title').addClass('required'); @@ -116,7 +119,10 @@ $(function(){ $('#problem_submit > input[type="submit"]').click( function(e) { $('#form_category').addClass('required validCategory').removeClass('valid'); - $('#form_name').addClass('required validName'); + $('#form_name').addClass('required'); + if ( $('#mapForm').length ) { + $('#form_name').addClass('validName'); + } $('#form_first_name').addClass('required'); $('#form_last_name').addClass('required'); $('#form_fms_extra_title').addClass('required'); diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index cf873edd6..eca1fc074 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -504,6 +504,8 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { // e.xy is relative to top left of map, which might not be top left of page e.xy.x += bo.left; e.xy.y += bo.top; + + // 24 and 64 is the width and height of the marker pin if (e.xy.y <= o.top || (e.xy.x >= o.left && e.xy.x <= o.left + w + 24 && e.xy.y >= o.top && e.xy.y <= o.top + h + 64)) { // top of the page, pin hidden by header; // or underneath where the new sidebar will appear diff --git a/web/js/southampton.js b/web/js/southampton.js index c0fa48b06..af090d89b 100644 --- a/web/js/southampton.js +++ b/web/js/southampton.js @@ -3,6 +3,37 @@ * FixMyStreet JavaScript for Southampton */ +function update_category_extra(msg) { + var content = '<div style="margin: 1em 0em 1em 6.5em"><strong>' + msg + '</strong></div>'; + var el = $('#category_extra'); + if ( el.length ) { + el.html( content ); + } else { + var cat_extra = '<div id="category_extra" style="margin:0; display_none;">' + + content + + '</div>'; + $('#form_title').closest('div.form-field').after(cat_extra); + } + $('#category_extra').show('fast'); +} + +function check_depth() { + var depth = $(this).val(); + if ('Deeper than a tennis ball' == depth) { + var content = '<div style="margin: 1em 0em 1em 6.5em"><strong>' + + 'Please contact Actionline on 0800 5 19 19 19 so your report can be dealt with urgently' + + '</strong></div>'; + var depth_extra = $('#depth_extra'); + if ( depth_extra.length ) { + depth_extra.html( content ); + depth_extra.show('fast'); + } else { + $('#form_depth').after( '<div id="depth_extra">' + content + '</div>' ); + } + } else { + $('#depth_extra').hide('fast'); + } +} $(function(){ @@ -20,15 +51,19 @@ $(function(){ input.val(input.attr('placeholder')); } }).blur(); - + // use on() here because the #form_category may be replaced // during the page's lifetime $("#problem_form").on("change.southampton", "select#form_category", - function() { + function() { + $('#form_sign_in').show('fast'); + $('#problem_submit').show('fast'); + $('#street_light_report').hide('fast'); + $('#depth_extra').hide('fast'); + $('#category_extra').hide('fast'); var category = $(this).val(); if ('Potholes' == category) { - if (!$('#potholes_extra').length) { - var qns = '<div id="potholes_extra" style="margin:0; display:none;">' + + var content = '<div class="form-field"><label for="form_size">Size:</label>' + '<select name="detail_size"><option>-- Please select --<option>Unknown' + '<option>Small: No larger than a dinner plate (up to 30cm/12inches)' + @@ -36,17 +71,59 @@ $(function(){ '<option>Large: Larger than a dustbin lid (over 60cm/24inches)' + '</select></div>' + '<div class="form-field"><label for="form_depth">Depth:</label>' + - '<select name="detail_depth"><option>-- Please select --<option>Unknown' + + '<select id="form_depth" name="detail_depth"><option>-- Please select --<option>Unknown' + '<option>No deeper than a golf ball (up to 4cm/1.5inches)' + '<option>No deeper than a tennis ball (up to 6.5cm/2.5inches)' + '<option>Deeper than a tennis ball' + - '</select></div></div>'; + '</select></div>'; + if (!$('#category_extra').length) { + var qns = '<div id="category_extra" style="margin:0; display:none;">' + + content + + '</div>'; $('#form_title').closest('div.form-field').after(qns); - } - $('#potholes_extra').show('fast'); + } else { + $('#category_extra').html( content ); + } + $('#category_extra').show('fast'); + $('#form_depth').on('change', check_depth ); + } else if ('Fly Tipping' == category) { + update_category_extra( 'Please list/detail items fly-tipped in the description box & if it has been left on council or private property (if you know).' ); + } else if ('Litter' == category) { + update_category_extra( 'Please detail the type of litter. If you are reporting broken glass, syringes, oil spills or human excrement, please contact Actionline on 0800 5 19 19 19 so your report can be dealt with.' ); + } else if ('Leaves' == category) { + update_category_extra( 'Please give as much information as you can, e.g. approximate quantity in bin bags. Thank you' ); + } else if ('Dead animals' == category) { + update_category_extra( 'Please give as much information as you can, e.g. which animal, on road or pavement. Thank you' ); + } else if ('Shopping trolleys' == category) { + update_category_extra( 'Please give as much information as you can, e.g. which supermarket. Thank you' ); + } else if ('Bollards' == category) { + update_category_extra( 'Please give as much information as you can, e.g. are they lit, metal or concrete. Thank you' ); + } else if ('Overhanging vegetation' == category) { + update_category_extra( 'Please give as much information as you can, e.g. is it coming from a private property or open area. Thank you' ); + } else if ('Graffiti' == category) { + var graffiti_content = + '<div class="form-field"><label for="form_offensive">Is it racist/ offensive:</label>' + + '<select name="detail_offensive"><option>-- Please select --' + + '<option>Yes<option>No</select></div>'; + if (!$('#category_extra').length) { + var graffiti_qns = '<div id="category_extra" style="margin:0; display:none;">' + + graffiti_content + + '</div>'; + $('#form_title').closest('div.form-field').after(graffiti_qns); + } else { + $('#category_extra').html( graffiti_content ); + } + $('#category_extra').show('fast'); + } else if ('Street lighting' == category) { + $('#form_sign_in').hide('fast'); + $('#problem_submit').hide('fast'); + $('#category_extra').hide('fast'); + var lighting_content = + '<div id="street_light_report" style="margin: 1em 0em 1em 6.5em">Please report Street light problems using the Southampton Street Lighting site at: <a href="http://www.lightsoninsouthampton.co.uk/Public/ReportFault.aspx">http://www.lightsoninsouthampton.co.uk/Public/ReportFault.aspx</a></div>'; + $('#form_category_row').after(lighting_content); } else { - $('#potholes_extra').hide('fast'); - } + $('#category_extra').hide('fast'); + } } ).change(); // change called to trigger (in case we've come in with potholes selected) |