diff options
author | Struan Donald <struan@exo.org.uk> | 2011-05-11 09:11:49 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2011-05-11 09:11:49 +0100 |
commit | 4bb7f2af6a5a2e5f401d47f8aa2291000f95a641 (patch) | |
tree | 7cc5bf76b36f3611b8ec1d49cfd6ac9d6c4d2b43 | |
parent | 0a38fbfb7d21e0e9c79a747b17c7f4058c791e06 (diff) |
commenting out code implemented in catalyst
-rwxr-xr-x | web/alert.cgi | 836 |
1 files changed, 418 insertions, 418 deletions
diff --git a/web/alert.cgi b/web/alert.cgi index 208dc756b..70e078ecd 100755 --- a/web/alert.cgi +++ b/web/alert.cgi @@ -72,380 +72,380 @@ EOF } Page::do_fastcgi(\&main); -sub alert_list { - my ($q, @errors) = @_; - my @vars = qw(pc rznvy lat lon); - my %input = map { $_ => scalar $q->param($_) } @vars; - my %input_h = map { $_ => $q->param($_) ? ent($q->param($_)) : '' } @vars; - - my($error, $lat, $lon); - if ($input{lat} || $input{lon}) { - $lat = $input{lat}; - $lon = $input{lon}; - } else { - try { - ($lat, $lon, $error) = FixMyStreet::Geocode::lookup($input{pc}, $q); - } catch Error::Simple with { - $error = shift; - }; - } - - return FixMyStreet::Geocode::list_choices($error, '/alert', $q) if ref($error) eq 'ARRAY'; - return alert_front_page($q, $error) if $error; - - my $pretty_pc = $input_h{pc}; - my $pretty_pc_text;# This one isnt't getting the nbsp. - if (mySociety::PostcodeUtil::is_valid_postcode($input{pc})) { - $pretty_pc = mySociety::PostcodeUtil::canonicalise_postcode($input{pc}); - $pretty_pc_text = $pretty_pc; - $pretty_pc_text =~ s/ //g; - $pretty_pc =~ s/ / /; - } - - # truncate the lat,lon for nicer urls - ( $lat, $lon ) = map { Utils::truncate_coordinate($_) } ( $lat, $lon ); - - my $errors = ''; - $errors = '<ul class="error"><li>' . join('</li><li>', @errors) . '</li></ul>' if @errors; - - my $cobrand = Page::get_cobrand($q); - my @types = (Cobrand::area_types($cobrand), @$mySociety::VotingArea::council_child_types); - my %councils = map { $_ => 1 } Cobrand::area_types($cobrand); - - my $areas = mySociety::MaPit::call('point', "4326/$lon,$lat", type => \@types); - my ($success, $error_msg) = Cobrand::council_check($cobrand, { all_councils => $areas }, $q, 'alert'); - if (!$success) { - return alert_front_page($q, $error_msg); - } - - return alert_front_page($q, _('That location does not appear to be covered by a council, perhaps it is offshore - please try somewhere more specific.')) if keys %$areas == 0; - - my ($options, $options_start, $options_end); - if (mySociety::Config::get('COUNTRY') eq 'NO') { - - my (@options, $fylke, $kommune); - foreach (values %$areas) { - if ($_->{type} eq 'NKO') { - $kommune = $_; - } else { - $fylke = $_; - } - } - my $kommune_name = $kommune->{name}; - my $fylke_name = $fylke->{name}; - - if ($fylke->{id} == 3) { # Oslo - - push @options, [ 'council', $fylke->{id}, Page::short_name($fylke), - sprintf(_("Problems within %s"), $fylke_name) ]; - - $options_start = "<div><ul id='rss_feed'>"; - $options = alert_list_options($q, @options); - $options_end = "</ul>"; - - } else { - - push @options, - [ 'area', $kommune->{id}, Page::short_name($kommune), $kommune_name ], - [ 'area', $fylke->{id}, Page::short_name($fylke), $fylke_name ]; - $options_start = '<div id="rss_list">'; - $options = $q->p($q->strong(_('Problems within the boundary of:'))) . - $q->ul(alert_list_options($q, @options)); - @options = (); - push @options, - [ 'council', $kommune->{id}, Page::short_name($kommune), $kommune_name ], - [ 'council', $fylke->{id}, Page::short_name($fylke), $fylke_name ]; - $options .= $q->p($q->strong(_('Or problems reported to:'))) . - $q->ul(alert_list_options($q, @options)); - $options_end = $q->p($q->small(_('FixMyStreet sends different categories of problem -to the appropriate council, so problems within the boundary of a particular council -might not match the problems sent to that council. For example, a graffiti report -will be sent to the district council, so will appear in both of the district -council’s alerts, but will only appear in the "Within the boundary" alert -for the county council.'))) . '</div><div id="rss_buttons">'; - - } - - } elsif (keys %$areas == 2) { - - # One-tier council - my (@options, $council, $ward); - foreach (values %$areas) { - if ($councils{$_->{type}}) { - $council = $_; - } else { - $ward = $_; - } - } - my $council_name = $council->{name}; - my $ward_name = $ward->{name}; - push @options, [ 'council', $council->{id}, Page::short_name($council), - sprintf(_("Problems within %s"), $council_name) ]; - push @options, [ 'ward', $council->{id}.':'.$ward->{id}, Page::short_name($council) . '/' - . Page::short_name($ward), sprintf(_("Problems within %s ward"), $ward_name) ]; - - $options_start = "<div><ul id='rss_feed'>"; - $options = alert_list_options($q, @options); - $options_end = "</ul>"; - - } elsif (keys %$areas == 1) { - - # One-tier council, no ward - my (@options, $council); - foreach (values %$areas) { - $council = $_; - } - my $council_name = $council->{name}; - push @options, [ 'council', $council->{id}, Page::short_name($council), - sprintf(_("Problems within %s"), $council_name) ]; - - $options_start = "<div><ul id='rss_feed'>"; - $options = alert_list_options($q, @options); - $options_end = "</ul>"; - - } elsif (keys %$areas == 4) { - - # Two-tier council - my (@options, $county, $district, $c_ward, $d_ward); - foreach (values %$areas) { - if ($_->{type} eq 'CTY') { - $county = $_; - } elsif ($_->{type} eq 'DIS') { - $district = $_; - } elsif ($_->{type} eq 'CED') { - $c_ward = $_; - } elsif ($_->{type} eq 'DIW') { - $d_ward = $_; - } - } - my $district_name = $district->{name}; - my $d_ward_name = $d_ward->{name}; - my $county_name = $county->{name}; - my $c_ward_name = $c_ward->{name}; - push @options, - [ 'area', $district->{id}, Page::short_name($district), $district_name ], - [ 'area', $district->{id}.':'.$d_ward->{id}, Page::short_name($district) . '/' - . Page::short_name($d_ward), "$d_ward_name ward, $district_name" ], - [ 'area', $county->{id}, Page::short_name($county), $county_name ], - [ 'area', $county->{id}.':'.$c_ward->{id}, Page::short_name($county) . '/' - . Page::short_name($c_ward), "$c_ward_name ward, $county_name" ]; - $options_start = '<div id="rss_list">'; - $options = $q->p($q->strong(_('Problems within the boundary of:'))) . - $q->ul(alert_list_options($q, @options)); - @options = (); - push @options, - [ 'council', $district->{id}, Page::short_name($district), $district_name ], - [ 'ward', $district->{id}.':'.$d_ward->{id}, Page::short_name($district) . '/' . Page::short_name($d_ward), - "$district_name, within $d_ward_name ward" ]; - if ($q->{site} ne 'emptyhomes') { - push @options, - [ 'council', $county->{id}, Page::short_name($county), $county_name ], - [ 'ward', $county->{id}.':'.$c_ward->{id}, Page::short_name($county) . '/' - . Page::short_name($c_ward), "$county_name, within $c_ward_name ward" ]; - $options .= $q->p($q->strong(_('Or problems reported to:'))) . - $q->ul(alert_list_options($q, @options)); - $options_end = $q->p($q->small(_('FixMyStreet sends different categories of problem -to the appropriate council, so problems within the boundary of a particular council -might not match the problems sent to that council. For example, a graffiti report -will be sent to the district council, so will appear in both of the district -council’s alerts, but will only appear in the "Within the boundary" alert -for the county council.'))) . '</div><div id="rss_buttons">'; - } else { - $options_end = ''; - } - } else { - # Hopefully impossible in the UK! - throw Error::Simple('An area with three tiers of council? Impossible! '. $lat . ' ' . $lon . ' ' . join('|',keys %$areas)); - } - - my $dist = mySociety::Gaze::get_radius_containing_population($lat, $lon, 200000); - $dist = int($dist * 10 + 0.5); - $dist = $dist / 10.0; - - my $checked = ''; - $checked = ' checked' if $q->param('feed') && $q->param('feed') eq "local:$lat:$lon"; - my $cobrand_form_elements = Cobrand::form_elements($cobrand, 'alerts', $q); - my $pics = Cobrand::recent_photos($cobrand, 5, $lat, $lon, $dist); - $pics = '<div id="alert_photos">' . $q->h2(_('Photos of recent nearby reports')) . $pics . '</div>' if $pics; - my $header; - if ($pretty_pc) { - $header = sprintf(_('Local RSS feeds and email alerts for ‘%s’'), $pretty_pc); - } else { - $header = _('Local RSS feeds and email alerts'); - } - my $out = $q->h1($header); - my $form_action = Cobrand::url($cobrand, '/alert', $q); - $out .= <<EOF; -<form id="alerts" name="alerts" method="post" action="$form_action"> -<input type="hidden" name="type" value="local"> -<input type="hidden" name="pc" value="$input_h{pc}"> -$cobrand_form_elements -$pics - -EOF - $out .= $q->p(($pretty_pc ? sprintf(_('Here are the types of local problem alerts for ‘%s’.'), $pretty_pc) - : '') . ' ' . _('Select which type of alert you’d like and click the button for an RSS -feed, or enter your email address to subscribe to an email alert.')); - $out .= $errors; - $out .= $q->p(_('The simplest alert is our geographic one:')); - my $rss_label = sprintf(_('Problems within %skm of this location'), $dist); - $out .= <<EOF; -<p id="rss_local"> -<input type="radio" name="feed" id="local:$lat:$lon" value="local:$lat:$lon"$checked> -<label for="local:$lat:$lon">$rss_label</label> -EOF - my $rss_feed; - if ($pretty_pc_text) { - $rss_feed = Cobrand::url($cobrand, "/rss/pc/$pretty_pc_text", $q); - } else { - $rss_feed = Cobrand::url($cobrand, "/rss/l/$lat,$lon", $q); - } - - my $default_link = Cobrand::url($cobrand, "/alert?type=local;feed=local:$lat:$lon", $q); - my $rss_details = _('(a default distance which covers roughly 200,000 people)'); - $out .= $rss_details; - $out .= " <a href='$rss_feed'><img src='/i/feed.png' width='16' height='16' title='" - . _('RSS feed of nearby problems') . "' alt='" . _('RSS feed') . "' border='0'></a>"; - $out .= '</p> <p id="rss_local_alt">' . _('(alternatively the RSS feed can be customised, within'); - my $rss_feed_2k = Cobrand::url($cobrand, $rss_feed.'/2', $q); - my $rss_feed_5k = Cobrand::url($cobrand, $rss_feed.'/5', $q); - my $rss_feed_10k = Cobrand::url($cobrand, $rss_feed.'/10', $q); - my $rss_feed_20k = Cobrand::url($cobrand, $rss_feed.'/20', $q); - $out .= <<EOF; - <a href="$rss_feed_2k">2km</a> / <a href="$rss_feed_5k">5km</a> -/ <a href="$rss_feed_10k">10km</a> / <a href="$rss_feed_20k">20km</a>) -</p> -EOF - $out .= $q->p(_('Or you can subscribe to an alert based upon what ward or council you’re in:')); - $out .= $options_start; - $out .= $options; - $out .= $options_end; - $out .= $q->p('<input type="submit" name="rss" value="' . _('Give me an RSS feed') . '">'); - $out .= $q->p({-id=>'alert_or'}, _('or')); - $out .= '<p>' . _('Your email:') . ' <input type="text" id="rznvy" name="rznvy" value="' . $input_h{rznvy} . '" size="30"></p> -<p><input type="submit" name="alert" value="' . _('Subscribe me to an email alert') . '"></p> -</div> -</form>'; - my %vars = (header => $header, - cobrand_form_elements => $cobrand_form_elements, - error => $errors, - rss_label => $rss_label, - rss_feed => $rss_feed, - default_link => $default_link, - rss_details => $rss_details, - rss_feed_2k => $rss_feed_2k, - rss_feed_5k => $rss_feed_5k, - rss_feed_10k => $rss_feed_10k, - rss_feed_20k => $rss_feed_20k, - lat => $lat, - lon => $lon, - options => $options ); - my $cobrand_page = Page::template_include('alert-options', $q, Page::template_root($q), %vars); - $out = $cobrand_page if ($cobrand_page); - return $out; -} - -sub alert_list_options { - my $q = shift; - my $out = ''; - my $feed = $q->param('feed') || ''; - my $cobrand = Page::get_cobrand($q); - my $cobrand_list = Cobrand::alert_list_options($cobrand, $q, @_); - return $cobrand_list if ($cobrand_list); - foreach (@_) { - my ($type, $vals, $rss, $text) = @$_; - (my $vals2 = $rss) =~ tr{/+}{:_}; - my $id = $type . ':' . $vals . ':' . $vals2; - $out .= '<li><input type="radio" name="feed" id="' . $id . '" '; - $out .= 'checked ' if $feed eq $id; - my $url = "/rss/"; - $url .= $type eq 'area' ? 'area' : 'reports'; - $url .= '/' . $rss ; - my $rss_url = Cobrand::url($cobrand, $url, $q); - $out .= 'value="' . $id . '"> <label for="' . $id . '">' . $text - . '</label> <a href="' . $rss_url . '"><img src="/i/feed.png" width="16" height="16" -title="' . sprintf(_('RSS feed of %s'), $text) . '" alt="' . _('RSS feed') . '" border="0"></a></li>'; - } - return $out; -} - -sub alert_front_page { - my $q = shift; - my $cobrand = Page::get_cobrand($q); - my $error = shift; - my $errors = ''; - $errors = '<ul class="error"><li>' . $error . '</li></ul>' if $error; - - my %input_h = map { $_ => $q->param($_) ? ent($q->param($_)) : '' } qw(pc); - my $header = _('Local RSS feeds and email alerts'); - my $intro = _('FixMyStreet has a variety of RSS feeds and email alerts for local problems, including -alerts for all problems within a particular ward or council, or all problems -within a certain distance of a particular location.'); - my $pc_label = _('To find out what local alerts we have for you, please enter your GB -postcode or street name and area:'); - my $form_action = Cobrand::url(Page::get_cobrand($q), '/alert', $q); - my $cobrand_form_elements = Cobrand::form_elements($cobrand, 'alerts', $q); - my $cobrand_extra_data = Cobrand::extra_data($cobrand, $q); - my $submit_text = _('Go'); - - my $out = $q->h1($header); - $out .= $q->p($intro); - $out .= $errors . qq(<form method="get" action="$form_action">); - $out .= $q->p($pc_label, '<input type="text" name="pc" value="' . $input_h{pc} . '"> -<input type="submit" value="' . $submit_text . '">'); - $out .= $cobrand_form_elements; - $out .= '</form>'; - - my %vars = (error => $error, - header => $header, - intro => $intro, - pc_label => $pc_label, - form_action => $form_action, - input_h => \%input_h, - submit_text => $submit_text, - cobrand_form_elements => $cobrand_form_elements, - cobrand_extra_data => $cobrand_extra_data, - url_home => Cobrand::url($cobrand, '/', $q)); - - my $cobrand_page = Page::template_include('alert-front-page', $q, Page::template_root($q), %vars); - $out = $cobrand_page if ($cobrand_page); - - return $out if $q->referer() && $q->referer() =~ /fixmystreet\.com/; - my $recent_photos = Cobrand::recent_photos($cobrand, 10); - $out .= '<div id="alert_recent">' . $q->h2(_('Some photos of recent reports')) . $recent_photos . '</div>' if $recent_photos; +#sub alert_list { +# my ($q, @errors) = @_; +# my @vars = qw(pc rznvy lat lon); +# my %input = map { $_ => scalar $q->param($_) } @vars; +# my %input_h = map { $_ => $q->param($_) ? ent($q->param($_)) : '' } @vars; +# +# my($error, $lat, $lon); +# if ($input{lat} || $input{lon}) { +# $lat = $input{lat}; +# $lon = $input{lon}; +# } else { +# try { +# ($lat, $lon, $error) = FixMyStreet::Geocode::lookup($input{pc}, $q); +# } catch Error::Simple with { +# $error = shift; +# }; +# } +# +# return FixMyStreet::Geocode::list_choices($error, '/alert', $q) if ref($error) eq 'ARRAY'; +# return alert_front_page($q, $error) if $error; +# +# my $pretty_pc = $input_h{pc}; +# my $pretty_pc_text;# This one isnt't getting the nbsp. +# if (mySociety::PostcodeUtil::is_valid_postcode($input{pc})) { +# $pretty_pc = mySociety::PostcodeUtil::canonicalise_postcode($input{pc}); +# $pretty_pc_text = $pretty_pc; +# $pretty_pc_text =~ s/ //g; +# $pretty_pc =~ s/ / /; +# } +# +# # truncate the lat,lon for nicer urls +# ( $lat, $lon ) = map { Utils::truncate_coordinate($_) } ( $lat, $lon ); +# +# my $errors = ''; +# $errors = '<ul class="error"><li>' . join('</li><li>', @errors) . '</li></ul>' if @errors; +# +# my $cobrand = Page::get_cobrand($q); +# my @types = (Cobrand::area_types($cobrand), @$mySociety::VotingArea::council_child_types); +# my %councils = map { $_ => 1 } Cobrand::area_types($cobrand); +# +# my $areas = mySociety::MaPit::call('point', "4326/$lon,$lat", type => \@types); +# my ($success, $error_msg) = Cobrand::council_check($cobrand, { all_councils => $areas }, $q, 'alert'); +# if (!$success) { +# return alert_front_page($q, $error_msg); +# } +# +# return alert_front_page($q, _('That location does not appear to be covered by a council, perhaps it is offshore - please try somewhere more specific.')) if keys %$areas == 0; +# +# my ($options, $options_start, $options_end); +# if (mySociety::Config::get('COUNTRY') eq 'NO') { +# +# my (@options, $fylke, $kommune); +# foreach (values %$areas) { +# if ($_->{type} eq 'NKO') { +# $kommune = $_; +# } else { +# $fylke = $_; +# } +# } +# my $kommune_name = $kommune->{name}; +# my $fylke_name = $fylke->{name}; +# +# if ($fylke->{id} == 3) { # Oslo +# +# push @options, [ 'council', $fylke->{id}, Page::short_name($fylke), +# sprintf(_("Problems within %s"), $fylke_name) ]; +# +# $options_start = "<div><ul id='rss_feed'>"; +# $options = alert_list_options($q, @options); +# $options_end = "</ul>"; +# +# } else { +# +# push @options, +# [ 'area', $kommune->{id}, Page::short_name($kommune), $kommune_name ], +# [ 'area', $fylke->{id}, Page::short_name($fylke), $fylke_name ]; +# $options_start = '<div id="rss_list">'; +# $options = $q->p($q->strong(_('Problems within the boundary of:'))) . +# $q->ul(alert_list_options($q, @options)); +# @options = (); +# push @options, +# [ 'council', $kommune->{id}, Page::short_name($kommune), $kommune_name ], +# [ 'council', $fylke->{id}, Page::short_name($fylke), $fylke_name ]; +# $options .= $q->p($q->strong(_('Or problems reported to:'))) . +# $q->ul(alert_list_options($q, @options)); +# $options_end = $q->p($q->small(_('FixMyStreet sends different categories of problem +#to the appropriate council, so problems within the boundary of a particular council +#might not match the problems sent to that council. For example, a graffiti report +#will be sent to the district council, so will appear in both of the district +#council’s alerts, but will only appear in the "Within the boundary" alert +#for the county council.'))) . '</div><div id="rss_buttons">'; +# +# } +# +# } elsif (keys %$areas == 2) { +# +# # One-tier council +# my (@options, $council, $ward); +# foreach (values %$areas) { +# if ($councils{$_->{type}}) { +# $council = $_; +# } else { +# $ward = $_; +# } +# } +# my $council_name = $council->{name}; +# my $ward_name = $ward->{name}; +# push @options, [ 'council', $council->{id}, Page::short_name($council), +# sprintf(_("Problems within %s"), $council_name) ]; +# push @options, [ 'ward', $council->{id}.':'.$ward->{id}, Page::short_name($council) . '/' +# . Page::short_name($ward), sprintf(_("Problems within %s ward"), $ward_name) ]; +# +# $options_start = "<div><ul id='rss_feed'>"; +# $options = alert_list_options($q, @options); +# $options_end = "</ul>"; +# +# } elsif (keys %$areas == 1) { +# +# # One-tier council, no ward +# my (@options, $council); +# foreach (values %$areas) { +# $council = $_; +# } +# my $council_name = $council->{name}; +# push @options, [ 'council', $council->{id}, Page::short_name($council), +# sprintf(_("Problems within %s"), $council_name) ]; +# +# $options_start = "<div><ul id='rss_feed'>"; +# $options = alert_list_options($q, @options); +# $options_end = "</ul>"; +# +# } elsif (keys %$areas == 4) { +# +# # Two-tier council +# my (@options, $county, $district, $c_ward, $d_ward); +# foreach (values %$areas) { +# if ($_->{type} eq 'CTY') { +# $county = $_; +# } elsif ($_->{type} eq 'DIS') { +# $district = $_; +# } elsif ($_->{type} eq 'CED') { +# $c_ward = $_; +# } elsif ($_->{type} eq 'DIW') { +# $d_ward = $_; +# } +# } +# my $district_name = $district->{name}; +# my $d_ward_name = $d_ward->{name}; +# my $county_name = $county->{name}; +# my $c_ward_name = $c_ward->{name}; +# push @options, +# [ 'area', $district->{id}, Page::short_name($district), $district_name ], +# [ 'area', $district->{id}.':'.$d_ward->{id}, Page::short_name($district) . '/' +# . Page::short_name($d_ward), "$d_ward_name ward, $district_name" ], +# [ 'area', $county->{id}, Page::short_name($county), $county_name ], +# [ 'area', $county->{id}.':'.$c_ward->{id}, Page::short_name($county) . '/' +# . Page::short_name($c_ward), "$c_ward_name ward, $county_name" ]; +# $options_start = '<div id="rss_list">'; +# $options = $q->p($q->strong(_('Problems within the boundary of:'))) . +# $q->ul(alert_list_options($q, @options)); +# @options = (); +# push @options, +# [ 'council', $district->{id}, Page::short_name($district), $district_name ], +# [ 'ward', $district->{id}.':'.$d_ward->{id}, Page::short_name($district) . '/' . Page::short_name($d_ward), +# "$district_name, within $d_ward_name ward" ]; +# if ($q->{site} ne 'emptyhomes') { +# push @options, +# [ 'council', $county->{id}, Page::short_name($county), $county_name ], +# [ 'ward', $county->{id}.':'.$c_ward->{id}, Page::short_name($county) . '/' +# . Page::short_name($c_ward), "$county_name, within $c_ward_name ward" ]; +# $options .= $q->p($q->strong(_('Or problems reported to:'))) . +# $q->ul(alert_list_options($q, @options)); +# $options_end = $q->p($q->small(_('FixMyStreet sends different categories of problem +#to the appropriate council, so problems within the boundary of a particular council +#might not match the problems sent to that council. For example, a graffiti report +#will be sent to the district council, so will appear in both of the district +#council’s alerts, but will only appear in the "Within the boundary" alert +#for the county council.'))) . '</div><div id="rss_buttons">'; +# } else { +# $options_end = ''; +# } +# } else { +# # Hopefully impossible in the UK! +# throw Error::Simple('An area with three tiers of council? Impossible! '. $lat . ' ' . $lon . ' ' . join('|',keys %$areas)); +# } +# +# my $dist = mySociety::Gaze::get_radius_containing_population($lat, $lon, 200000); +# $dist = int($dist * 10 + 0.5); +# $dist = $dist / 10.0; +# +# my $checked = ''; +# $checked = ' checked' if $q->param('feed') && $q->param('feed') eq "local:$lat:$lon"; +# my $cobrand_form_elements = Cobrand::form_elements($cobrand, 'alerts', $q); +# my $pics = Cobrand::recent_photos($cobrand, 5, $lat, $lon, $dist); +# $pics = '<div id="alert_photos">' . $q->h2(_('Photos of recent nearby reports')) . $pics . '</div>' if $pics; +# my $header; +# if ($pretty_pc) { +# $header = sprintf(_('Local RSS feeds and email alerts for ‘%s’'), $pretty_pc); +# } else { +# $header = _('Local RSS feeds and email alerts'); +# } +# my $out = $q->h1($header); +# my $form_action = Cobrand::url($cobrand, '/alert', $q); +# $out .= <<EOF; +#<form id="alerts" name="alerts" method="post" action="$form_action"> +#<input type="hidden" name="type" value="local"> +#<input type="hidden" name="pc" value="$input_h{pc}"> +#$cobrand_form_elements +#$pics +# +#EOF +# $out .= $q->p(($pretty_pc ? sprintf(_('Here are the types of local problem alerts for ‘%s’.'), $pretty_pc) +# : '') . ' ' . _('Select which type of alert you’d like and click the button for an RSS +#feed, or enter your email address to subscribe to an email alert.')); +# $out .= $errors; +# $out .= $q->p(_('The simplest alert is our geographic one:')); +# my $rss_label = sprintf(_('Problems within %skm of this location'), $dist); +# $out .= <<EOF; +#<p id="rss_local"> +#<input type="radio" name="feed" id="local:$lat:$lon" value="local:$lat:$lon"$checked> +#<label for="local:$lat:$lon">$rss_label</label> +#EOF +# my $rss_feed; +# if ($pretty_pc_text) { +# $rss_feed = Cobrand::url($cobrand, "/rss/pc/$pretty_pc_text", $q); +# } else { +# $rss_feed = Cobrand::url($cobrand, "/rss/l/$lat,$lon", $q); +# } +# +# my $default_link = Cobrand::url($cobrand, "/alert?type=local;feed=local:$lat:$lon", $q); +# my $rss_details = _('(a default distance which covers roughly 200,000 people)'); +# $out .= $rss_details; +# $out .= " <a href='$rss_feed'><img src='/i/feed.png' width='16' height='16' title='" +# . _('RSS feed of nearby problems') . "' alt='" . _('RSS feed') . "' border='0'></a>"; +# $out .= '</p> <p id="rss_local_alt">' . _('(alternatively the RSS feed can be customised, within'); +# my $rss_feed_2k = Cobrand::url($cobrand, $rss_feed.'/2', $q); +# my $rss_feed_5k = Cobrand::url($cobrand, $rss_feed.'/5', $q); +# my $rss_feed_10k = Cobrand::url($cobrand, $rss_feed.'/10', $q); +# my $rss_feed_20k = Cobrand::url($cobrand, $rss_feed.'/20', $q); +# $out .= <<EOF; +# <a href="$rss_feed_2k">2km</a> / <a href="$rss_feed_5k">5km</a> +#/ <a href="$rss_feed_10k">10km</a> / <a href="$rss_feed_20k">20km</a>) +#</p> +#EOF +# $out .= $q->p(_('Or you can subscribe to an alert based upon what ward or council you’re in:')); +# $out .= $options_start; +# $out .= $options; +# $out .= $options_end; +# $out .= $q->p('<input type="submit" name="rss" value="' . _('Give me an RSS feed') . '">'); +# $out .= $q->p({-id=>'alert_or'}, _('or')); +# $out .= '<p>' . _('Your email:') . ' <input type="text" id="rznvy" name="rznvy" value="' . $input_h{rznvy} . '" size="30"></p> +#<p><input type="submit" name="alert" value="' . _('Subscribe me to an email alert') . '"></p> +#</div> +#</form>'; +# my %vars = (header => $header, +# cobrand_form_elements => $cobrand_form_elements, +# error => $errors, +# rss_label => $rss_label, +# rss_feed => $rss_feed, +# default_link => $default_link, +# rss_details => $rss_details, +# rss_feed_2k => $rss_feed_2k, +# rss_feed_5k => $rss_feed_5k, +# rss_feed_10k => $rss_feed_10k, +# rss_feed_20k => $rss_feed_20k, +# lat => $lat, +# lon => $lon, +# options => $options ); +# my $cobrand_page = Page::template_include('alert-options', $q, Page::template_root($q), %vars); +# $out = $cobrand_page if ($cobrand_page); +# return $out; +#} + +#sub alert_list_options { +# my $q = shift; +# my $out = ''; +# my $feed = $q->param('feed') || ''; +# my $cobrand = Page::get_cobrand($q); +# my $cobrand_list = Cobrand::alert_list_options($cobrand, $q, @_); +# return $cobrand_list if ($cobrand_list); +# foreach (@_) { +# my ($type, $vals, $rss, $text) = @$_; +# (my $vals2 = $rss) =~ tr{/+}{:_}; +# my $id = $type . ':' . $vals . ':' . $vals2; +# $out .= '<li><input type="radio" name="feed" id="' . $id . '" '; +# $out .= 'checked ' if $feed eq $id; +# my $url = "/rss/"; +# $url .= $type eq 'area' ? 'area' : 'reports'; +# $url .= '/' . $rss ; +# my $rss_url = Cobrand::url($cobrand, $url, $q); +# $out .= 'value="' . $id . '"> <label for="' . $id . '">' . $text +# . '</label> <a href="' . $rss_url . '"><img src="/i/feed.png" width="16" height="16" +#title="' . sprintf(_('RSS feed of %s'), $text) . '" alt="' . _('RSS feed') . '" border="0"></a></li>'; +# } +# return $out; +#} + +# sub alert_front_page { +# my $q = shift; +# my $cobrand = Page::get_cobrand($q); +# my $error = shift; +# my $errors = ''; +# $errors = '<ul class="error"><li>' . $error . '</li></ul>' if $error; + +# my %input_h = map { $_ => $q->param($_) ? ent($q->param($_)) : '' } qw(pc); +# my $header = _('Local RSS feeds and email alerts'); +# my $intro = _('FixMyStreet has a variety of RSS feeds and email alerts for local problems, including +# alerts for all problems within a particular ward or council, or all problems +# within a certain distance of a particular location.'); +# my $pc_label = _('To find out what local alerts we have for you, please enter your GB +# postcode or street name and area:'); +# my $form_action = Cobrand::url(Page::get_cobrand($q), '/alert', $q); +# my $cobrand_form_elements = Cobrand::form_elements($cobrand, 'alerts', $q); +# my $cobrand_extra_data = Cobrand::extra_data($cobrand, $q); +# my $submit_text = _('Go'); + +# my $out = $q->h1($header); +# $out .= $q->p($intro); +# $out .= $errors . qq(<form method="get" action="$form_action">); +# $out .= $q->p($pc_label, '<input type="text" name="pc" value="' . $input_h{pc} . '"> +# <input type="submit" value="' . $submit_text . '">'); +# $out .= $cobrand_form_elements; +# $out .= '</form>'; + +# my %vars = (error => $error, +# header => $header, +# intro => $intro, +# pc_label => $pc_label, +# form_action => $form_action, +# input_h => \%input_h, +# submit_text => $submit_text, +# cobrand_form_elements => $cobrand_form_elements, +# cobrand_extra_data => $cobrand_extra_data, +# url_home => Cobrand::url($cobrand, '/', $q)); + +# my $cobrand_page = Page::template_include('alert-front-page', $q, Page::template_root($q), %vars); +# $out = $cobrand_page if ($cobrand_page); + +# return $out if $q->referer() && $q->referer() =~ /fixmystreet\.com/; +# my $recent_photos = Cobrand::recent_photos($cobrand, 10); +# $out .= '<div id="alert_recent">' . $q->h2(_('Some photos of recent reports')) . $recent_photos . '</div>' if $recent_photos; - return $out; -} - -sub alert_rss { - my $q = shift; - my $feed = $q->param('feed'); - return alert_list($q, _('Please select the feed you want')) unless $feed; - my $cobrand = Page::get_cobrand($q); - my $base_url = Cobrand::base_url($cobrand); - my $extra_params = Cobrand::extra_params($cobrand, $q); - my $url; - if ($feed =~ /^area:(?:\d+:)+(.*)$/) { - (my $id = $1) =~ tr{:_}{/+}; - $url = $base_url . '/rss/area/' . $id; - $url .= "?" . $extra_params if ($extra_params); - print $q->redirect($url); - return; - } elsif ($feed =~ /^(?:council|ward):(?:\d+:)+(.*)$/) { - (my $id = $1) =~ tr{:_}{/+}; - $url = $base_url . '/rss/reports/' . $id; - $url .= "?" . $extra_params if ($extra_params); - print $q->redirect($url); - return; - } elsif ($feed =~ /^local:([\d\.-]+):([\d\.-]+)$/) { - $url = $base_url . '/rss/l/' . $1 . ',' . $2; - $url .= "?" . $extra_params if ($extra_params); - print $q->redirect($url); - return; - } else { - return alert_list($q, _('Illegal feed selection')); - } -} +# return $out; +# } + +#sub alert_rss { +# my $q = shift; +# my $feed = $q->param('feed'); +# return alert_list($q, _('Please select the feed you want')) unless $feed; +# my $cobrand = Page::get_cobrand($q); +# my $base_url = Cobrand::base_url($cobrand); +# my $extra_params = Cobrand::extra_params($cobrand, $q); +# my $url; +# if ($feed =~ /^area:(?:\d+:)+(.*)$/) { +# (my $id = $1) =~ tr{:_}{/+}; +# $url = $base_url . '/rss/area/' . $id; +# $url .= "?" . $extra_params if ($extra_params); +# print $q->redirect($url); +# return; +# } elsif ($feed =~ /^(?:council|ward):(?:\d+:)+(.*)$/) { +# (my $id = $1) =~ tr{:_}{/+}; +# $url = $base_url . '/rss/reports/' . $id; +# $url .= "?" . $extra_params if ($extra_params); +# print $q->redirect($url); +# return; +# } elsif ($feed =~ /^local:([\d\.-]+):([\d\.-]+)$/) { +# $url = $base_url . '/rss/l/' . $1 . ',' . $2; +# $url .= "?" . $extra_params if ($extra_params); +# print $q->redirect($url); +# return; +# } else { +# return alert_list($q, _('Illegal feed selection')); +# } +#} sub alert_updates_form { my ($q, @errors) = @_; @@ -562,49 +562,49 @@ sub alert_token { return $out; } -sub alert_do_subscribe { - my ($q, $email) = @_; - - my $type = $q->param('type'); - - my @errors; - push @errors, _('Please enter a valid email address') unless is_valid_email($email); - push @errors, _('Please select the type of alert you want') if $type && $type eq 'local' && !$q->param('feed'); - if (@errors) { - return alert_updates_form($q, @errors) if $type && $type eq 'updates'; - return alert_list($q, @errors) if $type && $type eq 'local'; - return alert_front_page($q, @errors); - } - - my $alert_id; - my $cobrand = Page::get_cobrand($q); - my $cobrand_data = Cobrand::extra_alert_data($cobrand, $q); - if ($type eq 'updates') { - my $id = $q->param('id'); - $alert_id = FixMyStreet::Alert::create($email, 'new_updates', $cobrand, $cobrand_data, $id); - } elsif ($type eq 'problems') { - $alert_id = FixMyStreet::Alert::create($email, 'new_problems', $cobrand, $cobrand_data); - } elsif ($type eq 'local') { - my $feed = $q->param('feed'); - if ($feed =~ /^area:(?:\d+:)?(\d+)/) { - $alert_id = FixMyStreet::Alert::create($email, 'area_problems', $cobrand, $cobrand_data, $1); - } elsif ($feed =~ /^council:(\d+)/) { - $alert_id = FixMyStreet::Alert::create($email, 'council_problems', $cobrand, $cobrand_data, $1, $1); - } elsif ($feed =~ /^ward:(\d+):(\d+)/) { - $alert_id = FixMyStreet::Alert::create($email, 'ward_problems', $cobrand, $cobrand_data, $1, $2); - } elsif ($feed =~ m{ \A local: ( [\+\-]? \d+ \.? \d* ) : ( [\+\-]? \d+ \.? \d* ) }xms ) { - my $lat = $1; - my $lon = $2; - $alert_id = FixMyStreet::Alert::create($email, 'local_problems', $cobrand, $cobrand_data, $lon, $lat); - } - } else { - throw FixMyStreet::Alert::Error('Invalid type'); - } - - my %h = (); - $h{url} = Page::base_url_with_lang($q, undef, 1) . '/A/' - . mySociety::AuthToken::store('alert', { id => $alert_id, type => 'subscribe', email => $email } ); - dbh()->commit(); - return Page::send_confirmation_email($q, $email, undef, 'alert', %h); -} +# sub alert_do_subscribe { +# my ($q, $email) = @_; + +# my $type = $q->param('type'); + +# my @errors; +# push @errors, _('Please enter a valid email address') unless is_valid_email($email); +# push @errors, _('Please select the type of alert you want') if $type && $type eq 'local' && !$q->param('feed'); +# if (@errors) { +# return alert_updates_form($q, @errors) if $type && $type eq 'updates'; +# return alert_list($q, @errors) if $type && $type eq 'local'; +# return alert_front_page($q, @errors); +# } + +# my $alert_id; +# my $cobrand = Page::get_cobrand($q); +# my $cobrand_data = Cobrand::extra_alert_data($cobrand, $q); +# if ($type eq 'updates') { +# my $id = $q->param('id'); +# $alert_id = FixMyStreet::Alert::create($email, 'new_updates', $cobrand, $cobrand_data, $id); +# } elsif ($type eq 'problems') { +# $alert_id = FixMyStreet::Alert::create($email, 'new_problems', $cobrand, $cobrand_data); +# } elsif ($type eq 'local') { +# my $feed = $q->param('feed'); +# if ($feed =~ /^area:(?:\d+:)?(\d+)/) { +# $alert_id = FixMyStreet::Alert::create($email, 'area_problems', $cobrand, $cobrand_data, $1); +# } elsif ($feed =~ /^council:(\d+)/) { +# $alert_id = FixMyStreet::Alert::create($email, 'council_problems', $cobrand, $cobrand_data, $1, $1); +# } elsif ($feed =~ /^ward:(\d+):(\d+)/) { +# $alert_id = FixMyStreet::Alert::create($email, 'ward_problems', $cobrand, $cobrand_data, $1, $2); +# } elsif ($feed =~ m{ \A local: ( [\+\-]? \d+ \.? \d* ) : ( [\+\-]? \d+ \.? \d* ) }xms ) { +# my $lat = $1; +# my $lon = $2; +# $alert_id = FixMyStreet::Alert::create($email, 'local_problems', $cobrand, $cobrand_data, $lon, $lat); +# } +# } else { +# throw FixMyStreet::Alert::Error('Invalid type'); +# } + +# my %h = (); +# $h{url} = Page::base_url_with_lang($q, undef, 1) . '/A/' +# . mySociety::AuthToken::store('alert', { id => $alert_id, type => 'subscribe', email => $email } ); +# dbh()->commit(); +# return Page::send_confirmation_email($q, $email, undef, 'alert', %h); +# } |