diff options
Diffstat (limited to 'templates/web/default')
27 files changed, 943 insertions, 0 deletions
diff --git a/templates/web/default/about/about.html b/templates/web/default/about/about.html new file mode 100644 index 000000000..7219f6320 --- /dev/null +++ b/templates/web/default/about/about.html @@ -0,0 +1,9 @@ +[% INCLUDE 'header.html', title => loc('About Us') %] + +<h1>[% loc('About us') %]</h1> + +<h2>FixMyStreet.com</h2> + +[%# FIXME - put in blurb here %] + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/auth/change_password.html b/templates/web/default/auth/change_password.html new file mode 100644 index 000000000..d4a7f107b --- /dev/null +++ b/templates/web/default/auth/change_password.html @@ -0,0 +1,41 @@ +[% INCLUDE 'header.html', title => loc('Change Password') %] + +<h1>[% loc('Change Password') %]</h1> + +[% IF password_changed %] + <p>Your password has been changed!</p> +[% END %] + + +<form action="[% c.uri_for('change_password') %]" method="post" name="change_password"> + + [% IF password_error; + + errors = { + missing => loc('Please enter a password'), + mismatch => loc('The passwords do not match'), + other => loc('Please check the passwords and try again'), + }; + + loc_password_error = errors.$password_error || errors.other; + END %] + + + <div> + <span class="error">[% loc_password_error %]</span><br> + <label for="new_password">[% loc('Password:') %]</label> + <input type="password" name="new_password" value="[% new_password | html %]"> + <br> + + <label for="confirm">[% loc('Again:') %]</label> + <input type="password" name="confirm" value="[% confirm | html %]"> + <br> + + <label for="login"> </label> + <input type="submit" value="[% loc('Change Password') %]"> + </div> + +</form> + + +[% INCLUDE 'footer.html' %] diff --git a/templates/web/default/auth/general.html b/templates/web/default/auth/general.html new file mode 100644 index 000000000..3d80a1049 --- /dev/null +++ b/templates/web/default/auth/general.html @@ -0,0 +1,53 @@ +[% INCLUDE 'header.html', title => loc('Login or create an account') %] + +<h1>[% loc('Login or create an account') %]</h1> + + +<form action="[% c.uri_for() %]" method="post" name="general_auth"> + + [% IF email_error; + + # other keys include fqdn, mxcheck if you'd like to write a custom error message + + errors = { + missing => loc('Please enter an email address'), + other => loc('Please check your email address is correct') + }; + + loc_email_error = errors.$email_error || errors.other; + END %] + + + <div> + + [% IF loc_email_error %] + <span class="error">[% loc_email_error %]</span><br> + [% ELSIF login_error %] + <span class="error">Email or password wrong - please try again.</span><br> + [% END %] + + <label for="email">[% loc('Email:') %]</label> + <input type="text" name="email" value="[% email || '' | html %]"> + <br> + + <label for="password">[% loc('Password:') %]</label> + <input type="password" name="password" value=""> + <br> + + <label for="remember_me"> </label> + <input type="checkbox" name="remember_me" value='1' [% 'checked="checked"' IF remember_me %]> + Remember me - do not use on a public computer + <br> + + <label for="login"> </label> + <input type="submit" name="login" value="[% loc('Log me in') %]"> + + <h3>I don't have an account, or I've forgotten my password...</h3> + <label for="email_login"> </label> + <input type="submit" name="email_login" value="[% loc('Email the details I need to the address I entered above') %]"> + </div> + +</form> + + +[% INCLUDE 'footer.html' %] diff --git a/templates/web/default/auth/logout.html b/templates/web/default/auth/logout.html new file mode 100644 index 000000000..9f3390f0a --- /dev/null +++ b/templates/web/default/auth/logout.html @@ -0,0 +1,8 @@ +[% INCLUDE 'header.html', title => loc('Logout') %] + +<h1>[% loc('You have been logged out') %]</h1> + +<p>Please feel free to <a href="[% c.uri_for('/auth/') %]">login again</a>.</p> + + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/auth/token.html b/templates/web/default/auth/token.html new file mode 100644 index 000000000..16dfbb11c --- /dev/null +++ b/templates/web/default/auth/token.html @@ -0,0 +1,25 @@ +[% INCLUDE 'header.html', title => loc('Confirm account') %] + +[% IF token_not_found %] + +<h1>[% loc('Error') %]</h1> + +<p>We have not been able to confirm your account - sorry. This may be because:</p> + +<ul> + <li>Link too old or already used</li> + <li>URL not copied correctly</li> + [%# FIXME - add more reasons here %] +</ul> + +[% ELSE %] + +<h1>[% loc('Please check you email') %]</h1> + +<p>We have sent you an email containing a link to confirm your account.</p> + +<p>If you do not receive the email in the next few minutes please check your spam folder.</p> + +[% END %] + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/common_header_tags.html b/templates/web/default/common_header_tags.html new file mode 100644 index 000000000..9b8dc8515 --- /dev/null +++ b/templates/web/default/common_header_tags.html @@ -0,0 +1,21 @@ +<meta http-equiv="content-type" content="text/html; charset=utf-8"> +<script type="text/javascript" src="/yui/utilities.js"></script> +<script type="text/javascript" src="/js.js"></script> + +[% map_js %] +[% extra_js_verbatim %] + +[% robots %] + +[% IF rss %] + <link rel="alternate" type="application/rss+xml" title="[% rss.0 %]" href="[% rss.1 %]"> +[% END %] +[% legacy_rss %] + +<title> + [% IF legacy_title %] + [% legacy_title %] + [% ELSE %] + [% title | html %] :: [% c.cobrand.site_title %] + [% END %] +</title> diff --git a/templates/web/default/debug_footer.html b/templates/web/default/debug_footer.html new file mode 100644 index 000000000..c19360132 --- /dev/null +++ b/templates/web/default/debug_footer.html @@ -0,0 +1,38 @@ +[% IF c.config.STAGING_SITE %] +<hr clear="both"> +<ul> + <li>cobrand.moniker: [% c.cobrand.moniker %]</li> + <li>additional_template_paths: [% additional_template_paths.join(', ') || '--empty--' %]</li> + <li>lang_code: [% lang_code %]</li> + <li>user.id: [% c.user.id || '--not logged in--' %]</li> +</ul> + +<style> + #overrides_form { + font-size: 80%; + } + #overrides_form label { + float: left; + text-align: right; + padding-right: 0.5em; + width: 12em; + } + +</style> + +<!-- Use a post so that we don't clutter up the url --> +<form action="" method="post" id="overrides_form" name="overrides_form"> + + <label for="_override_clear_all">Clear all overrides:</label> + <input type="checkbox" name="_override_clear_all" id="_override_clear_all" value="1"><br> + + [% FOREACH k IN ['cobrand_moniker', 'lang'] %] + <label for="override_[% k %]">[% k %]:</label> + <input type="text" name="_override_[% k %]" id="override_[% k %]" value="[% c.get_override(k)%]"><br> + [% END %] + + <label> </label><input type="submit" value="Change overrides"> +</form> + +[% END %] + diff --git a/templates/web/default/debug_header.html b/templates/web/default/debug_header.html new file mode 100644 index 000000000..247e55128 --- /dev/null +++ b/templates/web/default/debug_header.html @@ -0,0 +1,5 @@ +[% IF c.config.STAGING_SITE %] + <p class="error"> + [% loc("This is a developer site; things might break at any time, and the database will be periodically deleted.") %] + </p> +[% END %] diff --git a/templates/web/default/email_sent.html b/templates/web/default/email_sent.html new file mode 100644 index 000000000..bcfcf8617 --- /dev/null +++ b/templates/web/default/email_sent.html @@ -0,0 +1,34 @@ +[% INCLUDE 'header.html', title => loc('Create a report') %] + +[% + messages = { + problem => { + action => loc('your problem will not be posted'), + worry => loc("we'll hang on to your problem report while you're checking your email."), + }, + update => { + action => loc('your update will not be posted'), + worry => loc("we'll hang on to your update while you're checking your email."), + }, + alert => { + action => loc('your alert will not be activated'), + worry => loc("we'll hang on to your alert while you're checking your email."), + }, + tms => { + action => 'your expression of interest will not be registered', + worry => "we'll hang on to your expression of interest while you're checking your email.", + } + } +%] +<h1>Nearly Done! Now check your email...</h1> + +<p>The confirmation email <strong>may</strong> take a few minutes to arrive — <em>please</em> be patient.</p> + +<p>If you use web-based email or have 'junk mail' filters, you may wish to check your bulk/spam mail folders: sometimes, our messages are marked that way.</p> + +<p>You must now click the link in the email we've just sent you — if you do not, [% messages.$email_type.action %].</p> + +<p>(Don't worry — [% messages.$email_type.worry %])</p> + + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/errors/page_not_found.html b/templates/web/default/errors/page_not_found.html new file mode 100644 index 000000000..92ceb3106 --- /dev/null +++ b/templates/web/default/errors/page_not_found.html @@ -0,0 +1,7 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> +<html><head> +<title>404 Not Found</title> +</head><body> +<h1>Not Found</h1> +<p>The requested URL [% c.req.uri.path %] was not found on this server.</p> +</body></html> diff --git a/templates/web/default/faq/faq-en-gb.html b/templates/web/default/faq/faq-en-gb.html new file mode 100755 index 000000000..7fb1edb19 --- /dev/null +++ b/templates/web/default/faq/faq-en-gb.html @@ -0,0 +1,212 @@ +[% INCLUDE 'header.html', title => loc('Frequently Asked Questions') %] + +<h1>Frequently Asked Questions</h1> + <dl> + <dt>What is FixMyStreet?</dt> + <dd>FixMyStreet is a site to help people report, view, +or discuss local problems they’ve found to their local council by +simply locating them on a map. It launched in early February +2007.</dd> + <dt>What sort of problems should I report with FixMyStreet?</dt> + <dd>FixMyStreet is primarily for reporting things which are +<strong>broken or dirty or damaged or dumped, and need fixing, cleaning +or clearing</strong>, such as: + + <ul><li>Abandoned vehicles + <li>Dog Fouling + <li>Flyposting or graffiti + <li>Flytipping or litter + <li>Streetcleaning, such as broken glass in a cycle lane + <li>Unlit lamposts + <li>Potholes + </ul> + </dd> + + <dt>What isn’t FixMyStreet for?</dt> + <dd>FixMyStreet is not a way of getting in touch with your council for all + issues – please use FixMyStreet only for problems such as the above. We + often route problem reports via cleansing services or highways and so using + FixMyStreet for other matters may result in a delay in your report getting + to the right department. <strong>You will need to contact your council + directly for problems such as</strong>: + + <ul><li>Anti-social behaviour + <li>Any urgent or emergency problems + <li>Noise pollution or barking dogs + <li>Fires and smoke/smell pollution + <li>Missing wheelie bins or recycling boxes or missed rubbish collections + <li>Proposals for speed bumps/ CCTV/ pedestrian crossings/ new road layouts/ etc. + <li>Complaining about your neighbours + <li>Complaining about the council + <li>Joy riding, drug taking, animal cruelty, or other criminal activity + </ul> + <p>Councils often have direct hotlines for these sorts of issues.</p> + </dd> + + <dt>How do I use the site?</dt> + <dd>After entering a postcode or location, you are presented +with a map of that area. You can view problems already reported in that area, +or report ones of your own simply by clicking on the map at the location of +the problem.</dd> + <dt>How are the problems solved?</dt> + <dd>They are reported to the relevant council by email. The +council can then resolve the problem the way they normally would. +Alternatively, you can discuss the problem on the website with others, and +then together lobby the council to fix it, or fix it directly yourselves.</dd> + <dt>Is it free?</dt> + <dd>The site is free to use, yes. FixMyStreet is run +by a registered charity, though, so if you want to make a contribution, <a +href="https://secure.mysociety.org/donate/">please do</a>.</dd> + + <dt>Can I use FixMyStreet on my mobile?</dt> + <dd><ul> + <li><em>iPhone:</em> There are two apps for FixMyStreet, one written by us + in 2008 and another much more recently by a volunteer, Martin Stephenson. + Both are available for download on the App Store: + <a href="http://itunes.apple.com/gb/app/fixmystreet/id297456545">FixMyStreet</a>, + <a href="http://itunes.apple.com/gb/app/streetreport/id371891859">StreetReport</a>. + <li><em>Android:</em> A volunteer, Anna Powell-Smith, has written an app + available from the + <a href="https://market.android.com/details?id=com.android.fixmystreet">Android Market</a>. + <li><em>Nokia:</em> A volunteer, Thomas Forth, has written an app available from the + <a href="http://store.ovi.com/content/107557">Ovi Store</a>. + </ul> + <p>We also hope to make the website itself much more mobile friendly in the future.</p> + </dd> + + <dt>Why do you only cover the countries of Great Britain?</dt> + <dd>We would love to cover Northern Ireland, but as we were funded for + FixMyStreet by the Department for Constitutional Affairs (now the Ministry + of Justice), we were covered for Ordnance Survey data (but not OSNI data) + by the Pan-Governmental Agreement. The cost for these maps would be + prohibitively expensive for the small charity that we are – if you know of + any way we could get access to the Ordnance Survey for Northern Ireland's + maps so that we can add them to the site, that'd be great.</dd> + </dl> + + <h2>Practical Questions</h2> + <dl> + <dt>I’m from a council, where do you send the reports?</dt> + <dd>You can either leave a test report or <a href="/contact">contact us</a> +to find out where reports go at the moment. Also <a href="/contact">contact us</a> +to update the address or addresses we use.</dd> + <dt>Do you remove silly or illegal content?</dt> + <dd>FixMyStreet is not responsible for the content and accuracy +of material submitted by its users. We reserve the right to edit or remove any +problems or updates which we consider to be inappropriate upon being informed +by a user of the site.</dd> + <dt>Why does the site use kilometres for measurements?</dt> + <dd>Thanks for asking politely – we never quite understand why some of the rudest + emails we receive are on this topic. The British national + grid reference system, devised by Ordnance Survey (the British national + mapping agency) around the time of the second world war, uses eastings and + northings measured in metres and kilometres; the maps we use are from + Ordnance Survey and so this is what we use to display distances. + There you have it: not everything British is in miles!</dd> + + <dt>Why doesn’t dragging the map work on reporting-a-problem pages in Safari or Konqueror?</dt> + <dd>There’s a bug in these two browsers to do with setting images on form +submit buttons, which the map uses when reporting a problem. It’s fixed in the +latest nightly build of Safari, so will presumably be fixed in the next +release. Until then, I’ve sadly had to disable dragging to avoid people +dragging an empty square.</dd> + <dt>Why isn’t there a zoom button on the map?</dt> + <dd>There isn’t a zoom on the map as we want to keep things very local; + this might mean that you’ll need to pan around to figure out where the + problem is if you’re not familiar with the area. If you’re from the + council then the emailed version of the problem report will contain the + closest road to the pin on the map.</dd> + + <dt>This site is great – why aren’t you better publicised?</dt> + <dd>As a tiny charity we simply don’t have a publicity budget, and we + rely on word of mouth to advertise the site. We have a whole <a + href="posters/">array of posters, flyers and badges</a> if you’d like + to publicise us on the web or in your local area, and why not write to your + local paper to let them know about us?</dd> </dl> + + <h2><a name="privacy"></a>Privacy Questions</h2> + <dl> + <dt>Who gets to see my email address?</dt> + <dd>If you submit a problem, we pass on your details, and details +of the problem, to the council contact or contacts responsible for the +area where you located the problem. Other than the council, who obviously get your +email address, only people we authorise to view the FixMyStreet administration interface +will be able to see your email address and they will never use it for anything other than +to help administer FixMyStreet. Similarly with email addresses from updates. We will never give or sell your email address to anyone else, +unless we are obliged to by law. Your name will not be published anywhere unless you let us.</dd> + <dt>Will you send nasty, brutish spam to my email address?</dt> + <dd>Never. We will email you if someone leaves an update on a +problem you’ve reported, and send you a questionnaire email four weeks +after you submit a problem, asking for a status update; we’ll only ever +send you emails in relation to your problem.</dd> + <dt>What's this about the Guardian?</dt> + <dd>mySociety and the Guardian are working together to provide local versions of +FixMyStreet in Leeds, Edinburgh and Cardiff as part of the Guardian Local project. If you submit a problem or +provide an update in one of those cities, administrators from both mySociety and the Guardian will be able to see your +details. They will never use them for anything other than to help administer FixMyStreet, in accordance with this privacy +policy, and the Guardian's <a href="http://users.guardian.co.uk/help/article/0,,933905,00.html">privacy policy</a>. + </dd> + </dl> + <h2>Organisation Questions</h2> + <dl> + <dt>Who built FixMyStreet?</dt> + <dd>This site was built by <a href="http://www.mysociety.org/">mySociety</a>, in conjunction with the <a href="http://www.youngfoundation.org.uk/">Young Foundation</a>. +mySociety is the project of a registered charity which has grown out of the community of +volunteers who built sites like <a href="http://www.theyworkforyou.com/">TheyWorkForYou.com</a>. +mySociety’s primary mission is to build Internet projects which give people simple, tangible +benefits in the civic and community aspects of their lives. Our first project +was <a href="http://www.writetothem.com/">WriteToThem</a>, where you can write to any of your +elected representatives, for free. The charity is called UK Citizens Online Democracy and is charity number 1076346. mySociety +can be contacted by email at <a href="mailto:hello@mysociety.org">hello@mysociety.org</a>, +or by post at:<br> +mySociety<br> +PO Box 839<br> +Oxford<br> +OX1 9LG<br> +UK</dd> + <dt><img src="/i/moj.png" align="right" alt="Ministry of Justice" hspace="10">Who pays for it?</dt> + <dd>FixMyStreet was paid for via the Department for +Constitutional Affairs Innovations Fund.</dd> + <dt><a name="nfi"></a>Wasn’t this site called Neighbourhood Fix-It?</dt> + <dd>Yes, we changed the name mid June 2007. We decided +Neighbourhood Fix-It was a bit of a mouthful, hard to spell, and hard to publicise (does the URL have a dash in it or not?). The domain FixMyStreet became available, and everyone liked the name.</dd> + <dt>Do you need any help with the project?</dt> + <dd>Yes, we can use help in all sorts of ways, technical or +non-technical. Please see our <a +href="http://www.mysociety.org/helpus/">Get Involved page</a>.</dd> + <dt>I’d like a site like this for my own location/ where’s the "source code" to this site?</dt> + <dd> +<p>The software behind this site is open source, and available +to you mainly under the GNU Affero GPL software license. You can <a +href="http://github.com/mysociety/fixmystreet">download the +source code</a> and help us develop it. +You’re welcome to use it in your own projects, although you must also +make available the source code to any such projects.</p> +<p>Some Canadians at VisibleGovernment.ca wrote their own code for <a +href="http://www.fixmystreet.ca/">http://www.fixmystreet.ca/</a> which is +written in GeoDjango and available under an MIT licence at <a +href="http://github.com/visiblegovernment/django-fixmystreet/tree/master">github</a> +– it might well be more suitable for adapting than our code, and +definitely has better installation instructions at present. +</p> +</dd> + <dt>People build things, not organisations. Who <em>actually</em> built it?</dt> + <dd>Matthew Somerville and Francis Irving wrote the site, +Chris Lightfoot wrote the tileserver and map cutter, Richard Pope created +our pins, Deborah Kerr keeps things up-to-date and does user support, +Ayesha Garrett designed our posters, and Tom Steinberg managed it all. + +Thanks also to +<a href="http://www.ordnancesurvey.co.uk">Ordnance Survey</a> (for the maps, +UK postcodes, and UK addresses – data © Crown copyright, all +rights reserved, Ministry of Justice 100037819 2008), +Yahoo! for their BSD-licensed JavaScript libraries, the entire free software +community (this particular project was brought to you by Perl, PostgreSQL, +and the number 161.290) and <a +href="http://www.easynet.net/publicsector/">Easynet</a> (who kindly host all +our servers). + +Let us know if we’ve missed anyone.</dd> + </dl> + +[% INCLUDE 'footer.html' %] diff --git a/templates/web/default/footer.html b/templates/web/default/footer.html new file mode 100644 index 000000000..90c419734 --- /dev/null +++ b/templates/web/default/footer.html @@ -0,0 +1,24 @@ +</div> +</div> + +<h2 class="v">[% loc('Navigation') %]</h2> +<ul id="navigation"> +<li><a href="/report/new" >[% loc("Report a problem") %]</a></li> +<li><a href="/reports" >[% loc("All reports") %]</a></li> +<li><a href="[% c.uri_for('/alert', {pc => pc}) | html %]">[% loc("Local alerts") %]</a></li> +<li><a href="/faq" >[% loc("Help") %]</a></li> +<li><a href="/contact" >[% loc("Contact") %]</a></li> +</ul> + +[% loc('<a href="http://www.mysociety.org/"><img id="logo" width="133" height="26" src="/i/mysociety-dark.png" alt="View mySociety.org"><span id="logoie"></span></a>') %] + +<p id="footer"> + [% loc('Built by <a href="http://www.mysociety.org/">mySociety</a>, using some <a href="http://github.com/mysociety/fixmystreet">clever</a> <a href="https://secure.mysociety.org/cvstrac/dir?d=mysociety/services/TilMa">code</a>.') %] +</p> + +[% INCLUDE 'tracking_code.html' %] + +[% INCLUDE 'debug_footer.html' %] + +</body> +</html> diff --git a/templates/web/default/header.html b/templates/web/default/header.html new file mode 100644 index 000000000..491329c5d --- /dev/null +++ b/templates/web/default/header.html @@ -0,0 +1,21 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="[% lang_code %]"> + <head> + + [% INCLUDE 'common_header_tags.html' %] + + <style type="text/css">@import url("/css/core.css"); @import url("/css/main.css");</style> + <!--[if LT IE 7]> + <style type="text/css">@import url("/css/ie6.css");</style> + <![endif]--> + + </head> + <body> + + <div id="header"> + <a href="/">[% loc('Fix<span id="my">My</span>Street') %]</a> + </div> + + <div id="wrapper"><div id="mysociety"> + + [% INCLUDE 'debug_header.html' %] diff --git a/templates/web/default/my/my.html b/templates/web/default/my/my.html new file mode 100644 index 000000000..03b180a3a --- /dev/null +++ b/templates/web/default/my/my.html @@ -0,0 +1,18 @@ +[% INCLUDE 'header.html', title => loc('My Reports') %] + +<h1>[% loc('Your Reports') %]</h1> + +[% FOREACH p = c.user.problems %] + [% "<ul>" IF loop.first %] + + <li><a href="[% c.uri_for( '/report', p.id ) %]">[% p.title | html %]</a> ([% loc(p.state) %])</li> + + [% "</ul>" IF loop.last %] +[% END %] + + +[%# FIXME - put in blurb here %] + +<a href="/auth/change_password">change password</a> + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/report/new/all_councils_text.html b/templates/web/default/report/new/all_councils_text.html new file mode 100644 index 000000000..2cd90b213 --- /dev/null +++ b/templates/web/default/report/new/all_councils_text.html @@ -0,0 +1,8 @@ +<p> +[% + tprintf( + loc('All the information you provide here will be sent to <strong>%s</strong>. The subject and details of the problem will be public, plus your name if you give us permission.'), + all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' ) + ); +%] +</p> diff --git a/templates/web/default/report/new/fill_in_details.html b/templates/web/default/report/new/fill_in_details.html new file mode 100644 index 000000000..7cf24f619 --- /dev/null +++ b/templates/web/default/report/new/fill_in_details.html @@ -0,0 +1,152 @@ +[% INCLUDE 'header.html', title => loc('Reporting a problem') %] + +[% map_html %] + +<h1>[% loc('Reporting a problem') %]</h1> + +[% + IF report.used_map; + loc('You have located the problem at the point marked with a purple pin on the map. If this is not the correct location, simply click on the map again. '); + END; +%] + +[% IF area_ids_to_list.size == 0 %] + [% INCLUDE 'report/new/no_councils_text.html' %] +[% ELSIF area_ids_to_list.size == all_councils.size %] + [% INCLUDE 'report/new/all_councils_text.html' %] +[% ELSE %] + [% INCLUDE 'report/new/some_councils_text.html' %] +[% END %] + + +[% IF skipped %] + [% loc('Please fill in the form below with details of the problem, and describe the location as precisely as possible in the details box.') %] +[% ELSE %] + [% INCLUDE 'report/new/fill_in_details_text.html' %] +[% END %] + +[% FOREACH error IN errors %] + [% '<ul class="error">' IF loop.first %] + <li>[% error %]</li> + [% '</ul>' IF loop.last %] +[% END %] + +<div id="problem_form"> + +[% INCLUDE 'report/new/form_heading.html' %] + +<div id="fieldset"> + + + + + +[% IF field_errors.council %] + <div class='form-error'>[% field_errors.council %]</div> +[% END %] + +[% IF category_options.size %] + [% IF field_errors.category %] + <div class='form-error'>[% field_errors.category %]</div> + [% END %] + + <div class="form-field"> + <label for="category">[% category_label | html %]</label> + <select name="category"> + [%- FOREACH cat_op IN category_options %] + <option value="[% cat_op | html %]"[% ' selected' IF report.category == cat_op %]>[% cat_op | html %]</option> + [%- END %] + </select> + </div> +[% END %] + +[% IF field_errors.title %] + <div class='form-error'>[% field_errors.title %]</div> +[% END %] + +<div class="form-field"> + <label for="form_title">[% loc('Subject:') %]</label> + <input type="text" value="[% report.title | html %]" name="title" id="form_title" size="25"> +</div> + +[% IF field_errors.detail %] + <div class='form-error'>[% field_errors.detail %]</div> +[% END %] + +<div class="form-field"> + <label for="form_detail">[% loc('Details:') %]</label> + <textarea name="detail" id="form_detail" rows="7" cols="26">[% report.detail | html %]</textarea> +</div> + +[% IF field_errors.photo %] + <div class='form-error'>[% field_errors.photo %]</div> +[% END %] + +<div class='form-field'> +[% IF upload_fileid || report.photo %] + <p>[% loc('You have already attached a photo to this report, attaching another one will replace it.') %]</p> + [% IF upload_fileid %] + <input type="hidden" name="upload_fileid" value="[% upload_fileid %]" /> + [% END %] + [% IF report.photo %] + <img align="right" src="/photo?id=[% report.id %]" hspace="5"> + [% END %] +[% END %] + + <label for="form_photo">[% loc('Photo:') %]</label> + <input type="file" name="photo" id="form_photo" > +</div> + + +[% IF field_errors.name %] + <div class='form-error'>[% field_errors.name %]</div> +[% END %] + +<div class='form-field'> + <label for="form_name">[% loc('Name:') %]</label> + <input type="text" value="[% report.name | html %]" name="name" id="form_name" size="25"> +</div> + + +<div class="checkbox"> + + [%# if there is nothing in the name field then set check box as default on form %] + <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF !report.anonymous || !report.name %]> + + <!-- FIXME - empythomes should be 'Can we show your name on the site?'--> + <label for="form_may_show_name">[% loc('Can we show your name publicly?') %]</label> + <small>[% loc('(we never show your email address or phone number)') %]</small> +</div> + +[% IF field_errors.email %] + <div class='form-error'>[% field_errors.email %]</div> +[% END %] + +<div class="form-field"> + <label for="form_email">[% loc('Email:') %]</label> + <input type="text" value="[% report_user.email | html %]" name="email" id="form_email" size="25"> +</div> + +<div> + <label for="form_phone">[% loc('Phone:') %]</label> + <input type="text" value="[% report_user.phone | html %]" name="phone" id="form_phone" size="15"> + <small>[% loc('(optional)') %]</small> +</div> + +[% INCLUDE 'report/new/notes.html' %] + +[% IF partial_token %] + <input type="hidden" name="partial" value="[% partial_token.token %]"> +[% END %] + +<p id="problem_submit"> + <input type="hidden" name="submit_problem" value="1"> + <input type="submit" value="[% loc('Submit') %]"> +</p> + +</div> +</div> + +[% map_end %] + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/report/new/fill_in_details_text.html b/templates/web/default/report/new/fill_in_details_text.html new file mode 100644 index 000000000..44c60ed6e --- /dev/null +++ b/templates/web/default/report/new/fill_in_details_text.html @@ -0,0 +1,10 @@ +[% + IF details != 'none'; + loc('Please fill in details of the problem below. The council won\'t be able +to help unless you leave as much detail as you can, so please describe the exact location of +the problem (e.g. on a wall), what it is, how long it has been there, a description (and a +photo of the problem if you have one), etc.'); + ELSE; + loc('Please fill in details of the problem below.'); + END; +%] diff --git a/templates/web/default/report/new/form_heading.html b/templates/web/default/report/new/form_heading.html new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/templates/web/default/report/new/form_heading.html diff --git a/templates/web/default/report/new/no_councils_text.html b/templates/web/default/report/new/no_councils_text.html new file mode 100644 index 000000000..c3dade610 --- /dev/null +++ b/templates/web/default/report/new/no_councils_text.html @@ -0,0 +1,20 @@ + + +<p>[% + + nget( + 'We do not yet have details for the council that covers this location.', + 'We do not yet have details for the councils that cover this location.', + all_councils.size + ); + + loc("If you submit a problem here the subject and details of the problem will be public, but the problem will <strong>not</strong> be reported to the council."); + + tprintf( + loc("You can help us by finding a contact email address for local problems for %s and emailing it to us at <a href='mailto:%s'>%s</a>."), + all_council_names.join( loc(' or ') ), + c.cobrand.contact_email, + c.cobrand.contact_email + ); + +%]</p> diff --git a/templates/web/default/report/new/notes.html b/templates/web/default/report/new/notes.html new file mode 100644 index 000000000..44d1b5d83 --- /dev/null +++ b/templates/web/default/report/new/notes.html @@ -0,0 +1,15 @@ +<p>[% loc("Please note:") %]</p> + +<ul> + + <li>[% loc("We will only use your personal information in accordance with our <a href=\"/faq#privacy\">privacy policy.</a>") %]</li> + <li>[% loc("Please be polite, concise and to the point.") %]</li> + <li>[% loc("Please do not be abusive — abusing your council devalues the service for all users.") %]</li> + <li>[% loc("Writing your message entirely in block capitals makes it hard to read, as does a lack of punctuation.") %]</li> + <li>[% loc("Remember that FixMyStreet is primarily for reporting physical problems that can be fixed. If your problem is not appropriate for submission via this site remember that you can contact your council directly using their own website.") %]</li> + + [% IF c.config.COUNTRY == 'GB' %] + <li>[% loc("FixMyStreet and the Guardian are providing this service in partnership in <a href=\"/faq#privacy\">certain cities</a>. In those cities, both have access to any information submitted, including names and email addresses, and will use it only to ensure the smooth running of the service, in accordance with their privacy policies.") %]</li> + [% END %] + +</ul> diff --git a/templates/web/default/report/new/report_import.html b/templates/web/default/report/new/report_import.html new file mode 100644 index 000000000..7aa105afe --- /dev/null +++ b/templates/web/default/report/new/report_import.html @@ -0,0 +1,92 @@ +[% INCLUDE 'header.html', title => 'External import' %] + +<h1>External import</h1> + +<p>You may inject problem reports into FixMyStreet programatically using this +simple interface. Upon receipt, an email will be sent to the address given, +with a link the user must click in order to check the details of their report, +add any other information they wish, and then submit to the council. + +<p>This interface returns a plain text response; either <samp>SUCCESS</samp> if +the report has been successfully received, or if not, a list of errors, one per +line each starting with <samp>ERROR:</samp>. + +<p>You may submit the following information by POST to this URL +(i.e. <samp>[% c.uri_for('/import') %]</samp> ):</p> + +<style type="text/css" media="screen"> + input { + /* Hide the form elements - they are just here for simpler testing */ + display: none; + } +</style> + +<form method="POST" action="/import" enctype="multipart/form-data"> + +<dl> + <dt>service</dt> + <dd> + <em>Required</em>. + Name of application/service using this interface. + <input type="text" name="service" /> + </dd> + + <dt>id</dt> + <dd> + Unique ID of a user/device, for possible future use.<br> + <small>(e.g. used by Flickr import to know which accounts to look at)</small> + <input type="text" name="id" /> + </dd> + + <dt>subject</dt> + <dd> + <em>Required</em>. Subject of problem report. + <input type="text" name="subject" /> + </dd> + + <dt>detail</dt> + <dd> + Main body and details of problem report. + <input type="text" name="detail" /> + </dd> + + <dt>name</dt> + <dd> + <em>Required</em>. Name of problem reporter. + <input type="text" name="name" /> + </dd> + + <dt>email</dt> + <dd> + <em>Required</em>. Email address of problem reporter. + <input type="text" name="email" /> + </dd> + + <dt>phone</dt> + <dd> + Telephone number of problem reporter. + <input type="text" name="phone" /> + </dd> + + <dt>easting / northing</dt> + <dt>lat / lon</dt> + <dd> + Location of problem report. You can either supply eastings/northings, or WGS84 latitude/longitude. + <input type="text" name="easting" /> + <input type="text" name="northing" /> + <input type="text" name="lat" /> + <input type="text" name="lon" /> + </dd> + + <dt>photo</dt> + <dd> + Photo of problem (JPEG only). + <input type="file" name="photo" /> + </dd> +</dl> + +<input type="submit" /> + +</form> + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/report/new/report_new.html b/templates/web/default/report/new/report_new.html new file mode 100644 index 000000000..7a7b9bdaf --- /dev/null +++ b/templates/web/default/report/new/report_new.html @@ -0,0 +1,50 @@ +[% INCLUDE 'header.html', title => loc('Reporting a problem') %] + +<h1>[% loc('Reporting a problem') %]</h1> + +[% IF location_error %] + <div class="error">[% location_error %]</div> +[% END %] + +[% IF partial_token %] + + <p style="margin-top: 0; color: #cc0000;"> + <img align="right" src="/photo?id=[% report.id %]" hspace="5"> + [% loc("Thanks for uploading your photo. We now need to locate your problem, so please enter a nearby street name or postcode in the box below :") %] + </p> + + <input type="hidden" name="partial" value="[% partial_token.token %]"> + +[% ELSE %] + Please select where to create this report: +[% END %] + +<form action="/report/new" method="POST"> + + [% IF pc_error %] + <div class='form-error'>[% pc_error %]</div> + [% END %] + + <div class="form-field"> + <label for="pc">Location:</label> + <input type="text" name="pc" value="[% pc %]"> + </div> + + <p> + <input type="hidden" name="partial" value="[% partial_token.token %]"> + <input type="submit" value="[% loc('Search') %]"> + </p> + + +</form> + +[% IF possible_location_matches %] + <p>[% loc('We found more than one match for that location. We show up to ten matches, please try a different search if yours is not here.') %]</p> + <ul class="pc_alternatives"> + [% FOREACH match IN possible_location_matches %] + <li><a href="[% c.uri_for( '', { pc => match }) %]">[% match | html %]</a></li> + [% END %] + </ul> +[% END %] + +[% INCLUDE 'footer.html' %]
\ No newline at end of file diff --git a/templates/web/default/report/new/some_councils_text.html b/templates/web/default/report/new/some_councils_text.html new file mode 100644 index 000000000..7de7c3f45 --- /dev/null +++ b/templates/web/default/report/new/some_councils_text.html @@ -0,0 +1,26 @@ +<p> +[% loc('All the information you provide here will be sent to') %] + +[% FOREACH council IN all_council_names %] + [% loc( ' or ') IF ! loop.first %] + <strong>[% council %]</strong> + [%- '.' IF loop.last %] +[% END %] + +[% + loc('The subject and details of the problem will be public, plus your name if you give us permission.'); + + nget( + 'We do <strong>not</strong> yet have details for the other council that covers this location.', + 'We do <strong>not</strong> yet have details for the other councils that cover this location.', + missing_details_councils.size + ); + + tprintf( + loc("You can help us by finding a contact email address for local problems for %s and emailing it to us at <a href='mailto:%s'>%s</a>."), + missing_details_council_names.join( loc(' or ') ), + c.cobrand.contact_email, + c.cobrand.contact_email + ); +%] + diff --git a/templates/web/default/tokens/abuse.html b/templates/web/default/tokens/abuse.html new file mode 100644 index 000000000..d1b952621 --- /dev/null +++ b/templates/web/default/tokens/abuse.html @@ -0,0 +1,7 @@ +[% INCLUDE 'header.html', title => loc('Error') %] + +<h1>[% loc('Error') %]</h1> + +<p>[% loc('Sorry, there has been an error confirming your problem.') %]</p> + +[% INCLUDE 'footer.html' %] diff --git a/templates/web/default/tokens/confirm_problem.html b/templates/web/default/tokens/confirm_problem.html new file mode 100644 index 000000000..23d5f52ee --- /dev/null +++ b/templates/web/default/tokens/confirm_problem.html @@ -0,0 +1,22 @@ +[% INCLUDE 'header.html', title => loc('Confirmation') %] + +<h1>[% loc('Confirmation') %]</h1> + +<p class="confirmed"> +[% + loc('You have successfully confirmed your problem'); + + IF problem.council; + loc(' and <strong>we will now send it to the council</strong>'); + END; + + tprintf( + loc( '. You can <a href="%s">view the problem on this site</a>.' ), + c.cobrand.url( '/report/' _ problem.id ) + ); +%] +</p> + +[% display_crossell_advert( problem.email, problem.name ) %] + +[% INCLUDE 'footer.html' %] diff --git a/templates/web/default/tokens/error.html b/templates/web/default/tokens/error.html new file mode 100644 index 000000000..76e22c119 --- /dev/null +++ b/templates/web/default/tokens/error.html @@ -0,0 +1,9 @@ +[% INCLUDE 'header.html', title => loc('Error') %] + +<h1>[% loc('Error') %]</h1> + +[% contact_url = c.cobrand.url('/contact'); %] + +<p>[% tprintf( loc('Thank you for trying to confirm your update or problem. We seem to have an error ourselves though, so <a href="%s">please let us know what went on</a> and we\'ll look into it.'), contact_url ) %]</p> + +[% INCLUDE 'footer.html' %] diff --git a/templates/web/default/tracking_code.html b/templates/web/default/tracking_code.html new file mode 100644 index 000000000..e5fc13793 --- /dev/null +++ b/templates/web/default/tracking_code.html @@ -0,0 +1,16 @@ +[% IF c.config.BASE_URL == "http://www.fixmystreet.com" %] +<!-- Piwik --> +<script type="text/javascript"> +var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.mysociety.org/" : "http://piwik.mysociety.org/"); +document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); +</script><script type="text/javascript"> +try { +var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 8); +piwikTracker.trackPageView(); +piwikTracker.enableLinkTracking(); +} catch( err ) {} +</script><noscript><p><img src="http://piwik.mysociety.org/piwik.php?idsite=8" style="border:0" alt=""/></p></noscript> +<!-- End Piwik Tag --> +[% ELSE %] +<!-- Tracking code not inserted as "[% c.config.BASE_URL %]" not "http://www.fixmystreet.com" --> +[% END %] |