aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/email/default/submit.txt2
-rw-r--r--templates/email/fixmystreet/submit-oxfordshire.txt2
-rw-r--r--templates/email/fixmystreet/submit.txt2
-rw-r--r--templates/web/arreglamibarrio/about/faq-es.html (renamed from templates/web/arreglamibarrio/faq/faq-es.html)0
-rwxr-xr-xtemplates/web/barnet/about/faq-en-gb.html (renamed from templates/web/barnet/faq/faq-en-gb.html)0
-rwxr-xr-xtemplates/web/base/about/_sidebar.html15
-rwxr-xr-xtemplates/web/base/about/faq-en-gb.html (renamed from templates/web/base/faq/faq-en-gb.html)10
-rwxr-xr-xtemplates/web/base/about/iphone.html (renamed from templates/web/base/static/iphone.html)0
-rwxr-xr-xtemplates/web/base/about/privacy.html (renamed from templates/web/base/static/privacy.html)10
-rw-r--r--templates/web/base/admin/body-form.html2
-rw-r--r--templates/web/base/admin/index.html9
-rw-r--r--templates/web/base/admin/report_edit.html32
-rw-r--r--templates/web/base/admin/update_edit.html28
-rw-r--r--templates/web/base/alert/index.html20
-rw-r--r--templates/web/base/alert/list.html30
-rw-r--r--templates/web/base/auth/general.html86
-rw-r--r--templates/web/base/common_header_tags.html1
-rw-r--r--templates/web/base/contact/blurb.html14
-rw-r--r--templates/web/base/contact/index.html166
-rwxr-xr-xtemplates/web/base/errors/generic.html9
-rw-r--r--templates/web/base/errors/page_error_404_not_found.html20
-rw-r--r--templates/web/base/front/stats.html17
-rw-r--r--templates/web/base/js/translation_strings.html5
-rw-r--r--templates/web/base/js/validation_rules.html4
-rw-r--r--templates/web/base/maps/google-ol.html4
-rw-r--r--templates/web/base/my/my.html20
-rw-r--r--templates/web/base/open311/index.html10
-rw-r--r--templates/web/base/questionnaire/index.html29
-rw-r--r--templates/web/base/report/_item.html6
-rw-r--r--templates/web/base/report/banner.html16
-rw-r--r--templates/web/base/report/display.html66
-rw-r--r--templates/web/base/report/display_tools.html (renamed from templates/web/fixmystreet/report/display.html)29
-rw-r--r--templates/web/base/report/new/councils_text_none.html4
-rw-r--r--templates/web/base/report/new/fill_in_details.html14
-rw-r--r--templates/web/base/report/new/fill_in_details_form.html206
-rw-r--r--templates/web/base/report/new/form_report.html65
-rw-r--r--templates/web/base/report/new/form_user_loggedin.html (renamed from templates/web/fixmystreet/report/new/form_user_loggedin.html)2
-rw-r--r--templates/web/base/report/new/form_user_loggedout.html25
-rw-r--r--templates/web/base/report/new/form_user_loggedout_by_email.html41
-rw-r--r--templates/web/base/report/new/form_user_loggedout_email.html9
-rw-r--r--templates/web/base/report/new/form_user_loggedout_password.html24
-rw-r--r--templates/web/base/report/new/login_success_form.html18
-rw-r--r--templates/web/base/report/new/oauth_email_form.html26
-rw-r--r--templates/web/base/report/new/sidebar.html (renamed from templates/web/fixmystreet/report/new/sidebar.html)0
-rw-r--r--templates/web/base/report/photo.html24
-rw-r--r--templates/web/base/report/public_label.html (renamed from templates/web/fixmystreet/report/public_label.html)0
-rw-r--r--templates/web/base/report/update-form.html188
-rw-r--r--templates/web/base/report/update.html86
-rw-r--r--templates/web/base/report/update/form_name.html22
-rw-r--r--templates/web/base/report/update/form_update.html58
-rw-r--r--templates/web/base/report/update/form_user_loggedout.html24
-rw-r--r--templates/web/base/report/update/form_user_loggedout_by_email.html17
-rw-r--r--templates/web/base/report/update/form_user_loggedout_email.html9
-rw-r--r--templates/web/base/report/update/form_user_loggedout_password.html23
-rw-r--r--templates/web/base/report/updates-sidebar-notes.html4
-rw-r--r--templates/web/base/static/about-en-gb.html9
-rw-r--r--templates/web/base/status/index.html9
-rw-r--r--templates/web/base/status/stats.html28
-rw-r--r--templates/web/base/tokens/error.html12
-rw-r--r--templates/web/base/user/_anonymity.html11
-rwxr-xr-xtemplates/web/bromley/about/faq-en-gb.html (renamed from templates/web/bromley/faq/faq-en-gb.html)0
-rw-r--r--templates/web/bromley/report/_item.html6
-rw-r--r--templates/web/bromley/report/banner.html15
-rw-r--r--templates/web/bromley/report/display.html38
-rw-r--r--templates/web/bromley/report/new/fill_in_details_form.html48
-rwxr-xr-xtemplates/web/eastsussex/about/faq-en-gb.html (renamed from templates/web/eastsussex/faq/faq-en-gb.html)0
-rw-r--r--templates/web/eastsussex/report/new/after_name.html4
-rw-r--r--templates/web/eastsussex/report/update-form.html42
-rw-r--r--templates/web/emptyhomes/about/about-cy.html (renamed from templates/web/emptyhomes/static/about-cy.html)0
-rw-r--r--templates/web/emptyhomes/about/about-en-gb.html (renamed from templates/web/emptyhomes/static/about-en-gb.html)0
-rw-r--r--templates/web/emptyhomes/about/faq-cy.html (renamed from templates/web/emptyhomes/faq/faq-cy.html)0
-rwxr-xr-xtemplates/web/emptyhomes/about/faq-en-gb.html (renamed from templates/web/emptyhomes/faq/faq-en-gb.html)0
-rw-r--r--templates/web/emptyhomes/front/stats.html3
-rw-r--r--templates/web/emptyhomes/index.html6
-rw-r--r--templates/web/fiksgatami/about/faq-nb.html (renamed from templates/web/fiksgatami/faq/faq-nb.html)0
-rw-r--r--templates/web/fiksgatami/about/faq-nn.html (renamed from templates/web/fiksgatami/nn/faq/faq-nn.html)0
-rwxr-xr-xtemplates/web/fixamingata/about/council.html (renamed from templates/web/fixamingata/static/council.html)0
-rwxr-xr-xtemplates/web/fixamingata/about/faq-sv.html (renamed from templates/web/fixamingata/faq/faq-sv.html)0
-rw-r--r--templates/web/fixamingata/about/fun.html (renamed from templates/web/fixamingata/static/fun.html)0
-rwxr-xr-xtemplates/web/fixamingata/about/privacy.html (renamed from templates/web/fixamingata/static/privacy.html)0
-rw-r--r--templates/web/fixamingata/report/updates-sidebar-notes.html1
-rw-r--r--templates/web/fixmindelo/about/faq-pt-cv.html (renamed from templates/web/fixmindelo/faq/faq-pt-cv.html)0
-rw-r--r--templates/web/fixmindelo/about/privacy.html (renamed from templates/web/fixmindelo/static/privacy.html)0
-rw-r--r--templates/web/fixmybarangay/about/faq-en-gb.html (renamed from templates/web/fixmybarangay/faq/faq-en-gb.html)0
-rw-r--r--templates/web/fixmybarangay/alert/index.html6
-rw-r--r--templates/web/fixmystreet-uk-councils/about/privacy.html (renamed from templates/web/fixmystreet-uk-councils/static/privacy.html)0
-rw-r--r--templates/web/fixmystreet.com/about/_sidebar.html17
-rw-r--r--templates/web/fixmystreet.com/about/council.html (renamed from templates/web/fixmystreet.com/static/council.html)3
-rwxr-xr-xtemplates/web/fixmystreet.com/about/faq-en-gb.html (renamed from templates/web/fixmystreet.com/faq/faq-en-gb.html)28
-rwxr-xr-xtemplates/web/fixmystreet.com/about/house-rules.html61
-rw-r--r--templates/web/fixmystreet.com/about/posters.html (renamed from templates/web/fixmystreet.com/static/posters.html)0
-rwxr-xr-xtemplates/web/fixmystreet.com/about/privacy.html (renamed from templates/web/fixmystreet.com/static/privacy.html)10
-rwxr-xr-xtemplates/web/fixmystreet.com/around/_report_banner.html10
-rw-r--r--templates/web/fixmystreet.com/around/intro.html9
-rw-r--r--templates/web/fixmystreet.com/front/international_banner.html8
-rw-r--r--templates/web/fixmystreet.com/header_extra.html16
-rw-r--r--templates/web/fixmystreet.com/next_steps.html5
-rw-r--r--templates/web/fixmystreet.com/report/banner.html28
-rw-r--r--templates/web/fixmystreet.com/report/new/after_photo.html10
-rw-r--r--templates/web/fixmystreet.com/report/new/extra_name.html42
-rw-r--r--templates/web/fixmystreet.com/report/new/unresponsive_body.html2
-rw-r--r--templates/web/fixmystreet.com/report/updates-sidebar-notes.html6
-rwxr-xr-xtemplates/web/fixmystreet.com/reports/_extras.html3
-rw-r--r--templates/web/fixmystreet.com/tracking_code.html19
-rw-r--r--templates/web/fixmystreet/about/fun.html (renamed from templates/web/fixmystreet/static/fun.html)0
-rw-r--r--templates/web/fixmystreet/contact/blurb.html15
-rw-r--r--templates/web/fixmystreet/contact/index.html126
-rw-r--r--templates/web/fixmystreet/report/banner.html21
-rw-r--r--templates/web/fixmystreet/report/new/fill_in_details_form.html101
-rw-r--r--templates/web/fixmystreet/report/new/form_user_loggedout.html79
-rw-r--r--templates/web/fixmystreet/report/update-form.html152
-rw-r--r--templates/web/fixmystreet/report/update.html70
-rw-r--r--templates/web/fixmystreet/report/updates-sidebar-notes.html7
-rw-r--r--templates/web/greenwich/about/faq-en-gb.html (renamed from templates/web/greenwich/faq/faq-en-gb.html)0
-rwxr-xr-xtemplates/web/harrogate/about/faq-en-gb.html (renamed from templates/web/harrogate/faq/faq-en-gb.html)0
-rwxr-xr-xtemplates/web/harrogate/about/privacy.html (renamed from templates/web/harrogate/static/privacy.html)0
-rwxr-xr-xtemplates/web/hart/about/faq-en-gb.html (renamed from templates/web/hart/faq/faq-en-gb.html)0
-rwxr-xr-xtemplates/web/oxfordshire/about/faq-en-gb.html (renamed from templates/web/oxfordshire/faq/faq-en-gb.html)0
-rw-r--r--templates/web/oxfordshire/report/new/after_photo.html3
-rw-r--r--templates/web/stevenage/about/faq-en-gb.html (renamed from templates/web/stevenage/faq/faq-en-gb.html)0
-rwxr-xr-xtemplates/web/warwickshire/about/faq-en-gb.html (renamed from templates/web/warwickshire/faq/faq-en-gb.html)0
-rw-r--r--templates/web/zerotb/about/faq-en-gb.html (renamed from templates/web/zerotb/faq/faq-en-gb.html)0
-rw-r--r--templates/web/zurich/about/faq-de-ch.html (renamed from templates/web/zurich/faq/faq-de-ch.html)0
-rw-r--r--templates/web/zurich/admin/index.html6
-rw-r--r--templates/web/zurich/admin/problem_row.html4
-rw-r--r--templates/web/zurich/admin/report_edit-sdm.html6
-rw-r--r--templates/web/zurich/admin/report_edit.html6
-rw-r--r--templates/web/zurich/admin/update_edit.html4
-rw-r--r--templates/web/zurich/auth/token.html25
-rw-r--r--templates/web/zurich/email_sent.html11
-rw-r--r--templates/web/zurich/report/_item.html6
-rw-r--r--templates/web/zurich/report/new/fill_in_details_form.html46
132 files changed, 1270 insertions, 1486 deletions
diff --git a/templates/email/default/submit.txt b/templates/email/default/submit.txt
index 0ab29e412..52d52669b 100644
--- a/templates/email/default/submit.txt
+++ b/templates/email/default/submit.txt
@@ -25,6 +25,8 @@ Details: <?=$values['detail']?>
Longitude: <?=$values['longitude']?>
+View OpenStreetMap of this location: <?=$values['osm_url']?>
+
<?=$values['closest_address']?>----------
Replies to this email will go to the user who submitted the problem.
diff --git a/templates/email/fixmystreet/submit-oxfordshire.txt b/templates/email/fixmystreet/submit-oxfordshire.txt
index 23a8504ee..9e5efb608 100644
--- a/templates/email/fixmystreet/submit-oxfordshire.txt
+++ b/templates/email/fixmystreet/submit-oxfordshire.txt
@@ -25,6 +25,8 @@ Details: <?=$values['detail']?>
Longitude: <?=$values['longitude']?>
+View OpenStreetMap of this location: <?=$values['osm_url']?>
+
<?=$values['closest_address']?>----------
Replies to this email will go to the user who submitted the problem.
diff --git a/templates/email/fixmystreet/submit.txt b/templates/email/fixmystreet/submit.txt
index 315411fb4..7abed7b50 100644
--- a/templates/email/fixmystreet/submit.txt
+++ b/templates/email/fixmystreet/submit.txt
@@ -25,6 +25,8 @@ Details: <?=$values['detail']?>
Longitude: <?=$values['longitude']?>
+View OpenStreetMap of this location: <?=$values['osm_url']?>
+
<?=$values['closest_address']?>----------
Replies to this email will go to the user who submitted the problem.
diff --git a/templates/web/arreglamibarrio/faq/faq-es.html b/templates/web/arreglamibarrio/about/faq-es.html
index b9ab9842e..b9ab9842e 100644
--- a/templates/web/arreglamibarrio/faq/faq-es.html
+++ b/templates/web/arreglamibarrio/about/faq-es.html
diff --git a/templates/web/barnet/faq/faq-en-gb.html b/templates/web/barnet/about/faq-en-gb.html
index bc381a509..bc381a509 100755
--- a/templates/web/barnet/faq/faq-en-gb.html
+++ b/templates/web/barnet/about/faq-en-gb.html
diff --git a/templates/web/base/about/_sidebar.html b/templates/web/base/about/_sidebar.html
new file mode 100755
index 000000000..ae32dfb51
--- /dev/null
+++ b/templates/web/base/about/_sidebar.html
@@ -0,0 +1,15 @@
+<div class="sticky-sidebar">
+ <aside>
+ <ul class="plain-list">
+ <li>[% INCLUDE link h='/faq' t=loc('Frequently Asked Questions') %]</li>
+ <li>[% INCLUDE link h='/about/privacy' t=loc('Privacy and cookies') %]</li>
+ <li>[% INCLUDE link h='/contact' t=tprintf(loc("Contact %s", "%s is the site name"), site_name) %]</li>
+ </ul>
+ </aside>
+</div>
+
+[% BLOCK link -%]
+<[% IF c.req.uri.path == h %]strong[% ELSE %]a href="[% h %]"[% END %]>
+[%- t -%]
+</[% IF c.req.uri.path == h %]strong[% ELSE %]a[% END %]>
+[%- END %]
diff --git a/templates/web/base/faq/faq-en-gb.html b/templates/web/base/about/faq-en-gb.html
index b60f1102a..fc087a0e6 100755
--- a/templates/web/base/faq/faq-en-gb.html
+++ b/templates/web/base/about/faq-en-gb.html
@@ -1,14 +1,6 @@
[% INCLUDE 'header.html', title = loc('Frequently Asked Questions'), bodyclass = 'twothirdswidthpage' %]
-<div class="sticky-sidebar">
- <aside>
- <ul class="plain-list">
- <li><strong>[% loc('Frequently Asked Questions') %]</strong></li>
- <li><a href="/privacy">[% loc('Privacy and cookies') %]</a></li>
- <li><a href="/contact">[% tprintf(loc("Contact %s", "%s is the site name"), site_name) %]</a></li>
- </ul>
- </aside>
-</div>
+[% INCLUDE 'about/_sidebar.html' %]
<h1><a name="faq"></a>[% loc('Frequently Asked Questions') %]</h1>
diff --git a/templates/web/base/static/iphone.html b/templates/web/base/about/iphone.html
index 8f7992713..8f7992713 100755
--- a/templates/web/base/static/iphone.html
+++ b/templates/web/base/about/iphone.html
diff --git a/templates/web/base/static/privacy.html b/templates/web/base/about/privacy.html
index 11ab65311..a794cfadf 100755
--- a/templates/web/base/static/privacy.html
+++ b/templates/web/base/about/privacy.html
@@ -2,15 +2,7 @@
title = loc('Privacy and cookies'),
bodyclass = 'twothirdswidthpage' %]
-<div class="sticky-sidebar">
- <aside>
- <ul class="plain-list">
- <li><a href="/faq">[% loc('Frequently Asked Questions') %]</a></li>
- <li><a href="/privacy">[% loc('Privacy and cookies') %]</a></li>
- <li><a href="/contact">[% tprintf(loc("Contact %s", "%s is the site name"), site_name) %]</a></li>
- </ul>
- </aside>
-</div>
+[% INCLUDE 'about/_sidebar.html' %]
<h1>Privacy, cookies, and third party services</h1>
diff --git a/templates/web/base/admin/body-form.html b/templates/web/base/admin/body-form.html
index 6b103a7cf..7acfbfdd5 100644
--- a/templates/web/base/admin/body-form.html
+++ b/templates/web/base/admin/body-form.html
@@ -212,7 +212,7 @@
</p>
</div>
<p>
- <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF conf.send_extended_statuses %]>
+ <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF body.send_extended_statuses %]>
<label for="send_extended_statuses" class="inline">Send extended Open311 statuses with service request updates</label>
</p>
</div>
diff --git a/templates/web/base/admin/index.html b/templates/web/base/admin/index.html
index dde6523a3..4c4a7b388 100644
--- a/templates/web/base/admin/index.html
+++ b/templates/web/base/admin/index.html
@@ -28,14 +28,7 @@ and to receive notices of updates.
[%- END %]
[% END -%]
- <ul>
- <li>[% tprintf( loc('<strong>%d</strong> live problems'), total_problems_live ) %];
- [% tprintf( loc('from %d different users'), total_problems_users ) %]</li>
- <li>[% tprintf( loc('%d live updates'), comments.confirmed || 0 ) %]</li>
- <li>[% tprintf( loc('%d confirmed alerts, %d unconfirmed'), alerts.1, alerts.0) %]</li>
- <li>[% tprintf( loc('%d questionnaires sent &ndash; %d answered (%s%%)'), questionnaires.total, questionnaires.1, questionnaires_pc) %]</li>
- <li>[% tprintf( loc('%d council contacts &ndash; %d confirmed, %d unconfirmed'), contacts.total, contacts.1, contacts.0) %]</li>
- </ul>
+[% INCLUDE 'status/stats.html' admin_include_users=1 %]
[% IF c.cobrand.admin_show_creation_graph -%]
<p>
diff --git a/templates/web/base/admin/report_edit.html b/templates/web/base/admin/report_edit.html
index d04a1a82b..c0cdead84 100644
--- a/templates/web/base/admin/report_edit.html
+++ b/templates/web/base/admin/report_edit.html
@@ -77,20 +77,26 @@ class="admin-offsite-link">[% problem.latitude %], [% problem.longitude %]</a>
<li><label class="inline" for="non_public">[% loc('Private') %]:</label> <input type="checkbox" name="non_public"[% ' checked' IF problem.non_public %]></li>
[% IF problem.photo %]
-[% photo = problem.get_photo_params %]
-<li><img alt="Photo of this report" height="[% photo.height %]" width="[% photo.width %]" src="[% c.cobrand.base_url %]
- [%~ IF problem.photo.length == 40 ~%]
- /photo/[% problem.photo %].temp.jpeg
- [%~ ELSE ~%]
- [% photo.url %]
- [%~ END %]">
-<br>
-<input type="submit" name="rotate_photo" value="[% loc('Rotate Left') %]">
-<input type="submit" name="rotate_photo" value="[% loc('Rotate Right') %]">
-<br>
-<input type="checkbox" id="remove_photo" name="remove_photo" value="1">
-<label class="inline" for="remove_photo">[% loc("Remove photo (can't be undone!)") %]</label></li>
+<li>
+<ul>
+ [% FOR photo IN problem.photos %]
+ <li>
+ <div class="update-img">
+ <a href="[% c.cobrand.base_url %][% photo.url_temp_full %]" rel="fancy">
+ <img alt="Photo of this report" src="[% c.cobrand.base_url %][% photo.url_temp %]">
+ <span>zoom</span>
+ </a>
+ </div>
+ <input type="submit" name="rotate_photo_[% loop.index %]" value="[% loc('Rotate Left') %]">
+ <input type="submit" name="rotate_photo_[% loop.index %]" value="[% loc('Rotate Right') %]">
+ <input type="checkbox" id="remove_photo_[% loop.index %]" name="remove_photo_[% loop.index %]" value="1">
+ <label class="inline" for="remove_photo_[% loop.index %]">[% loc("Remove photo (can't be undone!)") %]</label></li>
+ </li>
+ [% END %]
+</ul>
+</li>
[% END %]
+
</ul>
<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></form>
diff --git a/templates/web/base/admin/update_edit.html b/templates/web/base/admin/update_edit.html
index 5ffce8bc4..a956bb2cb 100644
--- a/templates/web/base/admin/update_edit.html
+++ b/templates/web/base/admin/update_edit.html
@@ -51,16 +51,26 @@
<li>[% loc('Created:') %] [% PROCESS format_time time=update.created %]</li>
[% IF update.photo %]
-[% photo = update.get_photo_params %]
-<li><img alt="Photo of this update" height="[% photo.height %]" width="[% photo.width %]" src="[% c.cobrand.base_url %]
- [%~ IF update.photo.length == 40 ~%]
- /photo/[% update.photo %].temp.jpeg
- [%~ ELSE ~%]
- [% photo.url %]
- [%~ END ~%]">
-<input type="checkbox" id="remove_photo" name="remove_photo" value="1">
-<label for="remove_photo" class="inline">[% loc("Remove photo (can't be undone!)") %]</label></li>
+<li>
+<ul>
+ [% FOR photo IN update.photos %]
+ <li>
+ <div class="update-img">
+ <a href="[% c.cobrand.base_url %][% photo.url_temp_full %]" rel="fancy">
+ <img alt="Photo of this update" src="[% c.cobrand.base_url %][% photo.url_temp %]">
+ <span>zoom</span>
+ </a>
+ </div>
+ <input type="submit" name="rotate_photo_[% loop.index %]" value="[% loc('Rotate Left') %]">
+ <input type="submit" name="rotate_photo_[% loop.index %]" value="[% loc('Rotate Right') %]">
+ <input type="checkbox" id="remove_photo_[% loop.index %]" name="remove_photo_[% loop.index %]" value="1">
+ <label class="inline" for="remove_photo_[% loop.index %]">[% loc("Remove photo (can't be undone!)") %]</label></li>
+ </li>
+ [% END %]
+</ul>
+</li>
[% END %]
+
</ul>
<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></form>
diff --git a/templates/web/base/alert/index.html b/templates/web/base/alert/index.html
index 2b12182df..4965a1103 100644
--- a/templates/web/base/alert/index.html
+++ b/templates/web/base/alert/index.html
@@ -1,4 +1,4 @@
-[% INCLUDE 'header.html', title = loc('Local RSS feeds and email alerts'), bodyclass = 'twothirdswidthpage' %]
+[% INCLUDE 'header.html', title = loc('Local RSS feeds and email alerts'), bodyclass = 'fullwidthpage' %]
<h1>[% loc('Local RSS feeds and email alerts') %]</h1>
@@ -37,16 +37,14 @@ within a certain distance of a particular location.', "%s is the site name"), si
</form>
[% IF photos.size %]
-<div id="alert_recent">
- <aside>
- <h2>[% loc('Some photos of recent reports') %]</h2>
- [% FOREACH p IN photos;
- photo = p.get_photo_params;
- %]
- <a href="/report/[% p.id %]"><img border="0" height="100"
- src="[% photo.url_tn %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a>
- [% END %]
- </aside>
+<h2>[% loc('Some photos of recent reports') %]</h2>
+<div class="alerts__nearby-activity__photos">
+ [% FOREACH p IN photos %]
+ <a href="/report/[% p.id %]">
+ <img border="0" height="100" src="[% p.photos.first.url_tn %]"
+ alt="[% p.title | html %]" title="[% p.title | html %]">
+ </a>
+ [% END %]
</div>
[% END %]
diff --git a/templates/web/base/alert/list.html b/templates/web/base/alert/list.html
index 7b262f9e7..385cd7d32 100644
--- a/templates/web/base/alert/list.html
+++ b/templates/web/base/alert/list.html
@@ -6,7 +6,7 @@
END;
%]
-[% INCLUDE 'header.html', title = title, bodyclass = 'twothirdswidthpage' %]
+[% INCLUDE 'header.html', title = title, bodyclass = 'fullwidthpage' %]
[% IF pretty_pc %]
[%
@@ -18,21 +18,21 @@
<h1>[% title %]</h1>
-<form id="alerts" name="alerts" method="post" action="/alert/subscribe">
-
- [% IF photos.size %]
- <div id="alert_photos">
- <aside>
- <h2>[% loc('Photos of recent nearby reports') %]</h2>
- [% FOREACH p IN photos;
- photo = p.get_photo_params;
- %]
- <a href="/report/[% p.id %]"><img border="0" height="100"
- src="[% photo.url_tn %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a>
- [% END %]
- </aside>
+[% IF photos.size %]
+<div class="alerts__nearby-activity">
+ <h2>[% loc('Photos of recent nearby reports') %]</h2>
+ <div class="alerts__nearby-activity__photos">
+ [% FOREACH p IN photos %]
+ <a href="/report/[% p.id %]">
+ <img border="0" height="100" src="[% p.photos.first.url_tn %]"
+ alt="[% p.title | html %]" title="[% p.title | html %]">
+ </a>
+ [% END %]
</div>
- [% END %]
+</div>
+[% END %]
+
+<form id="alerts" name="alerts" method="post" action="/alert/subscribe">
[% INCLUDE 'alert/_list.html' %]
diff --git a/templates/web/base/auth/general.html b/templates/web/base/auth/general.html
index 6e1db86fe..d856dc19a 100644
--- a/templates/web/base/auth/general.html
+++ b/templates/web/base/auth/general.html
@@ -2,11 +2,28 @@
<h1>[% loc('Sign in') %]</h1>
+[% IF oauth_need_email %]
+ <p class="form-error">[% loc('We need your email address, please give it below.') %]</p>
+[% END %]
+[% IF oauth_failure %]
+ <p class="form-error">[% loc('Sorry, we could not log you in. Please fill in the form below.') %]</p>
+[% END %]
+
<form action="[% c.uri_for() %]" method="post" name="general_auth" class="validate">
<fieldset>
<input type="hidden" name="r" value="[% c.req.params.r | html %]">
+[% IF NOT oauth_need_email AND c.config.FACEBOOK_APP_ID %]
+ <div class="form-box">
+ <button name="facebook_sign_in" id="facebook_sign_in" value="facebook_sign_in" class="btn btn--block btn--social btn--facebook">
+ <img alt="" src="/i/facebook-icon-32.png" width="17" height="32">
+ Log in with Facebook
+ </button>
+ </div>
+ <div id="js-social-email-hide">
+[% END %]
+
[% IF email_error;
# other keys include fqdn, mxcheck if you'd like to write a custom error message
@@ -29,43 +46,58 @@
<div id="form_sign_in">
<h3>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h3>
+ [% IF oauth_need_email %]
+ [% INCLUDE form_sign_in_no %]
+ [% INCLUDE form_sign_in_yes %]
+ <input type="hidden" name="oauth_need_email" value="1">
+ [% ELSE %]
+ [% INCLUDE form_sign_in_yes %]
+ [% INCLUDE form_sign_in_no %]
+ [% END %]
+ </div>
- <div id="form_sign_in_yes" class="form-box">
- <h5>[% loc('<strong>Yes</strong> I have a password') %]</h5>
+[% IF NOT oauth_need_email AND c.config.FACEBOOK_APP_ID %]
+ </div>
+[% END %]
- <label class="hidden-js n" for="password_sign_in">[% loc('Password:') %]</label>
+ </fieldset>
+</form>
- <div class="form-txt-submit-box">
- <input type="password" name="password_sign_in" id="password_sign_in" value="" placeholder="[% loc('Your password') %]">
- <input class="green-btn" type="submit" name="sign_in" value="[% loc('Sign in') %]">
- </div>
+[% INCLUDE 'footer.html' %]
- <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
- <label class="inline n" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
+[% BLOCK form_sign_in_yes %]
+ <div id="form_sign_in_yes" class="form-box">
+ <h5>[% loc('<strong>Yes</strong> I have a password') %]</h5>
- </div>
- <div id="form_sign_in_no" class="form-box">
- <h5>[% loc('<strong>No</strong> let me sign in by email') %]</h5>
+ <label class="hidden-js n" for="password_sign_in">[% loc('Password:') %]</label>
- <label for="name">[% loc('Name') %]</label>
- <input type="text" name="name" value="" placeholder="[% loc('Your name') %]">
+ <div class="form-txt-submit-box">
+ <input type="password" name="password_sign_in" id="password_sign_in" value="" placeholder="[% loc('Your password') %]">
+ <input class="green-btn" type="submit" name="sign_in" value="[% loc('Sign in') %]">
+ </div>
- <label for="password_register">[% loc('Password (optional)') %]</label>
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <label class="inline n" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
- <div class="general-notes">
- <p>[% loc('Providing a name and password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
- </div>
+ </div>
+[% END %]
- <div class="form-txt-submit-box">
- <input type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
- <input class="green-btn" type="submit" name="email_sign_in" value="[% loc('Sign in') %]">
- </div>
- </div>
+[% BLOCK form_sign_in_no %]
+ <div id="form_sign_in_no" class="form-box">
+ <h5>[% loc('<strong>No</strong> let me sign in by email') %]</h5>
- </div>
+ <label for="name">[% loc('Name') %]</label>
+ <input type="text" name="name" value="" placeholder="[% loc('Your name') %]">
- </fieldset>
-</form>
+ <label for="password_register">[% loc('Password (optional)') %]</label>
+ <div class="general-notes">
+ <p>[% loc('Providing a name and password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
+ </div>
-[% INCLUDE 'footer.html' %]
+ <div class="form-txt-submit-box">
+ <input type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
+ <input class="green-btn" type="submit" name="email_sign_in" value="[% loc('Sign in') %]">
+ </div>
+ </div>
+[% END %]
diff --git a/templates/web/base/common_header_tags.html b/templates/web/base/common_header_tags.html
index 0ad3ffb5f..d13509a7a 100644
--- a/templates/web/base/common_header_tags.html
+++ b/templates/web/base/common_header_tags.html
@@ -8,6 +8,7 @@
<script type="text/javascript" src="[% start %]/jslib/jquery-1.7.2.min.js"></script>
<script src="[% start %][% version('/js/jquery.validate.min.js') %]" type="text/javascript" charset="utf-8"></script>
+<script type="text/javascript" src="[% start %][% version('/js/dropzone.min.js') %]"></script>
<script type="text/javascript" src="[% start %][% version('/js/geo.min.js') %]"></script>
<script type="text/javascript" src="[% start %][% version('/js/fixmystreet.js') %]"></script>
diff --git a/templates/web/base/contact/blurb.html b/templates/web/base/contact/blurb.html
index 463813449..3f9e88ed0 100644
--- a/templates/web/base/contact/blurb.html
+++ b/templates/web/base/contact/blurb.html
@@ -1,9 +1,15 @@
+[% IF c.cobrand.moniker == 'fixmystreet' %]
+<h3>Send a message to FixMyStreet's technical support team</h3>
+
+<h4>If you have questions about FixMyStreet</h4>
+[% END %]
+
+<p>
+[% tprintf( loc("It's often quickest to <a href=\"%s\">check our FAQs</a> and see if the answer is there."), c.uri_for('/faq') ) %]
+</p>
+
<p>
[% loc('Please do <strong>not</strong> report problems through this form; messages go to
the team behind this site, not a council. To report a problem,
please <a href="/">go to the front page</a> and follow the instructions.') %]
</p>
-
-<p>
-[% tprintf( loc("We'd love to hear what you think about this site. Just fill in the form, or send an email to <a href='mailto:%s'>%s</a>:"), contact_email, contact_email) %]
-</p>
diff --git a/templates/web/base/contact/index.html b/templates/web/base/contact/index.html
index 228a77def..86a0cec0d 100644
--- a/templates/web/base/contact/index.html
+++ b/templates/web/base/contact/index.html
@@ -1,106 +1,118 @@
[% INCLUDE 'header.html',
title = loc('Contact Us')
robots = 'noindex,nofollow'
+ bodyclass = 'twothirdswidthpage'
%]
+[% INCLUDE 'about/_sidebar.html' %]
+
+[% IF c.cobrand.moniker == 'fixmystreet' %]
+<h1>FixMyStreet technical support</h1>
+[% ELSE %]
<h1>[% loc('Contact the team') %]</h1>
+[% END %]
<form method="post" action="/contact/submit" class="validate">
+ <fieldset>
+ [% INCLUDE 'errors.html' %]
+
+ [% IF update %]
+
+ <p>
+ [% loc('You are reporting the following update for being abusive, containing personal information, or similar:') %]
+ </p>
+
+ <blockquote>
+ <p>
+ [% IF update.anonymous %]
+ [% tprintf( loc('Update below added anonymously at %s'), prettify_dt( update.confirmed ) ) %]
+ [% ELSE %]
+ [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_dt( update.confirmed ) ) | html %]
+ [% END %]
+ </p>
+
+ <p>
+ [% update.text | html %]
+ </p>
+
+ </blockquote>
+ <input type="hidden" name="update_id" value="[% update.id %]">
+ <input type="hidden" name="id" value="[% update.problem_id %]">
+
+ [% ELSIF problem %]
+ <p>
+ [% IF moderation_complaint %]
+ <input type="hidden" name="m" value="[% moderation_complaint %]">
+ [% loc('You are complaining that this problem report was unnecessarily moderated:') %]
+ [% ELSE %]
+ [% loc('You are reporting the following problem report for being abusive, containing personal information, or similar:') %]
+ [% END %]
+ </p>
-[% INCLUDE 'errors.html' %]
+ <blockquote>
+ <h2>[% problem.title_safe | html %]</h2>
-[% IF update %]
+ <p>
+ [% IF problem.anonymous %]
+ [% tprintf( loc('Reported anonymously at %s'), prettify_dt( problem.confirmed ) ) %]
+ [% ELSE %]
+ [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_dt( problem.confirmed ) ) | html %]
+ [% END %]
+ </p>
- <p>
- [% loc('You are reporting the following update for being abusive, containing personal information, or similar:') %]
- </p>
+ <p>
+ [% problem.detail | html %]
+ </p>
- <blockquote>
- <p>
- [% IF update.anonymous %]
- [% tprintf( loc('Update below added anonymously at %s'), prettify_dt( update.confirmed ) ) %]
- [% ELSE %]
- [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_dt( update.confirmed ) ) | html %]
- [% END %]
- </p>
-
- <p>
- [% update.text | html %]
- </p>
-
- </blockquote>
- <input type="hidden" name="update_id" value="[% update.id %]">
- <input type="hidden" name="id" value="[% update.problem_id %]">
-
-[% ELSIF problem %]
- <p>
- [% IF moderation_complaint %]
- <input type="hidden" name="m" value="[% moderation_complaint %]">
- [% loc('You are complaining that this problem report was unnecessarily moderated:') %]
- [% ELSE %]
- [% loc('You are reporting the following problem report for being abusive, containing personal information, or similar:') %]
- [% END %]
- </p>
-
- <blockquote>
- <h2>[% problem.title_safe | html %]</h2>
-
- <p>
- [% IF problem.anonymous %]
- [% tprintf( loc('Reported anonymously at %s'), prettify_dt( problem.confirmed ) ) %]
- [% ELSE %]
- [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_dt( problem.confirmed ) ) | html %]
- [% END %]
- </p>
+ </blockquote>
+ <input type="hidden" name="id" value="[% problem.id %]">
- <p>
- [% problem.detail | html %]
- </p>
+ [% ELSE %]
- </blockquote>
- <input type="hidden" name="id" value="[% problem.id %]">
+ [% INCLUDE 'contact/blurb.html' %]
-[% ELSE %]
+ [% END %]
- [% INCLUDE 'contact/blurb.html' %]
+ <label for="form_name">[% loc('Your name') %]</label>
+ [% IF field_errors.name %]
+ <div class="form-error">[% field_errors.name %]</div>
+ [% END %]
+ <input type="text" class="required" name="name" id="form_name" value="[% form_name | html %]" size="30">
-[% END %]
-[% IF field_errors.name %]
- <div class="form-error">[% field_errors.name %]</div>
-[% END %]
-<div class="form-field">
-<label for="form_name">[% loc('Your name:') %]</label>
-<input type="text" class="required" name="name" id="form_name" value="[% form_name | html %]" size="30"></div>
+ <label for="form_email">[% loc('Your email') %]</label>
+ [% IF field_errors.em %]
+ <div class="form-error">[% field_errors.em %]</div>
+ [% END %]
+ <input type="text" class="required email" name="em" id="form_email" value="[% em | html %]" size="30">
-[% IF field_errors.em %]
- <div class="form-error">[% field_errors.em %]</div>
-[% END %]
-<div class="form-field">
-<label for="form_email">[% loc('Your&nbsp;email:') %]</label>
-<input type="text" class="required email" name="em" id="form_email" value="[% em | html %]" size="30"></div>
+ <label for="form_subject">[% loc('Subject') %]</label>
+ [% IF field_errors.subject %]
+ <div class="form-error">[% field_errors.subject %]</div>
+ [% END %]
+ <input type="text" class="required" name="subject" id="form_subject" value="[% subject | html %]" size="30">
-[% IF field_errors.subject %]
- <div class="form-error">[% field_errors.subject %]</div>
-[% END %]
-<div class="form-field">
-<label for="form_subject">[% loc('Subject:') %]</label>
-<input type="text" class="required" name="subject" id="form_subject" value="[% subject | html %]" size="30"></div>
+ [% INCLUDE 'contact/who.html' %]
-[% INCLUDE 'contact/who.html' %]
+ <label for="form_message">[% loc('Message') %]</label>
+ [% IF field_errors.message %]
+ <div class="form-error">[% field_errors.message %]</div>
+ [% END %]
+ <textarea class="required" name="message" id="form_message" rows="7" cols="50">[% message | html %]</textarea>
-[% IF field_errors.message %]
- <div class="form-error">[% field_errors.message %]</div>
-[% END %]
-<div class="form-field">
-<label for="form_message">[% loc('Message:') %]</label>
-<textarea class="required" name="message" id="form_message" rows="7" cols="50">[% message | html %]</textarea></div>
-<div class="checkbox"><input type="submit" value="[% loc('Post') %]"></div>
+ <input class="final-submit green-btn" type="submit" value="[% loc('Post') %]">
+ </fieldset>
</form>
+<h4>[% loc("Don't like forms?") %]</h4>
+
+<p>
+[% tprintf( loc("You can contact technical support on <a href='mailto:%s'>%s</a>"), contact_email, contact_email) %]
+</p>
+
[% TRY %][% INCLUDE 'contact/address.html' %][% CATCH file %][% END %]
-[% INCLUDE 'footer.html' %]
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/base/errors/generic.html b/templates/web/base/errors/generic.html
index 12aa8e170..d0d1e2e00 100755
--- a/templates/web/base/errors/generic.html
+++ b/templates/web/base/errors/generic.html
@@ -1,8 +1,9 @@
-[% INCLUDE 'header.html', title = loc('Error') %]
+[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Error') %]
-<h1>[% loc('Error') %]</h1>
-
-<p>[% message %]</p>
+<div class="confirmation-header confirmation-header--failure">
+ <h1>[% loc('Error') %]</h1>
+ <p>[% message %]</p>
+</div>
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/errors/page_error_404_not_found.html b/templates/web/base/errors/page_error_404_not_found.html
index 77db18e89..490c5b721 100644
--- a/templates/web/base/errors/page_error_404_not_found.html
+++ b/templates/web/base/errors/page_error_404_not_found.html
@@ -1,19 +1,13 @@
-[% INCLUDE 'header.html', title => loc('Page Not Found') %]
+[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Page Not Found') %]
-<h1>[%loc('Page Not Found') %]</h1>
-
-[% IF error_msg %]
+<div class="confirmation-header confirmation-header--failure">
+ <h1>[% loc('Page Not Found') %]</h1>
+ [% IF error_msg %]
<p class="error">[% error_msg | html %]</p>
-[% END %]
+ [% END %]
-<p>
- [%
- tprintf(
- loc("The requested URL '%s' was not found on this server"),
- c.req.uri
- )
- %]
-</p>
+ <p>[% tprintf(loc("The requested URL '%s' was not found on this server"), c.req.uri) %]</p>
+</div>
[% # FIXME - add more helpful suggestions to this page %]
diff --git a/templates/web/base/front/stats.html b/templates/web/base/front/stats.html
index 5367f1118..eb671137b 100644
--- a/templates/web/base/front/stats.html
+++ b/templates/web/base/front/stats.html
@@ -1,8 +1,4 @@
-[%
- USE Comma;
- # Note - if we want to i18n the commas we should try
- # 'Template::Plugin::Number::Format'
-%]
+[% USE Number.Format %]
[%
stats = c.cobrand.front_stats_data();
@@ -31,13 +27,16 @@
"<big>%s</big> updates on reports",
stats.updates
);
-
+
+ new_n = stats.new | format_number;
+ fixed_n = stats.fixed | format_number;
+ updates_n = stats.updates | format_number;
%]
<div id="front_stats">
- <div>[% tprintf( new_text, stats.new ) | comma %]</div>
- <div>[% tprintf( fixed_text, stats.fixed ) | comma %]</div>
+ <div>[% tprintf( new_text, decode(new_n) ) %]</div>
+ <div>[% tprintf( fixed_text, decode(fixed_n) ) %]</div>
[% IF c.cobrand.moniker != 'zurich' %]
- <div>[% tprintf( updates_text, stats.updates ) | comma %]</div>
+ <div>[% tprintf( updates_text, decode(updates_n) ) %]</div>
[% END %]
</div>
diff --git a/templates/web/base/js/translation_strings.html b/templates/web/base/js/translation_strings.html
index 669055a1b..b97104f92 100644
--- a/templates/web/base/js/translation_strings.html
+++ b/templates/web/base/js/translation_strings.html
@@ -47,5 +47,10 @@
permalink: '[% loc('Permalink') | replace("'", "\\'") %]',
+ upload_max_files_exceeded: '[% loc ('Whoa there Testino! Three photos are enough.') | replace("'", "\\'") %]',
+ upload_default_message: '[% loc ('Drag and drop photos here or <u>click to upload</u>') | replace("'", "\\'") %]',
+ upload_cancel_confirmation: '[% loc ('Are you sure you want to cancel this upload?') | replace("'", "\\'") %]',
+ upload_invalid_file_type: '[% loc ('Please upload a JPEG image only') | replace("'", "\\'") %]',
+
report_problem_heading: '[% loc('Click map to report a problem') | replace("'", "\\'") %]'
};
diff --git a/templates/web/base/js/validation_rules.html b/templates/web/base/js/validation_rules.html
index 409d0971f..5295a53ca 100644
--- a/templates/web/base/js/validation_rules.html
+++ b/templates/web/base/js/validation_rules.html
@@ -1,7 +1,5 @@
validation_rules = {
title: { required: true },
detail: { required: true },
- email: { required: true },
- update: { required: true },
- rznvy: { required: true }
+ update: { required: true }
};
diff --git a/templates/web/base/maps/google-ol.html b/templates/web/base/maps/google-ol.html
index 021570df1..7c83534a8 100644
--- a/templates/web/base/maps/google-ol.html
+++ b/templates/web/base/maps/google-ol.html
@@ -1,5 +1,5 @@
[% map_js = BLOCK %]
-<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.20"></script>
+<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.21"></script>
<script type="text/javascript" src="[% version('/js/OpenLayers.fixmystreet.google.js') %]"></script>
<script type="text/javascript" src="[% version('/js/map-OpenLayers.js') %]"></script>
<script type="text/javascript" src="[% version('/js/map-google-ol.js') %]"></script>
@@ -10,7 +10,7 @@
[% END %]
[% map_sub_links = BLOCK %]
-<a class="hidden-nojs" id="map_layer_toggle" href="">[% loc('Satellite') %]</a>
+<a class="hidden-nojs" id="map_layer_toggle" href="">[% loc('Map') %]</a>
[% END %]
[% map_html = BLOCK %]
diff --git a/templates/web/base/my/my.html b/templates/web/base/my/my.html
index 9be4edfca..dff18c025 100644
--- a/templates/web/base/my/my.html
+++ b/templates/web/base/my/my.html
@@ -46,11 +46,21 @@
<ul class="item-list item-list--updates full-width">
[% END %]
- <li>&ldquo;[% u.text | html %]&rdquo;
- &ndash; <a href="[% c.uri_for( '/report', u.problem_id ) %]#update_[% u.id %]">[% u.problem.title | html %]</a>.
- <p><small class="council_sent_info">
- [% tprintf( loc("Added %s"), prettify_dt( u.confirmed, 'date' ) ) %]
- </small></p>
+ <li class="item-list__item item-list__item--updates">
+ <div class="item-list__update-wrap">
+ [% INCLUDE 'report/photo.html' object=u %]
+ <div class="item-list__update-text">
+ [% add_links( u.text ) | html_para %]
+
+ <p class="meta-2">
+ [% tprintf( loc("Added %s"), prettify_dt( u.confirmed, 'date' ) ) %]
+ &ndash;
+ <a href="[% c.uri_for( '/report', u.problem_id ) %]#update_[% u.id %]">
+ [% u.problem.title | html %]
+ </a>
+ </p>
+ </div>
+ </div>
</li>
[% "</ul>" IF loop.last %]
[% END %]
diff --git a/templates/web/base/open311/index.html b/templates/web/base/open311/index.html
index d42cc2106..196cf0db6 100644
--- a/templates/web/base/open311/index.html
+++ b/templates/web/base/open311/index.html
@@ -1,14 +1,6 @@
[% INCLUDE 'header.html', title = 'Open311', bodyclass = 'twothirdswidthpage' %]
-<div class="sticky-sidebar">
- <aside>
- <ul class="plain-list">
- <li><a href="/faq">[% loc('Frequently Asked Questions') %]</a></li>
- <li><a href="/privacy">[% loc('Privacy and cookies') %]</a></li>
- <li><a href="/contact">[% tprintf(loc("Contact %s", "%s is the site name"), site_name) %]</a></li>
- </ul>
- </aside>
-</div>
+[% INCLUDE 'about/_sidebar.html' %]
<h1>FixMyStreet support for Open311</h1>
diff --git a/templates/web/base/questionnaire/index.html b/templates/web/base/questionnaire/index.html
index ab3bde9ad..86887c163 100644
--- a/templates/web/base/questionnaire/index.html
+++ b/templates/web/base/questionnaire/index.html
@@ -11,7 +11,7 @@
<h1>[% loc('Questionnaire') %]</h1>
-<h2 class="questionnaire-report-header">Your report</h2>
+<h2 class="questionnaire-report-header">[% loc('Your report') %]</h2>
<div class="questionnaire-report-reminder">
[% INCLUDE 'report/photo.html' object=problem %]
<h3 class="questionnaire-report-reminder__report-title">
@@ -71,15 +71,26 @@
<p><textarea name="update" rows="7" cols="30" placeholder="[% loc('What was your experience of getting the problem fixed?') %]">[% update | html %]</textarea></p>
[% IF c.cobrand.allow_photo_upload %]
-<p id="fileupload_normalUI">
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <p>[% loc('You have already attached a photo to this report, attaching another one will replace it.') %]</p>
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <label for="form_photo">[% loc('Photo') %]</label>
+
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
+
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this update. Note that you can attach a maximum of 3 to this update (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
+ [% END %]
[% END %]
- <label for="form_photo">[% loc('Photo:') %]</label>
- <input type="file" name="photo" id="form_photo">
-</p>
+ <input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
+ <input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
+ <input type="file" name="photo3" id="form_photo3">
+ </div>
[% END %]
[% IF c.cobrand.moniker != 'emptyhomes' %]
diff --git a/templates/web/base/report/_item.html b/templates/web/base/report/_item.html
index d79a4e9f3..6ae43f798 100644
--- a/templates/web/base/report/_item.html
+++ b/templates/web/base/report/_item.html
@@ -1,9 +1,7 @@
<li class="item-list__item item-list--reports__item [% item_extra_class %]">
<a href="[% c.uri_for('/report', problem.id ) %]">
- [% IF problem.photo;
- photo = problem.get_photo_params
- %]
- <img class="img" height="60" width="90" src="[% photo.url_fp %]" alt="">
+ [% IF problem.photo %]
+ <img class="img" height="60" width="90" src="[% problem.photos.first.url_fp %]" alt="">
[% END %]
<h4>[% problem.title | html %]</h4>
<small>
diff --git a/templates/web/base/report/banner.html b/templates/web/base/report/banner.html
index bd7798d79..188e96502 100644
--- a/templates/web/base/report/banner.html
+++ b/templates/web/base/report/banner.html
@@ -1,22 +1,20 @@
[% USE date %]
[% BLOCK banner %]
-<p class="banner" id="[% id %]">
- [% text %]
-</p>
+ <div class="banner">
+ <p id="[% id %]">[% text %]</p>
+ </div>
[% END %]
[% IF problem.is_open AND date.now - problem.lastupdate.epoch > 8 * 7 * 24 * 60 * 60 %]
- [% INCLUDE banner, id = 'unknown', text = loc('This problem is old and of unknown status.') %]
+ [% INCLUDE banner, id = 'unknown', text = loc('Unknown') %]
[% END %]
[% IF problem.is_fixed %]
- [% INCLUDE banner, id = 'fixed', text = loc('This problem has been fixed') %]
+ [% INCLUDE banner, id = 'fixed', text = loc('Fixed') %]
[% END %]
[% IF problem.is_closed %]
- [% INCLUDE banner, id = 'closed', text = loc('This problem has been closed') %]
+ [% INCLUDE banner, id = 'closed', text = loc('Closed') %]
[% END %]
[% states = [ 'investigating', 'in progress', 'planned', 'action scheduled' ];
IF states.grep(problem.state).size %]
- [% INCLUDE banner, id = 'progress', text = loc('This problem is in progress') %]
+ [% INCLUDE banner, id = 'progress', text = loc('In progress') %]
[% END %]
-
-
diff --git a/templates/web/base/report/display.html b/templates/web/base/report/display.html
index 329614488..05e07d501 100644
--- a/templates/web/base/report/display.html
+++ b/templates/web/base/report/display.html
@@ -1,60 +1,44 @@
[%
+ SET bodyclass = 'mappage';
+ PROCESS "report/photo-js.html";
PROCESS "maps/${map.type}.html";
problem_title = problem.title_safe _ ' - ' _ loc('Viewing a problem');
- SET rss = [ tprintf(loc('Updates to this problem, %s', "%s is the site name"), site_name), "/rss/$problem.id" ] IF c.cobrand.moniker != 'emptyhomes';
- SET robots = 'index, nofollow';
- SET robots = 'noindex, nofollow' IF c.cobrand.moniker == 'emptyhomes';
INCLUDE 'header.html'
title = problem_title
+ rss = [ tprintf(loc('Updates to this problem, %s', "%s is the site name"), site_name), "/rss/$problem.id" ]
+ robots = 'index, nofollow';
%]
-[% IF c.cobrand.moniker != 'emptyhomes' %]
- [% map_html %]
- </div>
-[% END %]
-
-<div id="side">
+[% map_html %]
+</div>
[% IF login_success %]
<p class='form-success'>[% loc('You have successfully signed in; please check and confirm your details are accurate:') %]</p>
+ [% INCLUDE 'report/update-form.html' %]
+ [% SET shown_form = 1 %]
+[% ELSIF oauth_failure %]
+ <p class="form-error">[% loc('Sorry, we could not log you in. Please fill in the form below.') %]</p>
+ [% INCLUDE 'report/update-form.html' %]
+ [% SET shown_form = 1 %]
+[% ELSIF oauth_need_email %]
+ <p class="form-error">
+ [% loc('Please note your update has <strong>not yet been posted</strong>.') %]
+ [% loc('We need your email address, please give it below.') %]
+ </p>
+ [% INCLUDE 'report/update-form.html' %]
+ [% SET shown_form = 1 %]
[% END %]
[% INCLUDE 'report/banner.html' %]
[% INCLUDE 'report/_main.html' %]
-
-<p align="right">
- <small>
- <a rel="nofollow" href="[% c.uri_for( '/contact', { id => problem.id } ) %]">[% loc('Offensive? Unsuitable? Tell us' ) %]</a>
- </small>
-</p>
-
-[% IF c.cobrand.moniker != 'emptyhomes' %]
-<p style="padding-bottom: 0.5em; border-bottom: dotted 1px #999999;" align="right">
- <a href="[% c.uri_for( '/around', { lat => latitude, lon => longitude } ) %]">[% loc( 'More problems nearby' ) %]</a>
-</p>
-
-<div id="alert_links">
- <a rel="nofollow" id="email_alert" href="[% c.uri_for( '/alert/subscribe', { id => problem.id } ) %]">[% loc('Email me updates' ) %]</a>
-
- <form action="[% c.uri_for( '/alert/subscribe' ) %]" method="post" id="email_alert_box">
- <p>[% loc('Receive email when updates are left on this problem.' ) %]</p>
- <label class="n" for="alert_rznvy">[% loc('Email:') %]</label>
- <input type="email" name="rznvy" id="alert_rznvy" value="[% email | html %]" size="30">
- <input type="hidden" name="id" value="[% problem.id %]">
- <input type="hidden" name="type" value="updates">
- <input type="submit" value="[% loc('Subscribe') %]">
- </form>
- &nbsp;
- <a href="[% c.uri_for( '/rss', problem.id ) %]">
- <img src="/i/feed.png" width="16" height="16" title="[% loc('RSS feed') %]" alt="[% loc('RSS feed of updates to this problem' ) %]" border="0" style="vertical-align: middle">
- </a>
-</div>
-
+[% TRY %][% INCLUDE 'report/_message_manager.html' %][% CATCH file %][% END %]
+[% INCLUDE 'report/display_tools.html' %]
+[% TRY %][% INCLUDE 'report/sharing.html' %][% CATCH file %][% END %]
[% INCLUDE 'report/updates.html' %]
-[% INCLUDE 'report/update-form.html' %]
-[% END %]
-</div>
+[% IF NOT shown_form %]
+ [% INCLUDE 'report/update-form.html' %]
+[% END %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/fixmystreet/report/display.html b/templates/web/base/report/display_tools.html
index 5f499dd6e..004ae29e5 100644
--- a/templates/web/fixmystreet/report/display.html
+++ b/templates/web/base/report/display_tools.html
@@ -1,27 +1,3 @@
-[%
- SET bodyclass = 'mappage';
- PROCESS "report/photo-js.html";
- PROCESS "maps/${map.type}.html";
-
- problem_title = problem.title_safe _ ' - ' _ loc('Viewing a problem');
- INCLUDE 'header.html'
- title = problem_title
- rss = [ tprintf(loc('Updates to this problem, %s', "%s is the site name"), site_name), "/rss/$problem.id" ]
- robots = 'index, nofollow';
-%]
-
-[% map_html %]
-</div>
-
-[% IF login_success %]
- <p class='form-success'>[% loc('You have successfully signed in; please check and confirm your details are accurate:') %]</p>
-[% END %]
-
-[% INCLUDE 'report/banner.html' %]
-
-[% INCLUDE 'report/_main.html' %]
-[% TRY %][% INCLUDE 'report/_message_manager.html' %][% CATCH file %][% END %]
-
<div class="shadow-wrap">
<ul id="key-tools">
[% IF c.user_exists AND c.cobrand.users_can_hide AND c.user.belongs_to_body( c.cobrand.council_id ) %]
@@ -71,8 +47,3 @@
</div>
</div>
-
-[% TRY %][% INCLUDE 'report/sharing.html' %][% CATCH file %][% END %]
-[% INCLUDE 'report/updates.html' %]
-[% INCLUDE 'report/update-form.html' %]
-[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/report/new/councils_text_none.html b/templates/web/base/report/new/councils_text_none.html
index 684879590..6a1a2bc67 100644
--- a/templates/web/base/report/new/councils_text_none.html
+++ b/templates/web/base/report/new/councils_text_none.html
@@ -5,7 +5,11 @@
"We do not yet have details for the councils that cover this location.",
missing_details_bodies.size || all_areas.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>."),
missing_details_body_names.join( loc(' or ') ) || all_area_names.join( loc(' or ') ),
diff --git a/templates/web/base/report/new/fill_in_details.html b/templates/web/base/report/new/fill_in_details.html
index 9d3f52041..55b3a5207 100644
--- a/templates/web/base/report/new/fill_in_details.html
+++ b/templates/web/base/report/new/fill_in_details.html
@@ -33,11 +33,15 @@
<div id="skipped-map">
[% END %]
- [% IF login_success %]
- <p class='form-success'>[% loc('You have successfully signed in; please check and confirm your details are accurate:') %]</p>
- [% END %]
-
- [% PROCESS 'report/new/fill_in_details_form.html' %]
+ <div id="report-a-problem-main">
+ [% IF login_success %]
+ [% PROCESS 'report/new/login_success_form.html' %]
+ [% ELSIF oauth_need_email %]
+ [% PROCESS 'report/new/oauth_email_form.html' %]
+ [% ELSE %]
+ [% PROCESS 'report/new/fill_in_details_form.html' %]
+ [% END %]
+ </div>
</div>
</form>
diff --git a/templates/web/base/report/new/fill_in_details_form.html b/templates/web/base/report/new/fill_in_details_form.html
index ee219d563..f9da3753f 100644
--- a/templates/web/base/report/new/fill_in_details_form.html
+++ b/templates/web/base/report/new/fill_in_details_form.html
@@ -4,200 +4,36 @@
<p class="change_location">[% loc('Wrong location? Just click again on the map.') %]</p>
[% END %]
-[% IF partial_token %]
- <p id="unknown">[% loc('Please note your report has <strong>not yet been sent</strong>. Choose a category and add further information below, then submit.') %]</p>
-[% END %]
-
[% IF js %]
- <p id="councils_text">[%
- tprintf(
- loc('All the information you provide here will be sent to <strong>%s</strong>.'),
- loc('the local council')
- );
- %]
- [% loc('The summary and description will also be made public (see our <a href="/privacy">privacy policy</a>).') %]
+ <p id="councils_text">
+ [% tprintf(
+ loc('All the information you provide here will be sent to <strong>%s</strong>.'),
+ loc('the local council')
+ ); %]
+ [% loc('The summary and description will also be made public (see our <a href="/privacy">privacy policy</a>).') %]
</p>
[% ELSE %]
[% PROCESS 'report/new/councils_text.html' %]
[% END %]
-<p>
-[% IF report.used_map %]
- [% INCLUDE 'report/new/fill_in_details_text.html' %]
-[% ELSE %]
- [% loc('Please fill in the form below with details of the problem, and describe the location as precisely as possible in the details box.') %]
-[% END %]
-</p>
-
-[% INCLUDE 'errors.html' %]
-
-<div id="problem_form">
-
-[% INCLUDE 'report/new/form_heading.html' %]
-
-<div class="fieldset">
-
-
-
-
-
-[% IF field_errors.bodies %]
- <div class='form-error'>[% field_errors.bodies %]</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" required>
-</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" required>[% report.detail | html %]</textarea>
-</div>
-
-[% PROCESS "report/new/category_wrapper.html" %]
-
-[% IF c.cobrand.allow_photo_upload %]
- [% 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/[% report.id %].jpeg" hspace="5">
- [% END %]
- [% END %]
-
- <label for="form_photo">[% loc('Photo:') %]</label>
- <input type="file" name="photo" id="form_photo" style="width:20em">
- </div>
-[% END %]
-
-[% IF c.user_exists %]
-
- [% INCLUDE name_phone %]
-
- [% INCLUDE 'report/new/notes.html' %]
-
- <p id="problem_submit">
- <input type="submit" value="[% loc('Submit') %]">
- </p>
-
-[% ELSE %]
-
- [% IF field_errors.email %]
- <div class='form-error'>[% field_errors.email %]</div>
- [% END %]
-
- <div class="form-field">
- <label for="form_email">[% loc('Your email:') %]</label>
- <input type="email" value="[% report.user.email | html %]" name="email" id="form_email" size="25" required>
- </div>
-
-[% INCLUDE 'report/new/notes.html' %]
-
-<div id="form_sign_in">
- <h3>[% loc("Now to submit your report&hellip;") %]</h3>
- <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
-
- <div id="form_sign_in_yes">
-
- [% IF field_errors.password %]
- <div class='form-error'>[% field_errors.password %]</div>
- [% END %]
-
- <div class="form-field">
- <label class="n" for="password_sign_in">[% loc('<strong>Yes</strong> I have a password') %]</label>
- <input type="password" name="password_sign_in" id="password_sign_in" value="" size="25">
- </div>
-
- <div class="fieldset">
-
- <p>
- <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
- <label class="n" for="remember_me">
- [% loc('Keep me signed in on this computer') %]
- </label>
- </p>
-
- <p>
- <input type="submit" id="submit_sign_in" name="submit_sign_in" value="[% loc('Submit') %]">
- </p>
-
- </div>
-
- </div>
- <div id="form_sign_in_no">
-
- <p>[% loc('<strong>No</strong>, let me confirm my report by email:') %]</p>
-
- <div class="fieldset">
-
- [% INCLUDE name_phone %]
-
- <div class="form-field">
- <label for="password_register">[% loc('Enter a new password:') %]</label>
- <input type="password" name="password_register" id="password_register" value="" size="25">
- </div>
-
- <p style="clear:both"><small>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</small></p>
-
- <p>
- <input type="submit" id="submit_register" name="submit_register" value="[% loc('Submit') %]">
- </p>
-
- </div>
-
- </div>
-
-</div>
-
+[% IF report.used_map && partial_token %]
+ <p id="unknown">[% loc('Please note your report has <strong>not yet been sent</strong>. Choose a category and add further information below, then submit.') %]</p>
[% END %]
-
-[% IF partial_token %]
- <input type="hidden" name="partial" value="[% partial_token.token %]">
+[% IF oauth_failure %]
+ <p class="form-error">[% loc('Sorry, we could not log you in. Please fill in the form below.') %]</p>
[% END %]
-<input type="hidden" name="submit_problem" value="1">
-
-</div>
-</div>
+[% TRY %][% PROCESS 'report/new/sidebar.html' %][% CATCH file %][% END %]
+[% INCLUDE 'errors.html' %]
-[% BLOCK name_phone %]
- [% IF field_errors.name %]
- <div class='form-error'>[% field_errors.name %]</div>
- [% END %]
-
- <div class="form-field">
- <label for="form_name">[% loc('Your name:') %]</label>
- <input type="text" class="validName" 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==0 OR (c.cobrand.default_show_name AND report.anonymous=='') %]>
- <label for="form_may_show_name">[% loc('Show my name publicly') %]</label>
- <br><small>[% loc('(we never show your email address or phone number)') %]</small>
- </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>
+<fieldset>
+ <div id="problem_form">
+ [% PROCESS 'report/new/form_report.html' %]
+ [% IF c.user_exists %]
+ [% PROCESS "report/new/form_user_loggedin.html" %]
+ [% ELSE %]
+ [% PROCESS "report/new/form_user_loggedout.html" %]
+ [% END %]
</div>
-[% END %]
-
+</fieldset>
diff --git a/templates/web/base/report/new/form_report.html b/templates/web/base/report/new/form_report.html
new file mode 100644
index 000000000..68fb2c796
--- /dev/null
+++ b/templates/web/base/report/new/form_report.html
@@ -0,0 +1,65 @@
+[% INCLUDE 'report/new/form_heading.html' %]
+
+[% IF field_errors.bodies %]
+ <p class='form-error'>[% field_errors.bodies %]</p>
+[% END %]
+
+[% TRY %]
+ [%# Useful for amending form contents based on category selection %]
+ [% PROCESS 'report/new/category_at_top.html' %]
+ [% need_to_show_category_selector = 0 %]
+[% CATCH file %]
+ [% need_to_show_category_selector = 1 %]
+[% END %]
+
+ <label for="form_title">[% loc('One-line summary') %] [% INCLUDE 'report/public_label.html' %]</label>
+[% IF field_errors.title %]
+ <p class='form-error'>[% field_errors.title %]</p>
+[% END %]
+ <input type="text" value="[% report.title | html %]" name="title" id="form_title" placeholder="[% loc('What’s the issue, and where is it?') %]" required>
+
+[% IF c.cobrand.allow_photo_upload %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <label for="form_photo">[% loc('Photo') %]
+ [% INCLUDE 'report/public_label.html' %]</label>
+
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
+
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this report. Note that you can attach a maximum of 3 to this report (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
+ [% END %]
+ [% END %]
+ <input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
+ <input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
+ <input type="file" name="photo3" id="form_photo3">
+ </div>
+[% END %]
+
+[% TRY %][% PROCESS 'report/new/after_photo.html' %][% CATCH file %][% END %]
+
+ <label for="form_detail">[% loc('Description') %] [% INCLUDE 'report/public_label.html' %]</label>
+[% IF field_errors.detail %]
+ <p class='form-error'>[% field_errors.detail %]</p>
+[% END %]
+ <textarea rows="7" cols="26" name="detail" id="form_detail" placeholder="[% loc('Explain what’s wrong, exactly where it is, and how long it’s been there…') %]" required>[% report.detail | html %]</textarea>
+
+[% TRY %][% PROCESS 'report/new/inline-tips.html' %][% CATCH file %][% END %]
+
+[% IF need_to_show_category_selector %]
+ [% PROCESS "report/new/category_wrapper.html" %]
+[% END %]
+
+[% TRY %][% PROCESS 'report/new/after_category.html' %][% CATCH file %][% END %]
+
+[% IF partial_token %]
+ <input type="hidden" name="partial" value="[% partial_token.token %]">
+[% END %]
+
+ <input type="hidden" name="submit_problem" value="1">
diff --git a/templates/web/fixmystreet/report/new/form_user_loggedin.html b/templates/web/base/report/new/form_user_loggedin.html
index 848d331d4..a39200c72 100644
--- a/templates/web/fixmystreet/report/new/form_user_loggedin.html
+++ b/templates/web/base/report/new/form_user_loggedin.html
@@ -4,8 +4,8 @@
<input disabled type="text" value="[% c.user.email | html %]">
[% INCLUDE 'report/new/extra_name.html' %]
+ [% PROCESS 'user/_anonymity.html' anonymous = report.anonymous %]
- [% name_public = report.anonymous==0 OR (c.cobrand.default_show_name AND report.anonymous=='') %]
<label for="form_name">[% loc('Name') %]
[% TRY %]
[% INCLUDE 'report/new/after_name.html' %]
diff --git a/templates/web/base/report/new/form_user_loggedout.html b/templates/web/base/report/new/form_user_loggedout.html
new file mode 100644
index 000000000..6657c87a1
--- /dev/null
+++ b/templates/web/base/report/new/form_user_loggedout.html
@@ -0,0 +1,25 @@
+[% IF c.config.FACEBOOK_APP_ID %]
+ <h3>[% loc("Now to submit your report&hellip;") %]</h3>
+
+ <div class="form-box">
+ <button name="facebook_sign_in" id="facebook_sign_in" value="facebook_sign_in" class="btn btn--block btn--social btn--facebook">
+ <img alt="" src="/i/facebook-icon-32.png" width="17" height="32">
+ Log in with Facebook
+ </button>
+ </div>
+ <div id="js-social-email-hide">
+ [% PROCESS 'report/new/form_user_loggedout_email.html' required = 0 %]
+[% ELSE %]
+ [% PROCESS 'report/new/form_user_loggedout_email.html' required = 1 %]
+ <h3>[% loc("Now to submit your report&hellip;") %]</h3>
+[% END %]
+
+<div id="form_sign_in">
+ <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
+ [% PROCESS 'report/new/form_user_loggedout_password.html' %]
+ [% PROCESS 'report/new/form_user_loggedout_by_email.html' %]
+</div>
+
+[% IF c.config.FACEBOOK_APP_ID %]
+ </div>
+[% END %]
diff --git a/templates/web/base/report/new/form_user_loggedout_by_email.html b/templates/web/base/report/new/form_user_loggedout_by_email.html
new file mode 100644
index 000000000..1ad07c540
--- /dev/null
+++ b/templates/web/base/report/new/form_user_loggedout_by_email.html
@@ -0,0 +1,41 @@
+<div id="form_sign_in_no" class="form-box">
+ <h5>[% loc('<strong>No</strong> Let me confirm my report by email') %]</h5>
+
+ [% INCLUDE 'report/new/extra_name.html' %]
+ [% PROCESS 'user/_anonymity.html' anonymous = report.anonymous %]
+
+ <label for="form_name">[% loc('Name') %]
+ [% TRY %]
+ [% INCLUDE 'report/new/after_name.html' %]
+ [% CATCH file %]
+ [% END %]
+ </label>
+ [% IF field_errors.name %]
+ <p class='form-error'>[% field_errors.name %]</p>
+ [% END %]
+
+ <input type="text" class="form-focus-trigger validName" value="[% report.name | html %]" name="name" id="form_name" placeholder="[% loc('Your name') %]">
+
+ [%# if there is nothing in the name field then set check box as default on form %]
+ <div class="checkbox-group">
+ <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF name_public %]>
+ <label class="inline" for="form_may_show_name">[% loc('Show my name publicly') %]</label>
+ </div>
+
+ <label class="form-focus-hidden" for="form_phone">[% loc('Phone number (optional)') %]</label>
+ <input class="form-focus-hidden" type="text" value="[% report.user.phone | html %]" name="phone" id="form_phone" placeholder="[% loc('Your phone number') %]">
+ <div class="general-notes form-focus-hidden">
+ <p>[% loc('We never show your email address or phone number.') %]</p>
+ </div>
+
+ <label class="form-focus-hidden" for="password_register">[% loc('Password (optional)') %]</label>
+
+ <div class="general-notes form-focus-hidden">
+ <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
+ </div>
+
+ <div class="form-txt-submit-box form-focus-hidden">
+ <input type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
+ <input class="green-btn" type="submit" id="submit_register" name="submit_register" value="[% loc('Submit') %]">
+ </div>
+</div>
diff --git a/templates/web/base/report/new/form_user_loggedout_email.html b/templates/web/base/report/new/form_user_loggedout_email.html
new file mode 100644
index 000000000..4f816f8cc
--- /dev/null
+++ b/templates/web/base/report/new/form_user_loggedout_email.html
@@ -0,0 +1,9 @@
+<label for="form_email">[% loc('Your email') %]
+ <span class="muted">([% loc('We never show your email') %])</span>
+</label>
+[% IF field_errors.email %]
+ <p class='form-error'>[% field_errors.email %]</p>
+[% END %]
+<input type="email" value="[% report.user.email | html %]" name="email" id="form_email" placeholder="[% loc('Please enter your email address') %]"
+ [% IF required %]required[% END %]
+ class="required">
diff --git a/templates/web/base/report/new/form_user_loggedout_password.html b/templates/web/base/report/new/form_user_loggedout_password.html
new file mode 100644
index 000000000..c9d65e43e
--- /dev/null
+++ b/templates/web/base/report/new/form_user_loggedout_password.html
@@ -0,0 +1,24 @@
+<div id="form_sign_in_yes" class="form-box">
+
+ <h5>[% loc('<strong>Yes</strong> I have a password') %]</h5>
+
+ <label class="hidden-js n" for="password_sign_in">[% loc('Yes I have a password') %]</label>
+ [% IF field_errors.password %]
+ <p class='form-error'>[% field_errors.password %]</p>
+ [% END %]
+ <div class="form-txt-submit-box">
+ <input type="password" name="password_sign_in" id="password_sign_in" placeholder="[% loc('Your password') %]" value="">
+ <input class="green-btn" type="submit" id="submit_sign_in" name="submit_sign_in" value="[% loc('Submit') %]">
+ </div>
+
+ <div class="checkbox-group">
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <label class="n inline" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
+ </div>
+
+ <div class="general-notes">
+ <p><strong>[% loc('Forgotten your password?') %]</strong>
+ [% loc('Confirm by email instead, providing a new password at that point. When you confirm, your password will be updated.') %]</p>
+ </div>
+
+</div>
diff --git a/templates/web/base/report/new/login_success_form.html b/templates/web/base/report/new/login_success_form.html
new file mode 100644
index 000000000..45d0221a7
--- /dev/null
+++ b/templates/web/base/report/new/login_success_form.html
@@ -0,0 +1,18 @@
+<h1>[% loc('Report your problem') %]</h1>
+
+<p class='form-success'>[% loc('You have successfully signed in; please check and confirm your details are accurate:') %]</p>
+
+[% TRY %][% PROCESS 'report/new/sidebar.html' %][% CATCH file %][% END %]
+
+[% INCLUDE 'errors.html' %]
+
+<fieldset>
+ <div id="problem_form">
+ [% IF c.user_exists %]
+ [% PROCESS "report/new/form_user_loggedin.html" %]
+ [% ELSE %]
+ [% PROCESS "report/new/form_user_loggedout.html" %]
+ [% END %]
+ [% PROCESS 'report/new/form_report.html' %]
+ </div>
+</fieldset>
diff --git a/templates/web/base/report/new/oauth_email_form.html b/templates/web/base/report/new/oauth_email_form.html
new file mode 100644
index 000000000..c897aaeea
--- /dev/null
+++ b/templates/web/base/report/new/oauth_email_form.html
@@ -0,0 +1,26 @@
+<h1>[% loc('Report your problem') %]</h1>
+
+<p class="form-error">
+ [% loc('Please note your report has <strong>not yet been sent</strong>.') %]
+ [% loc('We need your email address, please give it below.') %]
+</p>
+
+[% TRY %][% PROCESS 'report/new/sidebar.html' %][% CATCH file %][% END %]
+
+[% INCLUDE 'errors.html' %]
+
+<fieldset>
+ <div id="problem_form">
+ [% PROCESS 'report/new/form_user_loggedout_email.html' required=1 %]
+
+ <div id="form_sign_in">
+ <h3>[% loc("Now to submit your report&hellip;") %]</h3>
+ <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
+ [% PROCESS 'report/new/form_user_loggedout_by_email.html' %]
+ [% PROCESS 'report/new/form_user_loggedout_password.html' %]
+ </div>
+
+ <input type="hidden" name="oauth_need_email" value="1">
+ [% PROCESS 'report/new/form_report.html' %]
+ </div>
+</fieldset>
diff --git a/templates/web/fixmystreet/report/new/sidebar.html b/templates/web/base/report/new/sidebar.html
index 083c7db70..083c7db70 100644
--- a/templates/web/fixmystreet/report/new/sidebar.html
+++ b/templates/web/base/report/new/sidebar.html
diff --git a/templates/web/base/report/photo.html b/templates/web/base/report/photo.html
index 094f677d8..52e6ed64a 100644
--- a/templates/web/base/report/photo.html
+++ b/templates/web/base/report/photo.html
@@ -1,21 +1,15 @@
[% IF c.cobrand.allow_photo_display(object) && object.photo %]
- [% IF object.can('get_photoset') %]
- [% FOR photo IN object.get_photoset(c).images %]
+ [% IF object.photos.size > 1 %]
+ <div class="update-img-set">
+ [% END %]
+ [% FOR photo IN object.photos %]
<div class="update-img">
- <a href="[% c.cobrand.base_url %]/photo/[% object.id %].[% loop.index %].full.jpeg?[% photo.0 %]" rel="fancy">
- <img alt="Photo of this report" src="[% c.cobrand.base_url %]/photo/[% object.id %].[% loop.index %].jpeg?[% photo.0 %]">
+ <a href="[% c.cobrand.base_url %][% photo.url_full %]" rel="fancy">
+ <img alt="Photo of this report" src="[% c.cobrand.base_url %][% photo.url %]">
<span>zoom</span></a>
</div>
- [% END %]
- [% ELSE %]
- [%# e.g. comments %]
- [% photo = object.get_photo_params %]
- <div class="update-img">
- [% IF photo.url_full %]<a href="[% photo.url_full %]" rel="fancy">[% END %]
- <img alt="Photo of this report"
- [%- IF photo.height %]height="[% photo.height %]" width="[% photo.width %]"[% END -%]
- src="[% photo.url %]">
- [%- IF photo.url_full %]<span>zoom</span></a>[% END %]
+ [% END %]
+ [% IF object.photos.size > 1 %]
</div>
- [% END %]
+ [% END %]
[% END %]
diff --git a/templates/web/fixmystreet/report/public_label.html b/templates/web/base/report/public_label.html
index 2e00a79d2..2e00a79d2 100644
--- a/templates/web/fixmystreet/report/public_label.html
+++ b/templates/web/base/report/public_label.html
diff --git a/templates/web/base/report/update-form.html b/templates/web/base/report/update-form.html
index 3115855d3..3e0ac890b 100644
--- a/templates/web/base/report/update-form.html
+++ b/templates/web/base/report/update-form.html
@@ -1,166 +1,42 @@
-<div id="update_form">
+[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body) %]
+[% RETURN IF NOT allow_creation %]
+<div id="update_form">
+ [% IF NOT login_success AND NOT oauth_need_email %]
<h2>[% loc( 'Provide an update') %]</h2>
- [% IF c.cobrand.moniker != 'emptyhomes' %]
- <p>
- <small>[% loc( 'Please note that updates are not sent to the council. If you leave your name it will be public. Your information will only be used in accordance with our <a href="/faq#privacy">privacy policy</a>' ) %]</small>
- </p>
+ [% IF c.cobrand.moniker != 'emptyhomes' AND c.cobrand.moniker != 'stevenage' %]
+ <div class="general-notes">
+ [% INCLUDE 'report/updates-sidebar-notes.html' %]
+ </div>
[% END %]
+ [% END %]
[% INCLUDE 'errors.html' %]
- <form method="post" action="[% c.uri_for( '/report/update' ) %]" name="updateForm" class="fieldset validate"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %]>
-
- <input type="hidden" name="submit_update" value="1">
- <input type="hidden" name="id" value="[% problem.id | html %]">
-
- [% IF field_errors.update %]
- <div class='form-error'>[% field_errors.update %]</div>
- [% END %]
- <div class="form-field">
- <label for="form_update">[% loc( 'Update:' ) %]</label>
- <textarea name="update" id="form_update" rows="7" cols="30" required>[% update.text | html %]</textarea>
- </div>
-
- [% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
- <div class="form-field">
- <label for="form_state">[% loc( 'State:' ) %]</label>
- <select name="state" id="form_state">
- [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
- loc('Investigating')], ['action scheduled', loc('Action Scheduled')],
- ['in progress', loc('In Progress')], ['duplicate', loc('Duplicate')],
- ['unable to fix', loc('Unable to fix')], ['not responsible', loc('Not Responsible')],
- ['fixed', loc('Fixed')] ] %]
- <option [% 'selected ' IF state.0 == problem.state %] value="[% state.0 %]">[% state.1 %]</option>
- [% END %]
- </select>
- </div>
- [% ELSE %]
- [% IF problem.is_fixed AND ((c.user_exists AND c.user.id == problem.user_id) OR alert_to_reporter) %]
- <div class="checkbox">
- <input type="checkbox" name="reopen" id="form_reopen" value="1"[% ' checked' IF update.mark_open %]>
- <label class="inline" for="form_reopen">[% loc('This problem has not been fixed') %]</label>
+ <form method="post" action="[% c.uri_for( '/report/update' ) %]" id="form_update_form" name="updateForm" class="validate"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %]>
+ <fieldset>
+ [% IF NOT login_success AND NOT oauth_need_email %]
+ [% INCLUDE 'report/update/form_update.html' %]
+ [% END %]
+ [% IF c.user_exists %]
+ [% INCLUDE 'report/update/form_name.html' %]
+ <div class="cf"><input class="final-submit green-btn" type="submit" id="update_post" value="[% loc('Post') %]"></div>
+ [% ELSIF oauth_need_email %]
+ [% INCLUDE 'report/update/form_user_loggedout_email.html' required = 1 %]
+ <div id="form_sign_in">
+ <h3>[% loc("Now to submit your update&hellip;") %]</h3>
+ <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
+ [% INCLUDE 'report/update/form_user_loggedout_by_email.html' %]
+ [% INCLUDE 'report/update/form_user_loggedout_password.html' %]
+ <input type="hidden" name="oauth_need_email" value="1">
</div>
- [% ELSIF !problem.is_fixed %]
- <div class="checkbox">
- <input type="checkbox" name="fixed" id="form_fixed" value="1"[% ' checked' IF update.mark_fixed %]>
- <label class="inline" for="form_fixed">[% loc('This problem has been fixed') %]</label>
- </div>
- [% END %]
- [% END %]
-
- [% IF c.cobrand.allow_photo_upload %]
- [% IF field_errors.photo %]
- <div class='form-error'>[% field_errors.photo %]</div>
- [% END %]
- <div id="fileupload_normalUI">
- [% IF upload_fileid %]
- <p>[% loc('You have already attached a photo to this update, attaching another one will replace it.') %]</p>
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
- <label for="form_photo">[% loc('Photo:') %]</label>
- <input type="file" name="photo" id="form_photo" style="width:20em">
- </div>
- [% END %]
-
-[% IF c.user_exists %]
-
- [% INCLUDE name %]
-
- <div class="checkbox">
- <input type="submit" id="update_post" value="[% loc('Post') %]">
- </div>
-
-[% ELSE %]
-
- [% IF field_errors.email %]
- <div class='form-error'>[% field_errors.email %]</div>
- [% END %]
- <div class="form-field">
- <label for="form_rznvy">[% loc('Your email:' ) %]</label>
- <input type="email" name="rznvy" id="form_rznvy" value="[% update.user.email | html %]" size="30" required>
- </div>
-
-<div id="form_sign_in">
- <h3>[% loc("Now to submit your update&hellip;") %]</h3>
- <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
-
- <div id="form_sign_in_yes">
-
- [% IF field_errors.password %]
- <div class='form-error'>[% field_errors.password %]</div>
- [% END %]
-
- <p>
- <label class="n" for="password_sign_in">[% loc('<strong>Yes</strong> I have a password') %]</label>
- <input type="password" name="password_sign_in" id="password_sign_in" value="" size="25">
- </p>
-
- <div class="fieldset">
-
- <p>
- <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
- <label class="n" for="remember_me">
- [% loc('Keep me signed in on this computer') %]
- </label>
- </p>
-
- <p>
- <input type="submit" name="submit_sign_in" id="submit_sign_in" value="[% loc('Post') %]">
- </p>
-
- </div>
-
- </div>
- <div id="form_sign_in_no">
-
- <p>[% loc('<strong>No</strong>, let me confirm my update by email:') %]</p>
-
- <div class="fieldset">
-
- [% INCLUDE name %]
-
- <div class="form-field">
- <label for="password_register">[% loc('Enter a new password:') %]</label>
- <input type="password" name="password_register" id="password_register" value="" size="25">
- </div>
-
- <p style="clear:both"><small>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</small></p>
-
- <p>
- <input type="submit" name="submit_register" id="submit_register" value="[% loc('Post') %]">
- </p>
-
- </div>
-
- </div>
-
-</div>
-
-[% END %]
-
+ [% ELSE %]
+ [% INCLUDE 'report/update/form_user_loggedout.html' %]
+ [% END %]
+ [% IF login_success OR oauth_need_email %]
+ [% INCLUDE 'report/update/form_update.html' %]
+ [% END %]
+ </fieldset>
</form>
</div>
-
-[% BLOCK name %]
- [% IF field_errors.name %]
- <div class='form-error'>[% field_errors.name %]</div>
- [% END %]
-
- <div>
- <label for="form_name">[% loc('Your name:') %]</label>
- <input type="text" name="name" id="form_name" value="[% update.name || c.user.name | html %]" size="25">
- </div>
-
- <div class="checkbox">
- <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF update.anonymous==0 OR (c.cobrand.default_show_name AND update.anonymous=='') %]>
- <label for="form_may_show_name">[% loc('Show my name publicly') %]</label>
- <small>[% loc('(we never show your email)') %]</small>
- </div>
-
- <div class="checkbox">
- <input type="checkbox" name="add_alert" id="form_add_alert" value="1"[% ' checked' IF add_alert %]>
- <label class="inline" for="form_add_alert">[% loc( 'Alert me to future updates' ) %]</label>
- </div>
-[% END %]
diff --git a/templates/web/base/report/update.html b/templates/web/base/report/update.html
index a5fd97870..a09913d39 100644
--- a/templates/web/base/report/update.html
+++ b/templates/web/base/report/update.html
@@ -1,24 +1,70 @@
+[% moderating = c.user && c.user.has_permission_to('moderate', problem.bodies_str) %]
+
[% IF loop.first %]
-<div id="updates">
- <h2 class="problem-update-list-header">[% loc('Updates') %]</h2>
+<section class="full-width">
+ <h4 class="static-with-rule">[% loc('Updates') %]</h4>
+ <ul class="item-list item-list--updates">
[% END %]
- <div><div class="problem-update"><p><a name="update_[% update.id %]"></a><em>
- [% INCLUDE meta_line %]
- </em></p></div>
-[% IF NOT update.whenanswered %]
-
- [% INCLUDE 'report/photo.html' object=update %]
-
- <div class="update-text">
- [% add_links( update.text ) | html_para %]
-
- [% IF c.cobrand.allow_update_reporting %]
- <p align="right">
- <small><a rel="nofollow" class="unsuitable-problem" href="[% c.uri_for( '/contact', { id => update.problem_id, update_id => update.id } ) %]">[% loc('Offensive? Unsuitable? Tell us') %]</a></small>
- </p>
- [% END %]
- </div>
+ <li class="item-list__item item-list__item--updates">
+ [% IF moderating; original_update = update.moderation_original_data %]
+ <form method="post" action="/moderate/report/[% problem.id %]/update/[% update.id %]">
+ <input type="button" class="btn moderate moderate-display" value="moderate">
+ <div class="moderate-edit">
+ <input type="checkbox" class="hide-document" name="update_hide">
+ <label for="update_hide">Hide update completely?</label>
+ <br />
+ <input type="checkbox" name="update_show_name" [% update.anonymous ? '' : 'checked' %]>
+ <label for="update_show_name">Show name publicly?</label>
+ [% IF update.photo or original_update.photo %]
+ <br />
+ <input type="checkbox" name="update_show_photo" [% update.photo ? 'checked' : '' %]>
+ <label for="update_show_photo">Show Photo?</label>
+ [% END %]
+ </div>
+ [% END %]
+ <div class="item-list__update-wrap">
+ [% IF update.whenanswered %]
+ <div class="item-list__update-text">
+ <p class="meta-2"> [% INCLUDE meta_line %] </p>
+ </div>
+ [% ELSE %]
+ <a name="update_[% update.id %]" class="internal-link-fixed-header"></a>
+ [% INCLUDE 'report/photo.html' object=update %]
+ <div class="item-list__update-text">
+ <div class="moderate-display">
+ [% add_links( update.text ) | html_para %]
+ </div>
+ [% IF moderating %]
+ <div class="moderate-edit">
+ [% IF update.text != original.detail %]
+ <input type="checkbox" name="update_revert_detail" class="revert-textarea">
+ <label for="update_revert_detail">Revert to original</label>
+ [% END %]
+ <textarea name="update_detail">[% add_links( update.text ) %]</textarea>
+ </div>
+ [% END %]
+ <p class="meta-2">
+ [% INCLUDE meta_line %]
+ [% mlog = update.latest_moderation_log_entry(); IF mlog %]
+ <br /> Moderated by [% mlog.user.from_body.name %] at [% prettify_dt(mlog.whenedited) %]
+ [% END %]
+ </p>
+ </div>
+ [% END %]
+ </div>
+ [% IF moderating %]
+ <div class="moderate-edit">
+ <label for="moderation_reason">Moderation reason:</label>
+ <input type="text" name="moderation_reason"
+ placeholder="Describe why you are moderating this">
+ <input type="submit" class="red-btn" value="moderate it">
+ <input type="button" class="btn cancel" value="cancel">
+ </div>
+ </form>
+ [% END %]
+ </li>
+[% IF loop.last %]
+ </ul>
+</section>
[% END %]
- </div>
-[% '</div>' IF loop.last %]
diff --git a/templates/web/base/report/update/form_name.html b/templates/web/base/report/update/form_name.html
new file mode 100644
index 000000000..4cb3e516c
--- /dev/null
+++ b/templates/web/base/report/update/form_name.html
@@ -0,0 +1,22 @@
+[% INCLUDE 'report/new/extra_name.html' %]
+
+[% PROCESS 'user/_anonymity.html' anonymous = update.anonymous %]
+
+<label for="form_name">[% loc('Name') %]</label>
+[% IF field_errors.name %]
+ <p class='form-error'>[% field_errors.name %]</p>
+[% END %]
+
+<input type="text"
+ [%- IF c.cobrand.moniker.match('fixmystreet|bromley') AND problem.bodies_str == '2482' %]class="validName" [% END -%]
+ name="name" id="form_name" value="[% update.name || c.user.name | html %]" placeholder="[% loc('Your name') %]">
+
+<div class="checkbox-group">
+ <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF name_public %]>
+ <label class="inline" for="form_may_show_name">[% loc('Show my name publicly') %]</label>
+</div>
+
+<div class="checkbox-group">
+ <input type="checkbox" name="add_alert" id="form_add_alert" value="1"[% ' checked' IF add_alert %]>
+ <label class="inline" for="form_add_alert">[% loc( 'Alert me to future updates' ) %]</label>
+</div>
diff --git a/templates/web/base/report/update/form_update.html b/templates/web/base/report/update/form_update.html
new file mode 100644
index 000000000..f7072ae18
--- /dev/null
+++ b/templates/web/base/report/update/form_update.html
@@ -0,0 +1,58 @@
+<input type="hidden" name="submit_update" value="1">
+<input type="hidden" name="id" value="[% problem.id | html %]">
+
+[% IF c.cobrand.allow_photo_upload %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <label for="form_photo">[% loc('Photo') %]</label>
+
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
+
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this update. Note that you can attach a maximum of 3 to this update (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
+ [% END %]
+ [% END %]
+ <input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
+ <input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
+ <input type="file" name="photo3" id="form_photo3">
+ </div>
+[% END %]
+
+<label for="form_update">[% loc( 'Update' ) %]</label>
+[% IF field_errors.update %]
+ <div class='form-error'>[% field_errors.update %]</div>
+[% END %]
+<textarea rows="7" cols="30" name="update" id="form_update" placeholder="[% loc('Please write your update here') %]" required>[% update.text | html %]</textarea>
+
+[% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
+ <label for="form_state">[% loc( 'State' ) %]</label>
+ <select name="state" id="form_state">
+ [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
+ loc('Investigating')], ['action scheduled', loc('Action Scheduled')],
+ ['in progress', loc('In Progress')], ['duplicate', loc('Duplicate')],
+ ['unable to fix', loc('Unable to fix')], ['not responsible', loc('Not Responsible')],
+ ['fixed', loc('Fixed')] ] %]
+ <option [% 'selected ' IF state.0 == problem.state %] value="[% state.0 %]">[% state.1 %]</option>
+ [% END %]
+ </select>
+[% ELSE %]
+ [% IF problem.is_fixed AND ((c.user_exists AND c.user.id == problem.user_id) OR alert_to_reporter) %]
+
+ <input type="checkbox" name="reopen" id="form_reopen" value="1"[% ' checked' IF update.mark_open %]>
+ <label class="inline" for="form_reopen">[% loc('This problem has not been fixed') %]</label>
+
+ [% ELSIF !problem.is_fixed %]
+
+ <div class="checkbox-group">
+ <input type="checkbox" name="fixed" id="form_fixed" value="1"[% ' checked' IF update.mark_fixed %]>
+ <label class="inline" for="form_fixed">[% loc('This problem has been fixed') %]</label>
+ </div>
+
+ [% END %]
+[% END %]
diff --git a/templates/web/base/report/update/form_user_loggedout.html b/templates/web/base/report/update/form_user_loggedout.html
new file mode 100644
index 000000000..4176633f1
--- /dev/null
+++ b/templates/web/base/report/update/form_user_loggedout.html
@@ -0,0 +1,24 @@
+[% IF c.config.FACEBOOK_APP_ID %]
+ <h3>[% loc("Now to submit your update&hellip;") %]</h3>
+ <div class="form-box">
+ <button name="facebook_sign_in" id="facebook_sign_in" value="facebook_sign_in" class="btn btn--block btn--social btn--facebook">
+ <img alt="" src="/i/facebook-icon-32.png" width="17" height="32">
+ Log in with Facebook
+ </button>
+ </div>
+ <div id="js-social-email-hide">
+ [% INCLUDE 'report/update/form_user_loggedout_email.html' required=0 %]
+[% ELSE %]
+ [% INCLUDE 'report/update/form_user_loggedout_email.html' required=1 %]
+ <h3>[% loc("Now to submit your update&hellip;") %]</h3>
+[% END %]
+
+<div id="form_sign_in">
+ <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
+ [% INCLUDE 'report/update/form_user_loggedout_password.html' %]
+ [% INCLUDE 'report/update/form_user_loggedout_by_email.html' %]
+</div>
+
+[% IF c.config.FACEBOOK_APP_ID %]
+ </div>
+[% END %]
diff --git a/templates/web/base/report/update/form_user_loggedout_by_email.html b/templates/web/base/report/update/form_user_loggedout_by_email.html
new file mode 100644
index 000000000..672f76ed9
--- /dev/null
+++ b/templates/web/base/report/update/form_user_loggedout_by_email.html
@@ -0,0 +1,17 @@
+<div id="form_sign_in_no" class="form-box">
+ <h5>[% loc('<strong>No</strong> Let me confirm my update by email') %]</h5>
+
+ [% INCLUDE 'report/update/form_name.html' %]
+
+ <label for="password_register">[% loc('Password (optional)') %]</label>
+
+ <div class="general-notes">
+ <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
+ </div>
+
+ <div class="form-txt-submit-box">
+ <input type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
+ <input class="green-btn" type="submit" name="submit_register" id="submit_register" value="[% loc('Post') %]">
+ </div>
+
+</div>
diff --git a/templates/web/base/report/update/form_user_loggedout_email.html b/templates/web/base/report/update/form_user_loggedout_email.html
new file mode 100644
index 000000000..95a3b5578
--- /dev/null
+++ b/templates/web/base/report/update/form_user_loggedout_email.html
@@ -0,0 +1,9 @@
+<label for="form_rznvy">[% loc('Your email' ) %]
+<span class="muted">([% loc('We never show your email') %])</span>
+</label>
+[% IF field_errors.email %]
+ <p class='form-error'>[% field_errors.email %]</p>
+[% END %]
+<input type="email" name="rznvy" id="form_rznvy" value="[% update.user.email | html %]" placeholder="[% loc('Your email address' ) %]"
+ [% IF required %]required[% END %]
+ class="required">
diff --git a/templates/web/base/report/update/form_user_loggedout_password.html b/templates/web/base/report/update/form_user_loggedout_password.html
new file mode 100644
index 000000000..103df1098
--- /dev/null
+++ b/templates/web/base/report/update/form_user_loggedout_password.html
@@ -0,0 +1,23 @@
+<div id="form_sign_in_yes" class="form-box">
+ <h5>[% loc('<strong>Yes</strong> I have a password') %]</h5>
+
+ <label class="hidden-js n" for="password_sign_in">[% loc('Yes I have a password') %]</label>
+ [% IF field_errors.password %]
+ <p class='form-error'>[% field_errors.password %]</p>
+ [% END %]
+ <div class="form-txt-submit-box">
+ <input type="password" name="password_sign_in" id="password_sign_in" value="" placeholder="[% loc('Your password') %]">
+ <input class="green-btn" type="submit" name="submit_sign_in" id="submit_sign_in" value="[% loc('Post') %]">
+ </div>
+
+ <div class="checkbox-group">
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <label class="inline n" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
+ </div>
+
+ <div class="general-notes">
+ <p><strong>[% loc('Forgotten your password?') %]</strong>
+ [% loc('Confirm by email instead, providing a new password at that point. When you confirm, your password will be updated.') %]</p>
+ </div>
+
+</div>
diff --git a/templates/web/base/report/updates-sidebar-notes.html b/templates/web/base/report/updates-sidebar-notes.html
new file mode 100644
index 000000000..1426e4d71
--- /dev/null
+++ b/templates/web/base/report/updates-sidebar-notes.html
@@ -0,0 +1,4 @@
+<p>
+ [% loc( 'Please note that updates are not sent to the council.' ) %]
+ [% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]
+</p>
diff --git a/templates/web/base/static/about-en-gb.html b/templates/web/base/static/about-en-gb.html
deleted file mode 100644
index 9c319f051..000000000
--- a/templates/web/base/static/about-en-gb.html
+++ /dev/null
@@ -1,9 +0,0 @@
-[% INCLUDE 'header.html', title => loc('About us') %]
-
-<h1>[% loc('About us') %]</h1>
-
-<h2>FixMyStreet.com</h2>
-
-[%# FIXME - put in blurb here %]
-
-[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/status/index.html b/templates/web/base/status/index.html
index 9ed4292b7..34bf62056 100644
--- a/templates/web/base/status/index.html
+++ b/templates/web/base/status/index.html
@@ -7,13 +7,6 @@
<dd>[% git_version || 'unknown' %]</dd>
</dl>
-<ul>
- <li>[% tprintf( loc('<strong>%d</strong> live problems'), total_problems_live ) %]</li>
- <li>[% tprintf( loc('%d live updates'), comments.confirmed || 0 ) %]</li>
- <li>[% tprintf( loc('%d confirmed alerts, %d unconfirmed'), alerts.1, alerts.0) %]</li>
- <li>[% tprintf( loc('%d questionnaires sent &ndash; %d answered (%s%%)'), questionnaires.total, questionnaires.1, questionnaires_pc) %]</li>
- <li>[% tprintf( '%d bodies', total_bodies) %],
- [% tprintf( loc('%d council contacts &ndash; %d confirmed, %d unconfirmed'), contacts.total, contacts.1, contacts.0) %]</li>
-</ul>
+[% INCLUDE 'status/stats.html' %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/status/stats.html b/templates/web/base/status/stats.html
new file mode 100644
index 000000000..f847db2ef
--- /dev/null
+++ b/templates/web/base/status/stats.html
@@ -0,0 +1,28 @@
+[% USE Number.Format %]
+
+[%-
+ total_problems_live = total_problems_live | format_number;
+ total_problems_users = total_problems_users | format_number;
+ comments_confirmed = (comments.confirmed || 0) | format_number;
+ alerts_1 = alerts.1 | format_number;
+ alerts_0 = alerts.0 | format_number;
+ questionnaires_total = questionnaires.total | format_number;
+ questionnaires_1 = questionnaires.1 | format_number;
+ total_bodies = total_bodies | format_number;
+ contacts_total = contacts.total | format_number;
+ contacts_1 = contacts.1 | format_number;
+ contacts_0 = contacts.0 | format_number;
+-%]
+
+<ul>
+ <li>[% tprintf( loc('<strong>%s</strong> live problems'), decode(total_problems_live) ) %]
+ [% IF admin_include_users %]
+ [% tprintf( loc('from %s different users'), decode(total_problems_users) ) %]
+ [% END %]
+ </li>
+ <li>[% tprintf( loc('%s live updates'), decode(comments_confirmed) ) %]</li>
+ <li>[% tprintf( loc('%s confirmed alerts, %s unconfirmed'), decode(alerts_1), decode(alerts_0)) %]</li>
+ <li>[% tprintf( loc('%s questionnaires sent &ndash; %s answered (%s%%)'), decode(questionnaires_total), decode(questionnaires_1), questionnaires_pc) %]</li>
+ <li>[% tprintf( loc('%s bodies'), decode(total_bodies)) %],
+ [% tprintf( loc('%s council contacts &ndash; %s confirmed, %s unconfirmed'), decode(contacts_total), decode(contacts_1), decode(contacts_0)) %]</li>
+</ul>
diff --git a/templates/web/base/tokens/error.html b/templates/web/base/tokens/error.html
index e3fa6c170..726ec1598 100644
--- a/templates/web/base/tokens/error.html
+++ b/templates/web/base/tokens/error.html
@@ -1,9 +1,9 @@
-[% INCLUDE 'header.html', title => loc('Error') %]
+[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Error') %]
+[% contact_url = c.uri_for('/contact') %]
-<h1>[% loc('Error') %]</h1>
-
-[% contact_url = c.uri_for('/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>
+<div class="confirmation-header confirmation-header--failure">
+ <h1>[% loc('Error') %]</h1>
+ <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>
+</div>
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/user/_anonymity.html b/templates/web/base/user/_anonymity.html
new file mode 100644
index 000000000..cc3630f16
--- /dev/null
+++ b/templates/web/base/user/_anonymity.html
@@ -0,0 +1,11 @@
+[%
+ IF c.cobrand.default_show_name AND anonymous=='';
+ IF c.user_exists;
+ SET name_public = NOT c.user.latest_anonymity;
+ ELSE;
+ SET name_public = 1;
+ END;
+ ELSE;
+ SET name_public = anonymous==0;
+ END
+%]
diff --git a/templates/web/bromley/faq/faq-en-gb.html b/templates/web/bromley/about/faq-en-gb.html
index 47b8c05f7..47b8c05f7 100755
--- a/templates/web/bromley/faq/faq-en-gb.html
+++ b/templates/web/bromley/about/faq-en-gb.html
diff --git a/templates/web/bromley/report/_item.html b/templates/web/bromley/report/_item.html
index 3bd8a8686..2540aec98 100644
--- a/templates/web/bromley/report/_item.html
+++ b/templates/web/bromley/report/_item.html
@@ -1,9 +1,7 @@
<li class="item-list__item item-list--reports__item item-list__item--with-pin [% c.cobrand.pin_colour(problem) %]">
<a class="[% problem.category %]" href="[% c.uri_for('/report', problem.id ) %]">
- [% IF problem.photo;
- photo = problem.get_photo_params
- %]
- <img class="img" height="60" width="90" src="[% photo.url_fp %]" alt="">
+ [% IF problem.photo %]
+ <img class="img" height="60" width="90" src="[% problem.photos.first.url_fp %]" alt="">
[% END %]
<span>[% problem.title | html %]</span><br />
<small>[% prettify_dt( problem.confirmed, 1 ) %]
diff --git a/templates/web/bromley/report/banner.html b/templates/web/bromley/report/banner.html
new file mode 100644
index 000000000..ef9379f52
--- /dev/null
+++ b/templates/web/bromley/report/banner.html
@@ -0,0 +1,15 @@
+[% USE date %]
+
+[% BLOCK banner %]
+ <div class="banner">
+ <p id="[% id %]">[% text %]</p>
+ </div>
+[% END %]
+
+[% IF problem.is_fixed %]
+ [% INCLUDE banner, id = 'fixed', text = loc('Fixed') %]
+[% END %]
+
+[% IF problem.is_closed %]
+ [% INCLUDE banner, id = 'closed', text = loc('Closed') %]
+[% END %]
diff --git a/templates/web/bromley/report/display.html b/templates/web/bromley/report/display.html
index 75b7700a5..5430b25e2 100644
--- a/templates/web/bromley/report/display.html
+++ b/templates/web/bromley/report/display.html
@@ -60,6 +60,29 @@
<input type="hidden" name="submit_update" value="1">
<input type="hidden" name="id" value="[% problem.id | html %]">
+ [% IF c.cobrand.allow_photo_upload %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <label for="form_photo">[% loc('Photo') %]</label>
+
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
+
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this update. Note that you can attach a maximum of 3 to this update (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
+ [% END %]
+ [% END %]
+ <input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
+ <input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
+ <input type="file" name="photo3" id="form_photo3">
+ </div>
+ [% END %]
+
<label for="form_update">[% loc( 'Update' ) %]</label>
[% IF field_errors.update %]
<div class='form-error'>[% field_errors.update %]</div>
@@ -98,21 +121,6 @@
[% END %]
[% END %]
- [% IF c.cobrand.allow_photo_upload %]
- <div id="fileupload_normalUI">
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <p>[% loc('You have already attached a photo to this update, attaching another one will replace it.') %]</p>
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
- <label for="form_photo">[% loc('Photo') %]</label>
- [% IF field_errors.photo %]
- <p class='form-error'>[% field_errors.photo %]</p>
- [% END %]
- <input type="file" name="photo" id="form_photo">
- </div>
- [% END %]
-
[% IF c.user_exists %]
[% INCLUDE name %]
diff --git a/templates/web/bromley/report/new/fill_in_details_form.html b/templates/web/bromley/report/new/fill_in_details_form.html
index 6bf077322..858da1a07 100644
--- a/templates/web/bromley/report/new/fill_in_details_form.html
+++ b/templates/web/bromley/report/new/fill_in_details_form.html
@@ -48,6 +48,31 @@
[% END %]
<input type="text" value="[% report.title | html %]" name="title" id="form_title" placeholder="[% loc('Provide a title') %]" required>
+ [% IF c.cobrand.allow_photo_upload %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <label for="form_photo">[% loc('Photo') %]</label>
+
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
+
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this report. Note that you can attach a maximum of 3 to this report (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
+ [% END %]
+ [% END %]
+ <input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
+ <input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
+ <input type="file" name="photo3" id="form_photo3">
+ </div>
+ [% END %]
+
+ [% TRY %][% PROCESS 'report/new/after_photo.html' %][% CATCH file %][% END %]
+
<label for="form_detail">[% loc('Details') %]</label>
[% IF report.used_map %]
<p>
@@ -62,29 +87,6 @@
[% PROCESS "report/new/category_wrapper.html" %]
- [% IF c.cobrand.allow_photo_upload %]
- [% IF field_errors.photo %]
- <p class='form-error'>[% field_errors.photo %]</p>
- [% END %]
-
-
- [% IF upload_fileid || report.photo %]
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
-
- <p>[% loc('You have already attached a photo to this report, attaching another one will replace it.') %]</p>
-
- [% IF report.photo %]
- <img align="right" src="/photo/[% report.id %].jpeg">
- [% END %]
- [% END %]
-
- <label for="form_photo">[% loc('Photo') %]</label>
- <input type="file" name="photo" id="form_photo">
- [% END %]
-
[% IF c.user_exists %]
<div class="form-box">
[% INCLUDE 'report/new/extra_name.html' %]
diff --git a/templates/web/eastsussex/faq/faq-en-gb.html b/templates/web/eastsussex/about/faq-en-gb.html
index 7356389cd..7356389cd 100755
--- a/templates/web/eastsussex/faq/faq-en-gb.html
+++ b/templates/web/eastsussex/about/faq-en-gb.html
diff --git a/templates/web/eastsussex/report/new/after_name.html b/templates/web/eastsussex/report/new/after_name.html
index 26c213c1d..8b0fc9816 100644
--- a/templates/web/eastsussex/report/new/after_name.html
+++ b/templates/web/eastsussex/report/new/after_name.html
@@ -1,5 +1,3 @@
- <span id="name-public-warning" class="label-warning public-warning name-warning"
- [% 'style="display:none"' UNLESS name_public %]
- >
+ <span id="name-public-warning" class="label-warning public-warning name-warning">
[% loc('public') %]
</span>
diff --git a/templates/web/eastsussex/report/update-form.html b/templates/web/eastsussex/report/update-form.html
index af966f417..4d0c2529f 100644
--- a/templates/web/eastsussex/report/update-form.html
+++ b/templates/web/eastsussex/report/update-form.html
@@ -60,6 +60,29 @@
<input type="hidden" name="submit_update" value="1">
<input type="hidden" name="id" value="[% problem.id | html %]">
+ [% IF c.cobrand.allow_photo_upload %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ <label for="form_photo">[% loc('Photo') %]</label>
+
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
+
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this update. Note that you can attach a maximum of 3 to this update (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
+ [% END %]
+ [% END %]
+ <input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
+ <input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
+ <input type="file" name="photo3" id="form_photo3">
+ </div>
+ [% END %]
+
<label for="form_update">[% loc( 'Update:' ) %]
<span class="label-warning public-warning">
[% loc('public') %]
@@ -97,21 +120,6 @@
[% END %]
[% END %]
- [% IF c.cobrand.allow_photo_upload %]
- <div id="fileupload_normalUI">
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <p>[% loc('You have already attached a photo to this update, attaching another one will replace it.') %]</p>
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
- <label for="form_photo">[% loc('Photo') %]</label>
- [% IF field_errors.photo %]
- <p class='form-error'>[% field_errors.photo %]</p>
- [% END %]
- <input type="file" name="photo" id="form_photo">
- </div>
- [% END %]
-
[% IF c.user_exists %]
[% INCLUDE name %]
@@ -187,9 +195,7 @@
[% name_public = update.anonymous==0 OR (c.cobrand.default_show_name AND update.anonymous=='') %]
<label for="form_name">[% loc('Name') %]
- <span id="name-public-warning" class="label-warning public-warning name-warning"
- [% 'style="display:none"' UNLESS name_public %]
- >
+ <span id="name-public-warning" class="label-warning public-warning name-warning">
[% loc('public') %]
</span>
</label>
diff --git a/templates/web/emptyhomes/static/about-cy.html b/templates/web/emptyhomes/about/about-cy.html
index dab6cefea..dab6cefea 100644
--- a/templates/web/emptyhomes/static/about-cy.html
+++ b/templates/web/emptyhomes/about/about-cy.html
diff --git a/templates/web/emptyhomes/static/about-en-gb.html b/templates/web/emptyhomes/about/about-en-gb.html
index e9eeea103..e9eeea103 100644
--- a/templates/web/emptyhomes/static/about-en-gb.html
+++ b/templates/web/emptyhomes/about/about-en-gb.html
diff --git a/templates/web/emptyhomes/faq/faq-cy.html b/templates/web/emptyhomes/about/faq-cy.html
index 842f0c028..842f0c028 100644
--- a/templates/web/emptyhomes/faq/faq-cy.html
+++ b/templates/web/emptyhomes/about/faq-cy.html
diff --git a/templates/web/emptyhomes/faq/faq-en-gb.html b/templates/web/emptyhomes/about/faq-en-gb.html
index 4b3e71ce2..4b3e71ce2 100755
--- a/templates/web/emptyhomes/faq/faq-en-gb.html
+++ b/templates/web/emptyhomes/about/faq-en-gb.html
diff --git a/templates/web/emptyhomes/front/stats.html b/templates/web/emptyhomes/front/stats.html
index c956b0e2e..5ecc415bf 100644
--- a/templates/web/emptyhomes/front/stats.html
+++ b/templates/web/emptyhomes/front/stats.html
@@ -1,8 +1,7 @@
-[% USE Comma %]
[% stats = c.cobrand.front_stats_data %]
<div id="front_stats">
- <div>[% tprintf( loc("<big>%s</big> reports"), stats ) | comma %]</div>
+ <div>[% tprintf( loc("<big>%s</big> reports"), stats ) %]</div>
<!-- <div><a href="/local/">[% loc('Find latest local and national news') %]</a></div> -->
<div id="eha-app-link"><a href="https://itunes.apple.com/gb/app/empty-homes-spotter/id482550587?mt=8">Get the Empty Homes Spotter App for iPhone</a></div>
</div>
diff --git a/templates/web/emptyhomes/index.html b/templates/web/emptyhomes/index.html
index ca70d1d9c..1d17c3423 100644
--- a/templates/web/emptyhomes/index.html
+++ b/templates/web/emptyhomes/index.html
@@ -45,11 +45,9 @@
[% IF recent_photos.size %]
<p id="front_photos">
- [% FOREACH p IN recent_photos;
- photo = p.get_photo_params;
- %]
+ [% FOREACH p IN recent_photos %]
<a href="/report/[% p.id %]"><img border="0" height="100"
- src="[% photo.url_tn %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a>
+ src="[% p.photos.first.url_tn %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a>
[% END %]
</p>
[% END %]
diff --git a/templates/web/fiksgatami/faq/faq-nb.html b/templates/web/fiksgatami/about/faq-nb.html
index da35cb03c..da35cb03c 100644
--- a/templates/web/fiksgatami/faq/faq-nb.html
+++ b/templates/web/fiksgatami/about/faq-nb.html
diff --git a/templates/web/fiksgatami/nn/faq/faq-nn.html b/templates/web/fiksgatami/about/faq-nn.html
index 161cfbea5..161cfbea5 100644
--- a/templates/web/fiksgatami/nn/faq/faq-nn.html
+++ b/templates/web/fiksgatami/about/faq-nn.html
diff --git a/templates/web/fixamingata/static/council.html b/templates/web/fixamingata/about/council.html
index 8d968f695..8d968f695 100755
--- a/templates/web/fixamingata/static/council.html
+++ b/templates/web/fixamingata/about/council.html
diff --git a/templates/web/fixamingata/faq/faq-sv.html b/templates/web/fixamingata/about/faq-sv.html
index 05ffdaddc..05ffdaddc 100755
--- a/templates/web/fixamingata/faq/faq-sv.html
+++ b/templates/web/fixamingata/about/faq-sv.html
diff --git a/templates/web/fixamingata/static/fun.html b/templates/web/fixamingata/about/fun.html
index ff8f30e49..ff8f30e49 100644
--- a/templates/web/fixamingata/static/fun.html
+++ b/templates/web/fixamingata/about/fun.html
diff --git a/templates/web/fixamingata/static/privacy.html b/templates/web/fixamingata/about/privacy.html
index 539386be6..539386be6 100755
--- a/templates/web/fixamingata/static/privacy.html
+++ b/templates/web/fixamingata/about/privacy.html
diff --git a/templates/web/fixamingata/report/updates-sidebar-notes.html b/templates/web/fixamingata/report/updates-sidebar-notes.html
new file mode 100644
index 000000000..bb75bd1f1
--- /dev/null
+++ b/templates/web/fixamingata/report/updates-sidebar-notes.html
@@ -0,0 +1 @@
+<p>[% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]</p>
diff --git a/templates/web/fixmindelo/faq/faq-pt-cv.html b/templates/web/fixmindelo/about/faq-pt-cv.html
index 51a24a967..51a24a967 100644
--- a/templates/web/fixmindelo/faq/faq-pt-cv.html
+++ b/templates/web/fixmindelo/about/faq-pt-cv.html
diff --git a/templates/web/fixmindelo/static/privacy.html b/templates/web/fixmindelo/about/privacy.html
index 79817af4b..79817af4b 100644
--- a/templates/web/fixmindelo/static/privacy.html
+++ b/templates/web/fixmindelo/about/privacy.html
diff --git a/templates/web/fixmybarangay/faq/faq-en-gb.html b/templates/web/fixmybarangay/about/faq-en-gb.html
index 6e8893143..6e8893143 100644
--- a/templates/web/fixmybarangay/faq/faq-en-gb.html
+++ b/templates/web/fixmybarangay/about/faq-en-gb.html
diff --git a/templates/web/fixmybarangay/alert/index.html b/templates/web/fixmybarangay/alert/index.html
index c168fa41b..c842a7683 100644
--- a/templates/web/fixmybarangay/alert/index.html
+++ b/templates/web/fixmybarangay/alert/index.html
@@ -30,11 +30,9 @@ FixMyBarangay has a RSS feeds and email alerts for local problems.
<div id="alert_recent">
<aside>
<h2>[% loc('Some photos of recent reports') %]</h2>
- [% FOREACH p IN photos;
- photo = p.get_photo_params
- %]
+ [% FOREACH p IN photos %]
<a href="/report/[% p.id %]"><img border="0" height="100"
- src="[% photo.url_tn %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a>
+ src="[% p.photos.first.url_tn %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a>
[% END %]
</aside>
</div>
diff --git a/templates/web/fixmystreet-uk-councils/static/privacy.html b/templates/web/fixmystreet-uk-councils/about/privacy.html
index 3b077d29e..3b077d29e 100644
--- a/templates/web/fixmystreet-uk-councils/static/privacy.html
+++ b/templates/web/fixmystreet-uk-councils/about/privacy.html
diff --git a/templates/web/fixmystreet.com/about/_sidebar.html b/templates/web/fixmystreet.com/about/_sidebar.html
new file mode 100644
index 000000000..228639986
--- /dev/null
+++ b/templates/web/fixmystreet.com/about/_sidebar.html
@@ -0,0 +1,17 @@
+<div class="sticky-sidebar">
+ <aside>
+ <ul class="plain-list">
+ <li>[% INCLUDE link h='/faq' t=loc('Frequently Asked Questions') %]</li>
+ <li>[% INCLUDE link h='/about/posters' t='FixMyStreet Goodies' %]</li>
+ <li>[% INCLUDE link h='/about/house-rules' t='House Rules' %]</li>
+ <li>[% INCLUDE link h='/about/privacy' t=loc('Privacy and cookies') %]</li>
+ <li>[% INCLUDE link h='/contact' t=tprintf(loc("Contact %s", "%s is the site name"), site_name) %]</li>
+ </ul>
+ </aside>
+</div>
+
+[% BLOCK link -%]
+<[% IF c.req.uri.path == h %]strong[% ELSE %]a href="[% h %]"[% END %]>
+[%- t -%]
+</[% IF c.req.uri.path == h %]strong[% ELSE %]a[% END %]>
+[%- END %]
diff --git a/templates/web/fixmystreet.com/static/council.html b/templates/web/fixmystreet.com/about/council.html
index 6327c8bab..9a411be5c 100644
--- a/templates/web/fixmystreet.com/static/council.html
+++ b/templates/web/fixmystreet.com/about/council.html
@@ -101,7 +101,7 @@
<div class="fixed-container">
<div class="section-content">
<h2>Who's using FixMyStreet for councils?</h2>
- <p>Our UK client councils include <a href="http://fixmystreet.stevenage.gov.uk/">Stevenage</a>, <a href="http://fix.bromley.gov.uk/">Bromley</a>, <a href="http://barnet.fixmystreet.com/">Barnet</a>, <a href="http://fixmystreet.oxfordshire.gov.uk/">Oxfordshire</a>, <a href="http://hart.fixmystreet.com/">Hart</a>, <a href="http://eastsussex.fixmystreet.com/">East Sussex County Council</a>, <a href="http://fix.royalgreenwich.gov.uk/">Greenwich</a>, and (soon to launch) Warwickshire County Council.</p>
+ <p>Our UK client councils include <a href="http://fixmystreet.stevenage.gov.uk/">Stevenage</a>, <a href="http://fix.bromley.gov.uk/">Bromley</a>, <a href="http://harrogate.fixmystreet.com/">Harrogate</a>, <a href="http://fixmystreet.oxfordshire.gov.uk/">Oxfordshire</a>, <a href="http://hart.fixmystreet.com/">Hart</a>, <a href="http://eastsussex.fixmystreet.com/">East Sussex County Council</a>, <a href="http://fix.royalgreenwich.gov.uk/">Greenwich</a>, and <a href="http://warwickshire.fixmystreet.com/">Warwickshire County Council</a>.</p>
<p>FixMyStreet for Councils is also in use outside the UK, in the city of <a href="https://www.zueriwieneu.ch/">Zurich</a>, Switzerland.</p>
<h3>Case studies</h3>
<p>For the insider view, and to understand the integration process, read these councils’ stories.</p>
@@ -120,7 +120,6 @@
--><a href="http://warwickshire.gov.uk/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/warwickshire-logo.png') %]" alt="" /></a><!--
--><a href="http://fixmystreet.stevenage.gov.uk/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/stevenage-logo.png') %]" alt="" /></a><!--
--><a href="http://hart.fixmystreet.com/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/hart-logo.png') %]" alt="" /></a><!--
- --><a href="http://barnet.fixmystreet.com/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/barnet-logo.png') %]" alt="" /></a><!--
--><a href="http://fixmystreet.oxfordshire.gov.uk/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/oxfordshire-logo.png') %]" alt="" /></a><!--
--><a href="https://www.zueriwieneu.ch/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/zurich-logo.png') %]" alt="" /></a><!--
--><a href="http://eastsussex.fixmystreet.com/"><img src="[% start %][% version('/cobrands/fixmystreet.com/images/fms-for-councils/east-sussex-logo.png') %]" alt="" /></a>
diff --git a/templates/web/fixmystreet.com/faq/faq-en-gb.html b/templates/web/fixmystreet.com/about/faq-en-gb.html
index c295fd430..67b5a34f4 100755
--- a/templates/web/fixmystreet.com/faq/faq-en-gb.html
+++ b/templates/web/fixmystreet.com/about/faq-en-gb.html
@@ -1,15 +1,6 @@
[% INCLUDE 'header.html', title = loc('Frequently Asked Questions'), bodyclass = 'twothirdswidthpage' %]
-<div class="sticky-sidebar">
- <aside>
- <ul class="plain-list">
- <li><strong>Frequently Asked Questions</strong></li>
- <li><a href="/posters">FixMyStreet Goodies</a></li>
- <li><a href="/privacy">Privacy and cookies</a></li>
- <li><a href="/contact">Contact FixMyStreet</a></li>
- </ul>
- </aside>
-</div>
+[% INCLUDE 'about/_sidebar.html' %]
<h1>FixMyStreet Frequently Asked Questions</h1>
@@ -86,6 +77,10 @@ like graffiti, dog fouling, potholes or street lights that don't work.
</dd>
<dt>What shouldn't I report?</dt>
+
+<p>Please see our <a href="/about/house-rules">House Rules</a> for things you
+shouldn’t report, or include in your report.
+
<dd>
<p><strong>Urgent issues:</strong> For problems that might put people in
immediate danger, like gas leaks or falling trees, please contact your council
@@ -94,13 +89,6 @@ possible.
<p>We often route problem reports via cleansing services or highways
maintenance departments, so using FixMyStreet for urgent matters may result in
a delay in your report getting to the right department.
-<p><strong>Potentially libellous content:</strong> We publish all FixMyStreet
-reports online, so please make sure you are not putting yourself at risk of
-committing libel.
-<p>Specifically, you should not implicate other people, as can often happen in
-reports of anti-social behaviour, animal cruelty, parking offences, criminal
-activity, etc. If you wish to make this kind of report, it is best to do it
-directly – you'll often find that your council has a hotline.
<p><strong>Non-physical things:</strong> For issues such as noise pollution,
barking dogs, fires, missing wheelie bins or missed rubbish collections,
proposals for speed bumps or pedestrian crossings, or complaining about the
@@ -262,7 +250,7 @@ category for your report. If your problem is very near a council boundary, it
is easy to place the pin on the wrong side of it by mistake. Similarly,
choosing the wrong category can mean that your report is sent to one council
when it should have gone to another.
-<p>At the moment, FixMyStreet does not send reports to the Highways Agency,
+<p>At the moment, FixMyStreet does not send reports to Highways England,
but we are working on that.
<p>If the above two paragraphs do not apply, please <a href="/contact">drop us
a line</a> and we'll try to get to the bottom of why your report has been
@@ -314,8 +302,8 @@ council directly, via the contact details given on their own website.
<dd>
<p>There's a 'report abuse' button at the foot of every FixMyStreet report.
Please click on this and we'll take a look as soon as we can.
-<p>If the report or comment is contravening our terms of use, we'll take it
-down.
+<p>If the report or comment is contravening our
+<a href="/about/house-rules">House Rules</a>, we'll take it down.
</dd>
</dl>
diff --git a/templates/web/fixmystreet.com/about/house-rules.html b/templates/web/fixmystreet.com/about/house-rules.html
new file mode 100755
index 000000000..ec1e765fe
--- /dev/null
+++ b/templates/web/fixmystreet.com/about/house-rules.html
@@ -0,0 +1,61 @@
+[% INCLUDE 'header.html' title='FixMyStreet House Rules' bodyclass='twothirdswidthpage' %]
+
+[% INCLUDE 'about/_sidebar.html' %]
+
+<h1>FixMyStreet House Rules</h1>
+
+<p>
+Violation of any of the below rules is likely to lead to the immediate
+suspension of your account so you will no longer be able to make reports or
+updates on FixMyStreet. In some cases, breaking these rules could lead to legal
+action being taken against you by the authorities or an aggrieved party. Please
+be aware that in exceptional circumstances FixMyStreet could be legally obliged
+to reveal your registration information and/or IP address to the authorities.
+</p>
+
+<p>Keep your reports and updates civil, tasteful and relevant. Please:</p>
+
+<ul>
+
+<li><strong>No defamatory comments.</strong> A defamatory comment is one that
+is capable of damaging the reputation of a person or organisation. If
+successfully sued you could be held liable for considerable damages and costs.
+
+<li><strong>Do not implicate other people in your reports.</strong> FMS should
+not be used for reports that implicate a person; you should never identify
+anyone as a wrongdoer by name, description or address. Reports about
+anti-social behaviour, animal cruelty, parking offences, criminal activity etc
+should not be reported on FixMyStreet - you’ll often find that your council has
+a hotline for these types of issues, or it may be better to report them
+directly to the police.</li>
+
+<li><strong>Do not post messages that are</strong> unlawful, harassing,
+defamatory, abusive, threatening, harmful, obscene, profane, sexually oriented,
+homophobic or racially offensive.</li>
+
+<li><strong>Do not use the website as a place to air personal
+grievances</strong> about other people or organisations.</li>
+
+<li><strong>No swearing.</strong> People of all ages read and contribute to
+FixMyStreet. Please don't use profanities or other words which might offend
+them.</li>
+
+<li><strong>No spamming or flooding.</strong> Don't repost the same message, or
+very similar messages, more than once.</li>
+
+<li><strong>Be aware that FixMyStreet reports and updates are displayed
+publicly on the website.</strong> For this reason, please do not include
+personal details such as your (or another person’s) address or telephone number
+in your initial report - these can be provided when the council get in touch
+with you. This is for your own safety and that of everyone who uses this
+service. All reports and updates can be made anonymously by unticking the
+‘Display my name publicly’ box.</li>
+
+<li><strong>Talk to other people online with the same degree of civility as you
+would offline.</strong> FixMyStreet does allow for anonymous commenting but
+anonymity should never be used as a cover for inappropriate or abusive
+comments.</li>
+
+</ul>
+
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/fixmystreet.com/static/posters.html b/templates/web/fixmystreet.com/about/posters.html
index bcf235fa4..bcf235fa4 100644
--- a/templates/web/fixmystreet.com/static/posters.html
+++ b/templates/web/fixmystreet.com/about/posters.html
diff --git a/templates/web/fixmystreet.com/static/privacy.html b/templates/web/fixmystreet.com/about/privacy.html
index 3b077d29e..2492eee89 100755
--- a/templates/web/fixmystreet.com/static/privacy.html
+++ b/templates/web/fixmystreet.com/about/privacy.html
@@ -2,15 +2,7 @@
title = loc('Privacy and cookies'),
bodyclass = 'twothirdswidthpage' %]
-<div class="sticky-sidebar">
- <aside>
- <ul class="plain-list">
- <li><a href="/faq">Frequently Asked Questions</a></li>
- <li><strong>Privacy and cookies</strong></li>
- <li><a href="/contact">Contact FixMyStreet</a></li>
- </ul>
- </aside>
-</div>
+[% INCLUDE 'about/_sidebar.html' %]
<h1>Privacy, cookies, and third party services</h1>
diff --git a/templates/web/fixmystreet.com/around/_report_banner.html b/templates/web/fixmystreet.com/around/_report_banner.html
new file mode 100755
index 000000000..fb2134020
--- /dev/null
+++ b/templates/web/fixmystreet.com/around/_report_banner.html
@@ -0,0 +1,10 @@
+[%# Same as parent, with variant green banner text %]
+<h1 class="big-green-banner variant1">
+ Click map to request a fix
+</h1>
+<h1 class="big-green-banner variant0">
+ [% loc( 'Click map to report a problem' ) %]
+</h1>
+<a id="skip-this-step" href="[% url_skip %]" rel="nofollow">
+ [% loc("Can't see the map? <em>Skip this step</em>") %]
+</a>
diff --git a/templates/web/fixmystreet.com/around/intro.html b/templates/web/fixmystreet.com/around/intro.html
new file mode 100644
index 000000000..5b756cd31
--- /dev/null
+++ b/templates/web/fixmystreet.com/around/intro.html
@@ -0,0 +1,9 @@
+[%# Same as parent, with variant heading text %]
+<div class="variant1">
+ <h1>Get things fixed in your local community</h1>
+ <h2>(like blocked pavements, parks and playgrounds in need of maintenance)</h2>
+</div>
+<div class="variant0">
+ <h1>[% loc('Report, view, or discuss local problems') %]</h1>
+ <h2>[% loc('(like graffiti, fly tipping, broken paving slabs, or street lighting)') %]</h2>
+</div>
diff --git a/templates/web/fixmystreet.com/front/international_banner.html b/templates/web/fixmystreet.com/front/international_banner.html
index 4e3a2fda6..303d52851 100644
--- a/templates/web/fixmystreet.com/front/international_banner.html
+++ b/templates/web/fixmystreet.com/front/international_banner.html
@@ -1,13 +1,11 @@
[% country = c.cobrand.get_country_for_ip_address(c.req.address) -%]
[%- IF country AND country != 'GB' -%]
-<div id="country_banner">
- <a href="#" id="message_close">Close</a>
- <p id="international_message">
- <span id="message">
+<div class="top_banner top_banner--country">
+ <a href="#" class="top_banner__close">Close</a>
+ <p>
This site is for reporting <strong>problems in the UK</strong>. There are FixMyStreet sites
<a href="http://www.fixmystreet.org/sites/">all over the world</a>, or you
could set up your own using the <a href="http://www.fixmystreet.org/">FixMyStreet Platform</a>.
- </span>
</p>
</div>
[%- END -%]
diff --git a/templates/web/fixmystreet.com/header_extra.html b/templates/web/fixmystreet.com/header_extra.html
index 6d3474c23..e05bc31d2 100644
--- a/templates/web/fixmystreet.com/header_extra.html
+++ b/templates/web/fixmystreet.com/header_extra.html
@@ -3,4 +3,20 @@
<script src="[% start %][% version('/js/jquery.cookie.min.js') %]"></script>
<script src="[% start %][% version('/cobrands/fixmystreet.com/js.js') %]"></script>
+[%# We are conducting an A/B experiment %]
+<script src="//www.google-analytics.com/cx/api.js?experiment=ZwMlZkAhSbK_tP_QG64QrQ"></script>
+<script>
+var variation = cxApi.chooseVariation(),
+ docElement = document.documentElement,
+ className = docElement.className;
+if (!/about\/council/.test(location.pathname)) {
+ docElement.className = className + ' variant' + variation;
+}
+</script>
+<style>
+html .variant1 { display: none !important; }
+html.variant1 .variant0 { display: none !important; }
+html.variant1 .variant1 { display: block !important; }
+</style>
+
[% INCLUDE 'tracking_code.html' %]
diff --git a/templates/web/fixmystreet.com/next_steps.html b/templates/web/fixmystreet.com/next_steps.html
index 5a26a67fe..2bfc23ddb 100644
--- a/templates/web/fixmystreet.com/next_steps.html
+++ b/templates/web/fixmystreet.com/next_steps.html
@@ -2,8 +2,10 @@
[% DEFAULT share_url = c.cobrand.base_url %]
[% DEFAULT twitter_comment = 'I just used @fixmystreet, you should try it!' %]
+[% SET app_step = 1 IF NOT report OR NOT report.service %]
-<div class="next-steps">
+<div class="next-steps[% ' next-steps--two' IF NOT app_step %]">
+ [% IF app_step %]
<div class="next-steps__step next-steps__step--apps">
[% IF just_interacted %]
<h2>[% loc('Next time, try our mobile app!') %]</h2>
@@ -16,6 +18,7 @@
<a href="https://play.google.com/store/apps/details?id=org.mysociety.FixMyStreet"><img src="/cobrands/fixmystreet.com/images/next-step-google.png" alt="Android app on Google Play" width="120" height="37"></a>
</p>
</div>
+ [% END %]
<div class="next-steps__step next-steps__step--social">
[% IF just_interacted %]
<h2>[% loc('Great work. Now spread the word!') %]</h2>
diff --git a/templates/web/fixmystreet.com/report/banner.html b/templates/web/fixmystreet.com/report/banner.html
new file mode 100644
index 000000000..35d7be179
--- /dev/null
+++ b/templates/web/fixmystreet.com/report/banner.html
@@ -0,0 +1,28 @@
+[% USE date %]
+
+[% BLOCK banner %]
+ <div class="banner">
+ <p id="[% id %]">[% text %]</p>
+ </div>
+[% END %]
+
+[% IF problem.is_fixed %]
+ [% INCLUDE banner, id = 'fixed', text = loc('Fixed') %]
+[% END %]
+
+[% IF problem.is_closed %]
+ [% INCLUDE banner, id = 'closed', text = loc('Closed') %]
+[% END %]
+
+[% IF NOT problem.bodies_str == '2482' %]
+
+ [% IF problem.is_open AND date.now - problem.lastupdate.epoch > 8 * 7 * 24 * 60 * 60 %]
+ [% INCLUDE banner, id = 'unknown', text = loc('Unknown') %]
+ [% END %]
+
+ [% states = [ 'investigating', 'in progress', 'planned', 'action scheduled' ];
+ IF states.grep(problem.state).size %]
+ [% INCLUDE banner, id = 'progress', text = loc('In progress') %]
+ [% END %]
+
+[% END %]
diff --git a/templates/web/fixmystreet.com/report/new/after_photo.html b/templates/web/fixmystreet.com/report/new/after_photo.html
new file mode 100644
index 000000000..987f6d124
--- /dev/null
+++ b/templates/web/fixmystreet.com/report/new/after_photo.html
@@ -0,0 +1,10 @@
+<div class="description_tips">
+ <h4>Tips for perfect photos:</h4>
+ <ul class="do">
+ <li>Show what the problem is</li>
+ <li>Show where it’s located</li>
+ </ul>
+ <ul class="dont">
+ <li>Avoid personal information and vehicle number plates</li>
+ </ul>
+</div> \ No newline at end of file
diff --git a/templates/web/fixmystreet.com/report/new/extra_name.html b/templates/web/fixmystreet.com/report/new/extra_name.html
new file mode 100644
index 000000000..d1eec5fa3
--- /dev/null
+++ b/templates/web/fixmystreet.com/report/new/extra_name.html
@@ -0,0 +1,42 @@
+[%# Same as parent, with added gender question %]
+
+[% IF (page == 'around' OR page == 'new') AND c.cobrand.ask_gender_question %]
+<p>
+We’re conducting research to make sure our site is good for everyone;
+please help us out by providing your gender. <em>This will not be
+shared with the council or displayed publicly.</em>
+</p>
+
+[% SET gender = report.get_extra_metadata('gender') %]
+<p class="radio-segmented-control" style="font-size: 80%">
+ <input type="radio" name="gender" id="gender_female" value="female"[% ' checked' IF gender == 'female' %]>
+ <label class="inline" for="gender_female">Female</label>
+ <input type="radio" name="gender" id="gender_male" value="male"[% ' checked' IF gender == 'male' %]>
+ <label class="inline" for="gender_male">Male</label>
+ <input type="radio" name="gender" id="gender_other" value="other"[% ' checked' IF gender == 'other' %]>
+ <label class="inline" for="gender_other">Other</label>
+ <input type="radio" name="gender" id="gender_unknown" value="unknown"[% ' checked' IF gender == 'unknown' %]>
+ <label class="inline" for="gender_unknown">Prefer not to say</label>
+</p>
+[% END %]
+
+<input type="hidden" name="variant" value="0">
+
+[% IF extra_name_info %]
+<label for="form_fms_extra_title">Title</label>
+[% IF field_errors.fms_extra_title %]
+ <p class='form-error'>[% field_errors.fms_extra_title %]</p>
+[% END %]
+[% title = '' %]
+[% IF fms_extra_title %][% title = fms_extra_title | upper %]
+[% ELSIF c.user && c.user.title %][% title = c.user.title | upper %][% END %]
+<select class="form-focus-trigger required" id="form_fms_extra_title"
+ name="fms_extra_title">
+ <option></option>
+ <option value="MR"[% ' selected' IF title == 'MR' %]>Mr</option>
+ <option value="MISS"[% ' selected' IF title == 'MISS' %]>Miss</option>
+ <option value="MRS"[% ' selected' IF title == 'MRS' %]>Mrs</option>
+ <option value="MS"[% ' selected' IF title == 'MS' %]>Ms</option>
+ <option value="DR"[% ' selected' IF title == 'DR' %]>Dr</option>
+</select>
+[% END %]
diff --git a/templates/web/fixmystreet.com/report/new/unresponsive_body.html b/templates/web/fixmystreet.com/report/new/unresponsive_body.html
index a1b41aaf5..2ad3b7992 100644
--- a/templates/web/fixmystreet.com/report/new/unresponsive_body.html
+++ b/templates/web/fixmystreet.com/report/new/unresponsive_body.html
@@ -5,7 +5,7 @@
[% IF category %]
<span class="refused-category">[% category | html %]</span>
[% END %]
- reports.
+ reports from third party reporting sites such as FixMyStreet.
</p>
<p>We can make your report public, but we can’t send it to the council.</p>
<a href="/unresponsive?body=[% body_id %][% IF category %];category=[% category | uri %][% END %]">What can I do instead?</a>
diff --git a/templates/web/fixmystreet.com/report/updates-sidebar-notes.html b/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
new file mode 100644
index 000000000..276ab4106
--- /dev/null
+++ b/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
@@ -0,0 +1,6 @@
+<p>
+ [% IF problem.send_method_used != 'Open311' OR ( NOT problem.bodies_str.match('2482|2347') ) %]
+ [% loc( 'Please note that updates are not sent to the council.' ) %]
+ [% END %]
+ [% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]
+</p>
diff --git a/templates/web/fixmystreet.com/reports/_extras.html b/templates/web/fixmystreet.com/reports/_extras.html
index ff2a67dc2..6768c675a 100755
--- a/templates/web/fixmystreet.com/reports/_extras.html
+++ b/templates/web/fixmystreet.com/reports/_extras.html
@@ -1,12 +1,13 @@
[%
fms_councils = {
- 'Barnet Borough Council' = 'barnet.fixmystreet.com'
'Bromley Council' = 'fix.bromley.gov.uk'
'East Sussex County Council' = 'eastsussex.fixmystreet.com'
+ 'Harrogate Borough Council' = 'harrogate.fixmystreet.com'
'Hart District Council' = 'hart.fixmystreet.com'
'Oxfordshire County Council' = 'fixmystreet.oxfordshire.gov.uk'
'Stevenage Borough Council' = 'stevenage.fixmystreet.com',
'Royal Borough of Greenwich' = 'fix.royalgreenwich.gov.uk'
+ 'Warwickshire County Council' = 'warwickshire.fixmystreet.com'
}
secure = {
'fix.bromley.gov.uk' = 's'
diff --git a/templates/web/fixmystreet.com/tracking_code.html b/templates/web/fixmystreet.com/tracking_code.html
index 3b163f516..7213055d0 100644
--- a/templates/web/fixmystreet.com/tracking_code.html
+++ b/templates/web/fixmystreet.com/tracking_code.html
@@ -29,6 +29,25 @@ ga('ecommerce:send');
ga('send', 'pageview');
</script>
+
+[% IF created_report %]
+<script type="text/javascript">
+var google_conversion_id = 1067468161;
+var google_conversion_language = "en";
+var google_conversion_format = "3";
+var google_conversion_color = "ffffff";
+var google_conversion_label = "1nWDCP3t6GQQgYuB_QM";
+var google_remarketing_only = false;
+</script>
+<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
+</script>
+<noscript>
+<div style="display:inline;">
+<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/1067468161/?label=1nWDCP3t6GQQgYuB_QM&amp;guid=ON&amp;script=0"/>
+</div>
+</noscript>
+[% END %]
+
[% ELSE %]
<!-- Tracking code not inserted as "[% c.config.BASE_URL %]" not "https://www.fixmystreet.com" -->
[% END %]
diff --git a/templates/web/fixmystreet/static/fun.html b/templates/web/fixmystreet/about/fun.html
index 03d977d44..03d977d44 100644
--- a/templates/web/fixmystreet/static/fun.html
+++ b/templates/web/fixmystreet/about/fun.html
diff --git a/templates/web/fixmystreet/contact/blurb.html b/templates/web/fixmystreet/contact/blurb.html
deleted file mode 100644
index 3f9e88ed0..000000000
--- a/templates/web/fixmystreet/contact/blurb.html
+++ /dev/null
@@ -1,15 +0,0 @@
-[% IF c.cobrand.moniker == 'fixmystreet' %]
-<h3>Send a message to FixMyStreet's technical support team</h3>
-
-<h4>If you have questions about FixMyStreet</h4>
-[% END %]
-
-<p>
-[% tprintf( loc("It's often quickest to <a href=\"%s\">check our FAQs</a> and see if the answer is there."), c.uri_for('/faq') ) %]
-</p>
-
-<p>
-[% loc('Please do <strong>not</strong> report problems through this form; messages go to
-the team behind this site, not a council. To report a problem,
-please <a href="/">go to the front page</a> and follow the instructions.') %]
-</p>
diff --git a/templates/web/fixmystreet/contact/index.html b/templates/web/fixmystreet/contact/index.html
deleted file mode 100644
index 96ff7643d..000000000
--- a/templates/web/fixmystreet/contact/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
-[% INCLUDE 'header.html',
- title = loc('Contact Us')
- robots = 'noindex,nofollow'
- bodyclass = 'twothirdswidthpage'
-%]
-
-<div class="sticky-sidebar">
- <aside>
- <ul class="plain-list">
- <li><a href="/faq">[% loc('Frequently Asked Questions') %]</a></li>
- <li><a href="/privacy">[% loc('Privacy and cookies') %]</a></li>
- <li><strong>[% tprintf(loc("Contact %s", "%s is the site name"), site_name) %]</strong></li>
- </ul>
- </aside>
-</div>
-
-[% IF c.cobrand.moniker == 'fixmystreet' %]
-<h1>FixMyStreet technical support</h1>
-[% ELSE %]
-<h1>[% loc('Contact the team') %]</h1>
-[% END %]
-
-<form method="post" action="/contact/submit" class="validate">
- <fieldset>
- [% INCLUDE 'errors.html' %]
-
- [% IF update %]
-
- <p>
- [% loc('You are reporting the following update for being abusive, containing personal information, or similar:') %]
- </p>
-
- <blockquote>
- <p>
- [% IF update.anonymous %]
- [% tprintf( loc('Update below added anonymously at %s'), prettify_dt( update.confirmed ) ) %]
- [% ELSE %]
- [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_dt( update.confirmed ) ) | html %]
- [% END %]
- </p>
-
- <p>
- [% update.text | html %]
- </p>
-
- </blockquote>
- <input type="hidden" name="update_id" value="[% update.id %]">
- <input type="hidden" name="id" value="[% update.problem_id %]">
-
- [% ELSIF problem %]
- <p>
- [% IF moderation_complaint %]
- <input type="hidden" name="m" value="[% moderation_complaint %]">
- [% loc('You are complaining that this problem report was unnecessarily moderated:') %]
- [% ELSE %]
- [% loc('You are reporting the following problem report for being abusive, containing personal information, or similar:') %]
- [% END %]
- </p>
-
- <blockquote>
- <h2>[% problem.title_safe | html %]</h2>
-
- <p>
- [% IF problem.anonymous %]
- [% tprintf( loc('Reported anonymously at %s'), prettify_dt( problem.confirmed ) ) %]
- [% ELSE %]
- [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_dt( problem.confirmed ) ) | html %]
- [% END %]
- </p>
-
- <p>
- [% problem.detail | html %]
- </p>
-
- </blockquote>
- <input type="hidden" name="id" value="[% problem.id %]">
-
- [% ELSE %]
-
- [% INCLUDE 'contact/blurb.html' %]
-
- [% END %]
-
- <label for="form_name">[% loc('Your name') %]</label>
- [% IF field_errors.name %]
- <div class="form-error">[% field_errors.name %]</div>
- [% END %]
- <input type="text" class="required" name="name" id="form_name" value="[% form_name | html %]" size="30">
-
-
- <label for="form_email">[% loc('Your email') %]</label>
- [% IF field_errors.em %]
- <div class="form-error">[% field_errors.em %]</div>
- [% END %]
- <input type="text" class="required email" name="em" id="form_email" value="[% em | html %]" size="30">
-
-
- <label for="form_subject">[% loc('Subject') %]</label>
- [% IF field_errors.subject %]
- <div class="form-error">[% field_errors.subject %]</div>
- [% END %]
- <input type="text" class="required" name="subject" id="form_subject" value="[% subject | html %]" size="30">
-
- [% INCLUDE 'contact/who.html' %]
-
- <label for="form_message">[% loc('Message') %]</label>
- [% IF field_errors.message %]
- <div class="form-error">[% field_errors.message %]</div>
- [% END %]
- <textarea class="required" name="message" id="form_message" rows="7" cols="50">[% message | html %]</textarea>
-
-
- <input class="final-submit green-btn" type="submit" value="[% loc('Post') %]">
-
- </fieldset>
-</form>
-
-<h4>[% loc("Don't like forms?") %]</h4>
-
-<p>
-[% tprintf( loc("You can contact technical support on <a href='mailto:%s'>%s</a>"), contact_email, contact_email) %]
-</p>
-
-[% TRY %][% INCLUDE 'contact/address.html' %][% CATCH file %][% END %]
-
-[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/fixmystreet/report/banner.html b/templates/web/fixmystreet/report/banner.html
deleted file mode 100644
index 83c780958..000000000
--- a/templates/web/fixmystreet/report/banner.html
+++ /dev/null
@@ -1,21 +0,0 @@
-[% USE date %]
-[% BLOCK banner %]
- <div class="banner">
- <p id="[% id %]">[% text %]</p>
- </div>
-[% END %]
-
-[% IF c.cobrand.moniker != 'bromley' AND problem.bodies_str != '2482' AND problem.is_open AND date.now - problem.lastupdate.epoch > 8 * 7 * 24 * 60 * 60 %]
- [% INCLUDE banner, id = 'unknown', text = loc('Unknown') %]
-[% END %]
-[% IF problem.is_fixed %]
- [% INCLUDE banner, id = 'fixed', text = loc('Fixed') %]
-[% END %]
-[% IF problem.is_closed %]
- [% INCLUDE banner, id = 'closed', text = loc('Closed') %]
-[% END %]
-[% states = [ 'investigating', 'in progress', 'planned', 'action scheduled' ];
- IF c.cobrand.moniker != 'bromley' AND problem.bodies_str != '2482' && states.grep(problem.state).size %]
- [% INCLUDE banner, id = 'progress', text = loc('In progress') %]
-[% END %]
-
diff --git a/templates/web/fixmystreet/report/new/fill_in_details_form.html b/templates/web/fixmystreet/report/new/fill_in_details_form.html
deleted file mode 100644
index 82b1097b7..000000000
--- a/templates/web/fixmystreet/report/new/fill_in_details_form.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<div id="report-a-problem-main">
- <h1>[% loc('Report your problem') %]</h1>
-
- [% IF report.used_map %]
- <p class="change_location">[% loc('Wrong location? Just click again on the map.') %]</p>
- [% END %]
-
- [% IF js %]
- <p id="councils_text">
- [% tprintf(
- loc('All the information you provide here will be sent to <strong>%s</strong>.'),
- loc('the local council')
- ); %]
- [% loc('The summary and description will also be made public (see our <a href="/privacy">privacy policy</a>).') %]
- </p>
- [% ELSE %]
- [% PROCESS 'report/new/councils_text.html' %]
- [% END %]
-
- [% IF report.used_map && partial_token %]
- <p id="unknown">[% loc('Please note your report has <strong>not yet been sent</strong>. Choose a category and add further information below, then submit.') %]</p>
- [% END %]
-
- [% TRY %][% PROCESS 'report/new/sidebar.html' %][% CATCH file %][% END %]
-
- [% INCLUDE 'errors.html' %]
-
- <fieldset>
- <div id="problem_form">
-
- [% INCLUDE 'report/new/form_heading.html' %]
-
- [% IF field_errors.bodies %]
- <p class='form-error'>[% field_errors.bodies %]</p>
- [% END %]
-
- [% TRY %]
- [%# Useful for amending form contents based on category selection %]
- [% PROCESS 'report/new/category_at_top.html' %]
- [% need_to_show_category_selector = 0 %]
- [% CATCH file %]
- [% need_to_show_category_selector = 1 %]
- [% END %]
-
- <label for="form_title">[% loc('One-line summary') %] [% INCLUDE 'report/public_label.html' %]</label>
- [% IF field_errors.title %]
- <p class='form-error'>[% field_errors.title %]</p>
- [% END %]
- <input type="text" value="[% report.title | html %]" name="title" id="form_title" placeholder="[% loc('What’s the issue, and where is it?') %]" required>
-
- <label for="form_detail">[% loc('Description') %] [% INCLUDE 'report/public_label.html' %]</label>
- [% IF field_errors.detail %]
- <p class='form-error'>[% field_errors.detail %]</p>
- [% END %]
- <textarea rows="7" cols="26" name="detail" id="form_detail" placeholder="[% loc('Explain what’s wrong, exactly where it is, and how long it’s been there…') %]" required>[% report.detail | html %]</textarea>
-
- [% TRY %][% PROCESS 'report/new/inline-tips.html' %][% CATCH file %][% END %]
-
- [% IF need_to_show_category_selector %]
- [% PROCESS "report/new/category_wrapper.html" %]
- [% END %]
-
- [% TRY %][% PROCESS 'report/new/after_category.html' %][% CATCH file %][% END %]
-
- [% IF c.cobrand.allow_photo_upload %]
- <label for="form_photo">[% loc('Photo') %]</label>
- [% IF upload_fileid || report.photo %]
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
-
- <p>[% loc('You have already attached a photo to this report, attaching another one will replace it.') %]</p>
-
- [% IF report.photo %]
- <img align="right" src="/photo/[% report.id %].jpeg">
- [% END %]
- [% END %]
-
- [% IF field_errors.photo %]
- <p class='form-error'>[% field_errors.photo %]</p>
- [% END %]
- <input type="file" name="photo" id="form_photo">
- [% END %]
-
- [% TRY %][% PROCESS 'report/new/after_photo.html' %][% CATCH file %][% END %]
-
- [% IF c.user_exists %]
- [% PROCESS "report/new/form_user_loggedin.html" %]
- [% ELSE %]
- [% PROCESS "report/new/form_user_loggedout.html" %]
- [% END %]
- </div>
- </fieldset>
-
- [% IF partial_token %]
- <input type="hidden" name="partial" value="[% partial_token.token %]">
- [% END %]
-
- <input type="hidden" name="submit_problem" value="1">
-</div>
diff --git a/templates/web/fixmystreet/report/new/form_user_loggedout.html b/templates/web/fixmystreet/report/new/form_user_loggedout.html
deleted file mode 100644
index c5a58e8a9..000000000
--- a/templates/web/fixmystreet/report/new/form_user_loggedout.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<label for="form_email">[% loc('Your email') %]
- <span class="muted">([% loc('We never show your email') %])</span>
-</label>
-[% IF field_errors.email %]
- <p class='form-error'>[% field_errors.email %]</p>
-[% END %]
-<input type="email" value="[% report.user.email | html %]" name="email" id="form_email" placeholder="[% loc('Please enter your email address') %]" required>
-
-<div id="form_sign_in">
- <h3>[% loc("Now to submit your report&hellip;") %]</h3>
- <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
-
- <div id="form_sign_in_yes" class="form-box">
-
- <h5>[% loc('<strong>Yes</strong> I have a password') %]</h5>
-
- <label class="hidden-js n" for="password_sign_in">[% loc('Yes I have a password') %]</label>
- [% IF field_errors.password %]
- <p class='form-error'>[% field_errors.password %]</p>
- [% END %]
- <div class="form-txt-submit-box">
- <input type="password" name="password_sign_in" id="password_sign_in" placeholder="[% loc('Your password') %]" value="">
- <input class="green-btn" type="submit" id="submit_sign_in" name="submit_sign_in" value="[% loc('Submit') %]">
- </div>
-
- <div class="checkbox-group">
- <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
- <label class="n inline" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
- </div>
-
- <div class="general-notes">
- <p><strong>[% loc('Forgotten your password?') %]</strong>
- [% loc('Confirm by email below, providing a new password at that point. When you confirm, your password will be updated.') %]</p>
- </div>
-
- </div>
-
- <div id="form_sign_in_no" class="form-box">
- <h5>[% loc('<strong>No</strong> Let me confirm my report by email') %]</h5>
-
- [% INCLUDE 'report/new/extra_name.html' %]
-
- [% name_public = report.anonymous==0 OR (c.cobrand.default_show_name AND report.anonymous=='') %]
- <label for="form_name">[% loc('Name') %]
- [% TRY %]
- [% INCLUDE 'report/new/after_name.html' %]
- [% CATCH file %]
- [% END %]
- </label>
- [% IF field_errors.name %]
- <p class='form-error'>[% field_errors.name %]</p>
- [% END %]
-
- <input type="text" class="form-focus-trigger validName" value="[% report.name | html %]" name="name" id="form_name" placeholder="[% loc('Your name') %]">
-
- [%# if there is nothing in the name field then set check box as default on form %]
- <div class="checkbox-group">
- <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF name_public %]>
- <label class="inline" for="form_may_show_name">[% loc('Show my name publicly') %]</label>
- </div>
-
- <label class="form-focus-hidden" for="form_phone">[% loc('Phone number (optional)') %]</label>
- <input class="form-focus-hidden" type="text" value="[% report.user.phone | html %]" name="phone" id="form_phone" placeholder="[% loc('Your phone number') %]">
- <div class="general-notes form-focus-hidden">
- <p>[% loc('We never show your email address or phone number.') %]</p>
- </div>
-
- <label class="form-focus-hidden" for="password_register">[% loc('Password (optional)') %]</label>
-
- <div class="general-notes form-focus-hidden">
- <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
- </div>
-
- <div class="form-txt-submit-box form-focus-hidden">
- <input type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
- <input class="green-btn" type="submit" id="submit_register" name="submit_register" value="[% loc('Submit') %]">
- </div>
- </div>
-</div>
diff --git a/templates/web/fixmystreet/report/update-form.html b/templates/web/fixmystreet/report/update-form.html
deleted file mode 100644
index a69b793b7..000000000
--- a/templates/web/fixmystreet/report/update-form.html
+++ /dev/null
@@ -1,152 +0,0 @@
-[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body) %]
-[% IF allow_creation %]
-<div id="update_form">
- <h2>[% loc( 'Provide an update') %]</h2>
-
- [% IF c.cobrand.moniker != 'emptyhomes' AND c.cobrand.moniker != 'stevenage' %]
- <div class="general-notes">
- [% INCLUDE 'report/updates-sidebar-notes.html' %]
- </div>
- [% END %]
-
- [% INCLUDE 'errors.html' %]
-
- <form method="post" action="[% c.uri_for( '/report/update' ) %]" id="form_update_form" name="updateForm" class="validate"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %]>
- <fieldset>
- <input type="hidden" name="submit_update" value="1">
- <input type="hidden" name="id" value="[% problem.id | html %]">
-
- <label for="form_update">[% loc( 'Update' ) %]</label>
- [% IF field_errors.update %]
- <div class='form-error'>[% field_errors.update %]</div>
- [% END %]
- <textarea rows="7" cols="30" name="update" id="form_update" placeholder="[% loc('Please write your update here') %]" required>[% update.text | html %]</textarea>
-
- [% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
- <label for="form_state">[% loc( 'State' ) %]</label>
- <select name="state" id="form_state">
- [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
- loc('Investigating')], ['action scheduled', loc('Action Scheduled')],
- ['in progress', loc('In Progress')], ['duplicate', loc('Duplicate')],
- ['unable to fix', loc('Unable to fix')], ['not responsible', loc('Not Responsible')],
- ['fixed', loc('Fixed')] ] %]
- <option [% 'selected ' IF state.0 == problem.state %] value="[% state.0 %]">[% state.1 %]</option>
- [% END %]
- </select>
- [% ELSE %]
- [% IF problem.is_fixed AND ((c.user_exists AND c.user.id == problem.user_id) OR alert_to_reporter) %]
-
- <input type="checkbox" name="reopen" id="form_reopen" value="1"[% ' checked' IF update.mark_open %]>
- <label class="inline" for="form_reopen">[% loc('This problem has not been fixed') %]</label>
-
- [% ELSIF !problem.is_fixed %]
-
- <div class="checkbox-group">
- <input type="checkbox" name="fixed" id="form_fixed" value="1"[% ' checked' IF update.mark_fixed %]>
- <label class="inline" for="form_fixed">[% loc('This problem has been fixed') %]</label>
- </div>
-
- [% END %]
- [% END %]
-
- [% IF c.cobrand.allow_photo_upload %]
- <div id="fileupload_normalUI">
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <p>[% loc('You have already attached a photo to this update, attaching another one will replace it.') %]</p>
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
- <label for="form_photo">[% loc('Photo') %]</label>
- [% IF field_errors.photo %]
- <p class='form-error'>[% field_errors.photo %]</p>
- [% END %]
- <input type="file" name="photo" id="form_photo">
- </div>
- [% END %]
-
- [% IF c.user_exists %]
-
- [% INCLUDE name %]
-
- <input class="final-submit green-btn" type="submit" id="update_post" value="[% loc('Post') %]">
-
-
- [% ELSE %]
-
- <label for="form_rznvy">[% loc('Your email' ) %]
- <span class="muted">([% loc('We never show your email') %])</span>
- </label>
- [% IF field_errors.email %]
- <p class='form-error'>[% field_errors.email %]</p>
- [% END %]
- <input type="email" name="rznvy" id="form_rznvy" value="[% update.user.email | html %]" placeholder="[% loc('Your email address' ) %]" required>
-
- <div id="form_sign_in">
- <h3>[% loc("Now to submit your update&hellip;") %]</h3>
- <h2>[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
-
- <div id="form_sign_in_yes" class="form-box">
- <h5>[% loc('<strong>Yes</strong> I have a password') %]</h5>
-
- <label class="hidden-js n" for="password_sign_in">[% loc('Yes I have a password') %]</label>
- [% IF field_errors.password %]
- <p class='form-error'>[% field_errors.password %]</p>
- [% END %]
- <div class="form-txt-submit-box">
- <input type="password" name="password_sign_in" id="password_sign_in" value="" placeholder="[% loc('Your password') %]">
- <input class="green-btn" type="submit" name="submit_sign_in" id="submit_sign_in" value="[% loc('Post') %]">
- </div>
-
- <div class="checkbox-group">
- <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
- <label class="inline n" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
- </div>
-
- <div class="general-notes">
- <p><strong>[% loc('Forgotten your password?') %]</strong>
- [% loc('Confirm by email below, providing a new password at that point. When you confirm, your password will be updated.') %]</p>
- </div>
-
- </div>
- <div id="form_sign_in_no" class="form-box">
- <h5>[% loc('<strong>No</strong> Let me confirm my update by email') %]</h5>
-
- [% INCLUDE name %]
-
- <label for="password_register">[% loc('Password (optional)') %]</label>
-
- <div class="general-notes">
- <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
- </div>
-
- <div class="form-txt-submit-box">
- <input type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
- <input class="green-btn" type="submit" name="submit_register" id="submit_register" value="[% loc('Post') %]">
- </div>
-
- </div>
- </div>
-
- [% END %]
- </fieldset>
- </form>
-</div>
-[% END %]
-
-[% BLOCK name %]
- [% INCLUDE 'report/new/extra_name.html' %]
- <label for="form_name">[% loc('Name') %]</label>
- [% IF field_errors.name %]
- <p class='form-error'>[% field_errors.name %]</p>
- [% END %]
- <input type="text" [% IF problem.bodies_str == '2482' %]class="validName" [% END %]name="name" id="form_name" value="[% update.name || c.user.name | html %]" placeholder="[% loc('Your name') %]">
-
- <div class="checkbox-group">
- <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF update.anonymous==0 OR (c.cobrand.default_show_name AND update.anonymous=='') %]>
- <label class="inline" for="form_may_show_name">[% loc('Show my name publicly') %]</label>
- </div>
- <div class="checkbox-group">
- <input type="checkbox" name="add_alert" id="form_add_alert" value="1"[% ' checked' IF add_alert %]>
- <label class="inline" for="form_add_alert">[% loc( 'Alert me to future updates' ) %]</label>
- </div>
-[% END %]
diff --git a/templates/web/fixmystreet/report/update.html b/templates/web/fixmystreet/report/update.html
deleted file mode 100644
index 66e698606..000000000
--- a/templates/web/fixmystreet/report/update.html
+++ /dev/null
@@ -1,70 +0,0 @@
-[% moderating = c.user && c.user.has_permission_to('moderate', problem.bodies_str) %]
-
-[% IF loop.first %]
-<section class="full-width">
- <h4 class="static-with-rule">[% loc('Updates') %]</h4>
- <ul class="item-list item-list--updates">
-[% END %]
- <li class="item-list__item item-list__item--updates">
- [% IF moderating; original_update = update.moderation_original_data %]
- <form method="post" action="/moderate/report/[% problem.id %]/update/[% update.id %]">
- <input type="button" class="btn moderate moderate-display" value="moderate">
- <div class="moderate-edit">
- <input type="checkbox" class="hide-document" name="update_hide">
- <label for="update_hide">Hide update completely?</label>
- <br />
- <input type="checkbox" name="update_show_name" [% update.anonymous ? '' : 'checked' %]>
- <label for="update_show_name">Show name publicly?</label>
- [% IF update.photo or original_update.photo %]
- <br />
- <input type="checkbox" name="update_show_photo" [% update.photo ? 'checked' : '' %]>
- <label for="update_show_photo">Show Photo?</label>
- [% END %]
- </div>
- [% END %]
- <div class="item-list__update-wrap">
- [% IF update.whenanswered %]
- <div class="item-list__update-text">
- <p class="meta-2"> [% INCLUDE meta_line %] </p>
- </div>
- [% ELSE %]
- [% INCLUDE 'report/photo.html' object=update %]
- <div class="item-list__update-text">
- <div class="moderate-display">
- [% add_links( update.text ) | html_para %]
- </div>
- [% IF moderating %]
- <div class="moderate-edit">
- [% IF update.text != original.detail %]
- <input type="checkbox" name="update_revert_detail" class="revert-textarea">
- <label for="update_revert_detail">Revert to original</label>
- [% END %]
- <textarea name="update_detail">[% add_links( update.text ) %]</textarea>
- </div>
- [% END %]
-
- <p class="meta-2">
- <a name="update_[% update.id %]"></a>
- [% INCLUDE meta_line %]
- [% mlog = update.latest_moderation_log_entry(); IF mlog %]
- <br /> Moderated by [% mlog.user.from_body.name %] at [% prettify_dt(mlog.whenedited) %]
- [% END %]
- </p>
- </div>
- [% END %]
- </div>
- [% IF moderating %]
- <div class="moderate-edit">
- <label for="moderation_reason">Moderation reason:</label>
- <input type="text" name="moderation_reason"
- placeholder="Describe why you are moderating this">
- <input type="submit" class="red-btn" value="moderate it">
- <input type="button" class="btn cancel" value="cancel">
- </div>
- </form>
- [% END %]
- </li>
-[% IF loop.last %]
- </ul>
-</section>
-[% END %]
diff --git a/templates/web/fixmystreet/report/updates-sidebar-notes.html b/templates/web/fixmystreet/report/updates-sidebar-notes.html
deleted file mode 100644
index 9f2420392..000000000
--- a/templates/web/fixmystreet/report/updates-sidebar-notes.html
+++ /dev/null
@@ -1,7 +0,0 @@
- <p>
- [% IF c.cobrand.moniker != 'fixamingata' %]
- [% IF problem.send_method_used != 'Open311' OR c.cobrand.moniker != 'fixmystreet' OR ( problem.bodies_str != '2482' AND !problem.bodies_str.match('2347') ) %]
- [% loc( 'Please note that updates are not sent to the council.' ) %]
- [% END %]
- [% END %]
- [% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]</p>
diff --git a/templates/web/greenwich/faq/faq-en-gb.html b/templates/web/greenwich/about/faq-en-gb.html
index f143581d6..f143581d6 100644
--- a/templates/web/greenwich/faq/faq-en-gb.html
+++ b/templates/web/greenwich/about/faq-en-gb.html
diff --git a/templates/web/harrogate/faq/faq-en-gb.html b/templates/web/harrogate/about/faq-en-gb.html
index e5c9e5480..e5c9e5480 100755
--- a/templates/web/harrogate/faq/faq-en-gb.html
+++ b/templates/web/harrogate/about/faq-en-gb.html
diff --git a/templates/web/harrogate/static/privacy.html b/templates/web/harrogate/about/privacy.html
index 767f80fbf..767f80fbf 100755
--- a/templates/web/harrogate/static/privacy.html
+++ b/templates/web/harrogate/about/privacy.html
diff --git a/templates/web/hart/faq/faq-en-gb.html b/templates/web/hart/about/faq-en-gb.html
index 0379b0745..0379b0745 100755
--- a/templates/web/hart/faq/faq-en-gb.html
+++ b/templates/web/hart/about/faq-en-gb.html
diff --git a/templates/web/oxfordshire/faq/faq-en-gb.html b/templates/web/oxfordshire/about/faq-en-gb.html
index b85943e0d..b85943e0d 100755
--- a/templates/web/oxfordshire/faq/faq-en-gb.html
+++ b/templates/web/oxfordshire/about/faq-en-gb.html
diff --git a/templates/web/oxfordshire/report/new/after_photo.html b/templates/web/oxfordshire/report/new/after_photo.html
deleted file mode 100644
index bd8b7076f..000000000
--- a/templates/web/oxfordshire/report/new/after_photo.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<p><small>Please be aware that you can only attach one picture so ensure that
-you provide a picture that clearly shows the location not just the fault.
-</small></p>
diff --git a/templates/web/stevenage/faq/faq-en-gb.html b/templates/web/stevenage/about/faq-en-gb.html
index 43284a463..43284a463 100644
--- a/templates/web/stevenage/faq/faq-en-gb.html
+++ b/templates/web/stevenage/about/faq-en-gb.html
diff --git a/templates/web/warwickshire/faq/faq-en-gb.html b/templates/web/warwickshire/about/faq-en-gb.html
index 98736c0a4..98736c0a4 100755
--- a/templates/web/warwickshire/faq/faq-en-gb.html
+++ b/templates/web/warwickshire/about/faq-en-gb.html
diff --git a/templates/web/zerotb/faq/faq-en-gb.html b/templates/web/zerotb/about/faq-en-gb.html
index b2607f769..b2607f769 100644
--- a/templates/web/zerotb/faq/faq-en-gb.html
+++ b/templates/web/zerotb/about/faq-en-gb.html
diff --git a/templates/web/zurich/faq/faq-de-ch.html b/templates/web/zurich/about/faq-de-ch.html
index deda32a1c..deda32a1c 100644
--- a/templates/web/zurich/faq/faq-de-ch.html
+++ b/templates/web/zurich/about/faq-de-ch.html
diff --git a/templates/web/zurich/admin/index.html b/templates/web/zurich/admin/index.html
index a51c7f6fe..275f50183 100644
--- a/templates/web/zurich/admin/index.html
+++ b/templates/web/zurich/admin/index.html
@@ -1,9 +1,9 @@
[% PROCESS 'admin/header.html' title=loc('Summary') -%]
<ul>
- <li>[% tprintf( loc('<strong>%d</strong> live problems'), total_problems_live ) %];
- [% tprintf( loc('from %d different users'), total_problems_users ) %]</li>
- <li>[% tprintf( loc('%d council contacts &ndash; %d confirmed, %d unconfirmed'), contacts.total, contacts.1, contacts.0) %]</li>
+ <li>[% tprintf( loc('<strong>%s</strong> live problems'), total_problems_live ) %];
+ [% tprintf( loc('from %s different users'), total_problems_users ) %]</li>
+ <li>[% tprintf( loc('%s council contacts &ndash; %s confirmed, %s unconfirmed'), contacts.total, contacts.1, contacts.0) %]</li>
</ul>
<h2>[% loc('Problem breakdown by state') %]</h2>
diff --git a/templates/web/zurich/admin/problem_row.html b/templates/web/zurich/admin/problem_row.html
index baa8d3ac7..acbf17017 100644
--- a/templates/web/zurich/admin/problem_row.html
+++ b/templates/web/zurich/admin/problem_row.html
@@ -36,9 +36,9 @@
<td>
[% IF problem.photo %]
- [% FOR photo IN problem.get_photoset(c).images %]
+ [% FOR photo IN problem.photos %]
<div class="update-img">
- <img height="60" width="90" alt="" src="[% c.cobrand.base_url %]/photo/[% photo.0 %].temp.jpeg">
+ <img height="60" width="90" alt="" src="[% c.cobrand.base_url %][% photo.url_temp %]">
</div>
[% END %]
[% END %]
diff --git a/templates/web/zurich/admin/report_edit-sdm.html b/templates/web/zurich/admin/report_edit-sdm.html
index 8e576a718..a0ff1038d 100644
--- a/templates/web/zurich/admin/report_edit-sdm.html
+++ b/templates/web/zurich/admin/report_edit-sdm.html
@@ -82,10 +82,10 @@
[% IF problem.photo %]
<dd>
- [% FOR photo IN problem.get_photoset(c).images %]
+ [% FOR photo IN problem.photos %]
<div class="update-img">
- <a href="[% c.cobrand.base_url %]/photo/[% photo.0 %].fulltemp.jpeg" rel="fancy">
- <img alt="Photo of this report" src="[% c.cobrand.base_url %]/photo/[% photo.0 %].temp.jpeg">
+ <a href="[% c.cobrand.base_url %][% photo.url_temp_full %]" rel="fancy">
+ <img alt="Photo of this report" src="[% c.cobrand.base_url %][% photo.url_temp %]">
<span>zoom</span>
</a>
</div>
diff --git a/templates/web/zurich/admin/report_edit.html b/templates/web/zurich/admin/report_edit.html
index 64d0950ee..dd876935c 100644
--- a/templates/web/zurich/admin/report_edit.html
+++ b/templates/web/zurich/admin/report_edit.html
@@ -106,10 +106,10 @@
[% IF problem.photo %]
<dd>
- [% FOR photo IN problem.get_photoset(c).images %]
+ [% FOR photo IN problem.photos %]
<div class="update-img">
- <a href="[% c.cobrand.base_url %]/photo/[% photo.0 %].fulltemp.jpeg" rel="fancy">
- <img alt="Photo of this report" src="[% c.cobrand.base_url %]/photo/[% photo.0 %].temp.jpeg">
+ <a href="[% c.cobrand.base_url %][% photo.url_temp_full %]" rel="fancy">
+ <img alt="Photo of this report" src="[% c.cobrand.base_url %][% photo.url_temp %]">
<span>zoom</span>
</a>
</div>
diff --git a/templates/web/zurich/admin/update_edit.html b/templates/web/zurich/admin/update_edit.html
index ab40981a5..fbd96f3a5 100644
--- a/templates/web/zurich/admin/update_edit.html
+++ b/templates/web/zurich/admin/update_edit.html
@@ -29,8 +29,8 @@
<li>[% loc('Created:') %] [% PROCESS format_date this_date=update.created %] [% update.created.hms %]</li>
[% IF update.photo %]
-[% photo = update.get_photo_params %]
-<li><img alt="" height="[% photo.height %]" width="[% photo.width %]" src="[% photo.url %]">
+[% photo = update.photos.first %]
+<li><img alt="" src="[% photo.url %]">
<input type="checkbox" id="remove_photo" name="remove_photo" value="1">
<label for="remove_photo" class="inline">[% loc("Remove photo (can't be undone!)") %]</label></li>
[% END %]
diff --git a/templates/web/zurich/auth/token.html b/templates/web/zurich/auth/token.html
deleted file mode 100644
index e199691e0..000000000
--- a/templates/web/zurich/auth/token.html
+++ /dev/null
@@ -1,25 +0,0 @@
-[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Confirm account') %]
-
-[% IF token_not_found %]
-
- <div class="confirmation-header confirmation-header--failure">
-
- <h1>[% loc('We have not been able to confirm your account - sorry.') %]</h1>
- <p>[% loc('This may be because the link is too old or already used, or the address was not copied correctly.') %]</p>
-
- </div>
-
-[% ELSE %]
-
- <div class="confirmation-header confirmation-header--inbox">
-
- <h1>[% loc('Please check your email') %]</h1>
- <p>[% loc("We have sent you an email containing a link to confirm your account.") %]</p>
-
- <p>[% loc("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>
-
- </div>
-
-[% END %]
-
-[% INCLUDE 'footer.html' %]
diff --git a/templates/web/zurich/email_sent.html b/templates/web/zurich/email_sent.html
deleted file mode 100644
index 90bfcdbda..000000000
--- a/templates/web/zurich/email_sent.html
+++ /dev/null
@@ -1,11 +0,0 @@
-[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Create a report') %]
-
-<div class="confirmation-header confirmation-header--inbox">
-
- <h1>[% loc("Nearly Done! Now check your email...") %]</h1>
-
- <p>[% loc("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>
-
-</div>
-
-[% INCLUDE 'footer.html' %]
diff --git a/templates/web/zurich/report/_item.html b/templates/web/zurich/report/_item.html
index 9ba5e6fcb..a4d274a8e 100644
--- a/templates/web/zurich/report/_item.html
+++ b/templates/web/zurich/report/_item.html
@@ -1,9 +1,7 @@
<li class="item-list__item item-list--reports__item">
<a href="[% c.uri_for('/report', problem.id ) %]">
- [% IF problem.state != 'unconfirmed' AND problem.photo AND c.cobrand.allow_photo_display(problem);
- photo = problem.get_photo_params
- %]
- <img class="img" height="60" width="90" src="[% photo.url_fp %]" alt="">
+ [% IF problem.state != 'unconfirmed' AND problem.photo AND c.cobrand.allow_photo_display(problem) %]
+ <img class="img" height="60" width="90" src="[% problem.photos.first.url_fp %]" alt="">
[% END %]
[% IF problem.state != 'unconfirmed' %]
<h4>[% problem.title | html %]</h4>
diff --git a/templates/web/zurich/report/new/fill_in_details_form.html b/templates/web/zurich/report/new/fill_in_details_form.html
index c8c567786..7628bf23f 100644
--- a/templates/web/zurich/report/new/fill_in_details_form.html
+++ b/templates/web/zurich/report/new/fill_in_details_form.html
@@ -39,39 +39,41 @@
<p class='form-error'>[% field_errors.bodies %]</p>
[% END %]
- <label for="form_detail">[% loc('Details') %]</label>
- [% IF field_errors.detail %]
- <p class='form-error'>[% field_errors.detail %]</p>
- [% END %]
- <textarea rows="7" cols="26" name="detail" id="form_detail" placeholder="[% loc('Please fill in details of the problem.') %]" required>[% report.detail | html %]</textarea>
-
- [% PROCESS "report/new/category_wrapper.html" %]
-
- [% IF c.cobrand.allow_photo_upload %]
+ [% IF c.cobrand.allow_photo_upload %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
<label for="form_photo">
[% loc('Photo') %]
[% loc('(Defect &amp; location of defect)') %]
</label>
- [% IF upload_fileid || report.photo %]
- [% IF upload_fileid %]
- <img align="right" src="/photo/[% upload_fileid %].temp.jpeg" alt="">
- <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
- [% END %]
-
- <p>[% loc('You have already attached photos to this report. Note that you can attach a maximum of 3 to this report (if you try to upload more, the oldest will be removed).') %]</p>
- [% IF report.photo %]
- <img align="right" src="/photo/[% report.id %].jpeg">
- [% END %]
- [% END %]
+ [% IF field_errors.photo %]
+ <p class='form-error'>[% field_errors.photo %]</p>
+ [% END %]
- [% IF field_errors.photo %]
- <p class='form-error'>[% field_errors.photo %]</p>
+ <div id="form_photos">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached photos to this report. Note that you can attach a maximum of 3 to this report (if you try to upload more, the oldest will be removed).') %]</p>
+ [% FOREACH id IN upload_fileid.split(',') %]
+ <img align="right" src="/photo/[% id %].temp.jpeg" alt="">
[% END %]
+ [% END %]
<input type="file" name="photo1" id="form_photo">
+ <label for="form_photo2">[% loc('Photo') %]</label>
<input type="file" name="photo2" id="form_photo2">
+ <label for="form_photo3">[% loc('Photo') %]</label>
<input type="file" name="photo3" id="form_photo3">
+ </div>
+ [% END %]
+
+ [% TRY %][% PROCESS 'report/new/after_photo.html' %][% CATCH file %][% END %]
+
+ <label for="form_detail">[% loc('Details') %]</label>
+ [% IF field_errors.detail %]
+ <p class='form-error'>[% field_errors.detail %]</p>
[% END %]
+ <textarea rows="7" cols="26" name="detail" id="form_detail" placeholder="[% loc('Please fill in details of the problem.') %]" required>[% report.detail | html %]</textarea>
+
+ [% PROCESS "report/new/category_wrapper.html" %]
<label for="form_email">[% loc('Your email') %]</label>
[% IF field_errors.email %]