diff options
author | Struan Donald <struan@exo.org.uk> | 2012-06-19 16:07:52 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2012-06-19 16:07:52 +0100 |
commit | a5ffb43593ab33086ca54764930c1788c4b281d3 (patch) | |
tree | d9b43f9aead97301979edb2d82dc3df3e852bf65 | |
parent | fb2f6875a53ed8c3041efc8130116ed14d625fc5 (diff) |
display category prompts on southampton cobrand
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 7 | ||||
-rw-r--r-- | web/js/southampton.js | 97 |
2 files changed, 89 insertions, 15 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 35173816a..782200587 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -641,10 +641,6 @@ sub setup_categories_and_councils : Private { $area_ids_to_list{ $contact->area_id } = 1; - next # TODO - move this to the cobrand - if $c->cobrand->moniker eq 'southampton' - && $contact->category =~ /Street lighting|Traffic lights/; - next if $contact->category eq _('Other'); unless ( $seen{$contact->category} ) { @@ -776,6 +772,7 @@ sub process_report : Private { ( 'title', 'detail', 'pc', # 'detail_size', 'detail_depth', + 'detail_offensive', 'may_show_name', # 'category', # 'partial', # @@ -796,7 +793,7 @@ sub process_report : Private { $report->title( Utils::cleanup_text( $params{title} ) ); my $detail = Utils::cleanup_text( $params{detail}, { allow_multiline => 1 } ); - for my $w ('depth', 'size') { + for my $w ('depth', 'size', 'offensive') { next unless $params{"detail_$w"}; next if $params{"detail_$w"} eq '-- Please select --'; $detail .= "\n\n\u$w: " . $params{"detail_$w"}; 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) |