aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2012-06-19 16:07:52 +0100
committerStruan Donald <struan@exo.org.uk>2012-06-19 16:07:52 +0100
commita5ffb43593ab33086ca54764930c1788c4b281d3 (patch)
treed9b43f9aead97301979edb2d82dc3df3e852bf65
parentfb2f6875a53ed8c3041efc8130116ed14d625fc5 (diff)
display category prompts on southampton cobrand
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm7
-rw-r--r--web/js/southampton.js97
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 &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)