aboutsummaryrefslogtreecommitdiffstats
path: root/web/js
diff options
context:
space:
mode:
authorDave Whiteland <dave@mysociety.org>2012-06-25 14:33:57 +0100
committerDave Whiteland <dave@mysociety.org>2012-06-25 14:33:57 +0100
commitf9fe02f91ac72ea2954ee68a5f32d96a237fcd67 (patch)
treef91d63ab3d6b9cd3555587090a541c870ecd3363 /web/js
parent67da8efc720d2d0bd22bd9fe8655b7e983b35bb4 (diff)
parent45b3040884d7089e7d8c6f4acccd657b91c92a04 (diff)
Merge branch 'master' into fmb-read-only
Conflicts: .gitignore bin/make_css perllib/FixMyStreet/Cobrand/FixMyStreet.pm
Diffstat (limited to 'web/js')
-rw-r--r--web/js/fixmystreet.js12
-rw-r--r--web/js/map-OpenLayers.js2
-rw-r--r--web/js/southampton.js97
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 &amp; 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)