aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/email/bathnes/_council_reference.html3
-rw-r--r--templates/email/bathnes/_council_reference.txt2
-rw-r--r--templates/email/bathnes/archive.html56
-rw-r--r--templates/email/bathnes/archive.txt27
-rw-r--r--templates/email/bathnes/confirm_report_sent.html1
-rw-r--r--templates/email/bathnes/confirm_report_sent.txt1
-rw-r--r--templates/email/bathnes/other-updated.html28
-rw-r--r--templates/email/bathnes/other-updated.txt19
-rw-r--r--templates/email/bromley/_problem-confirm_extra.html6
-rw-r--r--templates/email/bromley/_problem-confirm_extra.txt4
-rw-r--r--templates/email/buckinghamshire/_council_reference.html4
-rw-r--r--templates/email/buckinghamshire/_council_reference.txt2
-rw-r--r--templates/email/buckinghamshire/alert-update.html27
-rw-r--r--templates/email/buckinghamshire/alert-update.txt30
-rw-r--r--templates/email/buckinghamshire/confirm_report_sent.html1
-rw-r--r--templates/email/buckinghamshire/confirm_report_sent.txt1
-rw-r--r--templates/email/buckinghamshire/other-reported.txt29
-rw-r--r--templates/email/default/_email_bottom.html24
-rw-r--r--templates/email/default/_email_settings.html12
-rw-r--r--templates/email/default/_email_top.html31
-rw-r--r--templates/email/default/alert-confirm.txt10
-rw-r--r--templates/email/default/alert-update.html8
-rw-r--r--templates/email/default/alert-update.txt8
-rw-r--r--templates/email/default/change_email.txt2
-rw-r--r--templates/email/default/inactive-account.html26
-rw-r--r--templates/email/default/inactive-account.txt18
-rw-r--r--templates/email/default/login.txt2
-rw-r--r--templates/email/default/other-reported.txt2
-rw-r--r--templates/email/default/other-updated.html3
-rw-r--r--templates/email/default/other-updated.txt4
-rw-r--r--templates/email/default/partial.txt6
-rw-r--r--templates/email/default/problem-confirm-not-sending.txt2
-rw-r--r--templates/email/default/problem-confirm.txt2
-rw-r--r--templates/email/default/problem-moderated.txt2
-rw-r--r--templates/email/default/questionnaire.html7
-rw-r--r--templates/email/default/submit.html22
-rw-r--r--templates/email/default/submit.txt18
-rw-r--r--templates/email/default/update-confirm.txt6
-rw-r--r--templates/email/fiksgatami/nn/submit.txt18
-rw-r--r--templates/email/fiksgatami/submit.txt18
-rw-r--r--templates/email/fixamingata/_email_bottom.html22
-rw-r--r--templates/email/fixamingata/alert-confirm.txt2
-rw-r--r--templates/email/fixamingata/change_email.txt2
-rw-r--r--templates/email/fixamingata/login.txt2
-rw-r--r--templates/email/fixamingata/other-reported.txt2
-rw-r--r--templates/email/fixamingata/other-updated.txt2
-rw-r--r--templates/email/fixamingata/partial.txt2
-rw-r--r--templates/email/fixamingata/problem-confirm-not-sending.txt4
-rw-r--r--templates/email/fixamingata/problem-confirm.txt4
-rw-r--r--templates/email/fixamingata/problem-moderated.txt2
-rw-r--r--templates/email/fixamingata/questionnaire.html7
-rw-r--r--templates/email/fixamingata/submit.html20
-rw-r--r--templates/email/fixamingata/submit.txt20
-rw-r--r--templates/email/fixamingata/update-confirm.txt4
-rw-r--r--templates/email/fixmystreet.com/_submit_footer.html9
-rw-r--r--templates/email/fixmystreet.com/bathnes/submit-street-light-fault.html79
-rw-r--r--templates/email/fixmystreet.com/bathnes/submit-street-light-fault.txt44
-rw-r--r--templates/email/fixmystreet.com/other-reported.html31
-rw-r--r--templates/email/fixmystreet.com/other-reported.txt29
-rw-r--r--templates/email/fixmystreet.com/submit.html22
-rw-r--r--templates/email/fixmystreet.com/submit.txt18
-rw-r--r--templates/email/rutland/_email_color_overrides.html21
-rw-r--r--templates/email/warwickshire/archive.txt26
-rw-r--r--templates/email/zurich/submit-external-personal.txt8
-rw-r--r--templates/email/zurich/submit-external-wish.txt10
-rw-r--r--templates/email/zurich/submit-external.txt2
-rw-r--r--templates/email/zurich/submit-feedback-pending.txt2
-rw-r--r--templates/email/zurich/submit-in-progress.txt2
-rw-r--r--templates/email/zurich/submit.txt2
-rw-r--r--templates/web/angus/header.html3
-rwxr-xr-xtemplates/web/base/about/privacy.html14
-rw-r--r--templates/web/base/admin/bodies.html4
-rw-r--r--templates/web/base/admin/body-form.html2
-rw-r--r--templates/web/base/admin/body.html4
-rw-r--r--templates/web/base/admin/category-checkboxes.html2
-rw-r--r--templates/web/base/admin/config_page.html4
-rw-r--r--templates/web/base/admin/index.html4
-rw-r--r--templates/web/base/admin/list_updates.html6
-rw-r--r--templates/web/base/admin/open311-form-fields.html119
-rw-r--r--templates/web/base/admin/problem_row.html6
-rw-r--r--templates/web/base/admin/report-category.html6
-rw-r--r--templates/web/base/admin/report_edit.html12
-rw-r--r--templates/web/base/admin/stats/index.html3
-rw-r--r--templates/web/base/admin/template_edit.html22
-rw-r--r--templates/web/base/admin/templates.html5
-rw-r--r--templates/web/base/admin/update_edit.html3
-rw-r--r--templates/web/base/admin/user_import.html76
-rw-r--r--templates/web/base/around/_error_multiple.html11
-rw-r--r--templates/web/base/around/_postcode_form_post.html0
-rwxr-xr-xtemplates/web/base/around/_updates.html2
-rwxr-xr-xtemplates/web/base/around/display_location.html2
-rw-r--r--templates/web/base/around/index.html2
-rw-r--r--templates/web/base/around/postcode_form.html6
-rw-r--r--templates/web/base/auth/2faform.html2
-rw-r--r--templates/web/base/common_header_tags.html4
-rw-r--r--templates/web/base/common_scripts.html2
-rw-r--r--templates/web/base/contact/index.html16
-rwxr-xr-xtemplates/web/base/develop/email_list.html11
-rwxr-xr-x[-rw-r--r--]templates/web/base/footer.html0
-rw-r--r--templates/web/base/front/footer-marketing.html4
-rw-r--r--templates/web/base/front/stats.html12
-rw-r--r--templates/web/base/header.html3
-rw-r--r--templates/web/base/header_opengraph.html2
-rw-r--r--templates/web/base/main_nav.html5
-rw-r--r--templates/web/base/maps/google-ol.html2
-rw-r--r--templates/web/base/maps/osm.html1
-rw-r--r--templates/web/base/questionnaire/index.html42
-rw-r--r--templates/web/base/report/_inspect.html28
-rw-r--r--templates/web/base/report/_item.html3
-rw-r--r--templates/web/base/report/_show_name_label.html5
-rw-r--r--templates/web/base/report/_update_state.html24
-rw-r--r--templates/web/base/report/display.html4
-rw-r--r--templates/web/base/report/display_tools.html4
-rw-r--r--templates/web/base/report/nearby.html3
-rw-r--r--templates/web/base/report/new/category.html8
-rw-r--r--templates/web/base/report/new/category_extras.html27
-rw-r--r--templates/web/base/report/new/category_extras_fields.html6
-rw-r--r--templates/web/base/report/new/councils_text_all.html3
-rw-r--r--templates/web/base/report/new/fill_in_details_form.html2
-rw-r--r--templates/web/base/report/new/form_report.html14
-rw-r--r--templates/web/base/report/new/form_title.html7
-rw-r--r--templates/web/base/report/new/form_user_loggedin.html30
-rw-r--r--templates/web/base/report/new/form_user_loggedout_by_email.html30
-rw-r--r--templates/web/base/report/new/form_user_name.html10
-rw-r--r--templates/web/base/report/update-form.html8
-rw-r--r--templates/web/base/report/update.html23
-rw-r--r--templates/web/base/report/update/form_name.html5
-rw-r--r--templates/web/base/report/update/form_state_checkbox.html17
-rw-r--r--templates/web/base/report/update/form_update.html18
-rw-r--r--templates/web/base/report/updates.html2
-rw-r--r--templates/web/base/reports/_list-filters.html10
-rwxr-xr-xtemplates/web/base/reports/_ward-list.html19
-rwxr-xr-xtemplates/web/base/reports/body.html2
-rw-r--r--templates/web/bathnes/around/_postcode_form_post.html2
-rw-r--r--templates/web/bathnes/around/intro.html1
-rw-r--r--templates/web/bathnes/contact/index.html139
-rw-r--r--templates/web/bathnes/contact/rejecting-text.html3
-rw-r--r--templates/web/bathnes/footer_extra.html26
-rw-r--r--templates/web/bathnes/header_extra.html1
-rw-r--r--templates/web/bathnes/header_site.html36
-rw-r--r--templates/web/bathnes/report/_council_sent_info.html17
-rw-r--r--templates/web/bathnes/report/_show_name_label.html5
-rw-r--r--templates/web/bathnes/report/new/_form_labels.html5
-rw-r--r--templates/web/bathnes/report/new/councils_extra_text.html5
-rw-r--r--templates/web/bathnes/tracking_code.html12
-rw-r--r--templates/web/borsetshire/around/postcode_form.html2
-rw-r--r--templates/web/bristol/maps/noscript_map.html32
-rw-r--r--templates/web/bromley/report/new/form_user.html132
-rw-r--r--templates/web/bromley/report/new/form_user_loggedout.html7
-rw-r--r--templates/web/bromley/report/new/form_user_loggedout_by_email.html37
-rw-r--r--templates/web/bromley/report/new/form_user_loggedout_password.html18
-rw-r--r--templates/web/bromley/report/new/form_user_name.html12
-rw-r--r--templates/web/bromley/report/update-form.html150
-rw-r--r--templates/web/bromley/report/update/form_update.html54
-rw-r--r--templates/web/bromley/report/update/form_user_loggedout.html7
-rw-r--r--templates/web/bromley/report/update/form_user_loggedout_by_email.html23
-rw-r--r--templates/web/bromley/report/update/form_user_loggedout_email.html8
-rw-r--r--templates/web/bromley/report/update/form_user_loggedout_password.html18
-rwxr-xr-xtemplates/web/buckinghamshire/about/faq-en-gb.html108
-rw-r--r--templates/web/buckinghamshire/around/intro.html2
-rw-r--r--templates/web/buckinghamshire/contact/_footer.html5
-rw-r--r--templates/web/buckinghamshire/contact/submit.html21
-rw-r--r--templates/web/buckinghamshire/footer.html23
-rw-r--r--templates/web/buckinghamshire/front/footer-marketing.html0
-rw-r--r--templates/web/buckinghamshire/header_logo.html2
-rw-r--r--templates/web/buckinghamshire/report/_item.html139
-rw-r--r--templates/web/buckinghamshire/report/_update-form-heading.html1
-rw-r--r--templates/web/buckinghamshire/report/new/_form_labels.html5
-rw-r--r--templates/web/buckinghamshire/report/new/councils_extra_text.html1
-rw-r--r--templates/web/buckinghamshire/report/new/form_heading.html8
-rw-r--r--templates/web/buckinghamshire/report/new/roads_message.html11
-rw-r--r--templates/web/buckinghamshire/report/new/top_message.html0
-rw-r--r--templates/web/buckinghamshire/tokens/confirm_problem.html44
-rw-r--r--templates/web/fiksgatami/front/footer-marketing.html4
-rw-r--r--templates/web/fiksgatami/header.html3
-rwxr-xr-xtemplates/web/fixamingata/about/council.html214
-rwxr-xr-xtemplates/web/fixamingata/about/faq-sv.html154
-rwxr-xr-xtemplates/web/fixamingata/about/privacy.html102
-rw-r--r--templates/web/fixamingata/front/footer-marketing.html4
-rw-r--r--templates/web/fixamingata/front/recent.html12
-rw-r--r--templates/web/fixamingata/front/tips.html9
-rw-r--r--templates/web/fixamingata/report/new/form_user_loggedout.html2
-rw-r--r--templates/web/fixamingata/report/new/top_message_none.html6
-rw-r--r--templates/web/fixmystreet-uk-councils/about/privacy.html486
-rw-r--r--templates/web/fixmystreet.com/about/council-dashboard.html74
-rwxr-xr-xtemplates/web/fixmystreet.com/about/faq-en-gb.html36
-rwxr-xr-xtemplates/web/fixmystreet.com/about/privacy.html475
-rw-r--r--templates/web/fixmystreet.com/admin/stats/refused.html19
-rw-r--r--templates/web/fixmystreet.com/footer_extra.html2
-rw-r--r--templates/web/fixmystreet.com/front/footer-marketing.html18
-rw-r--r--templates/web/fixmystreet.com/header.html43
-rw-r--r--templates/web/fixmystreet.com/header/css.html14
-rw-r--r--templates/web/fixmystreet.com/header_extra.html15
-rw-r--r--templates/web/fixmystreet.com/reports/cobrand_stats.html6
-rw-r--r--templates/web/fixmystreet.com/reports/summary.html98
-rw-r--r--templates/web/hart/header.html3
-rw-r--r--templates/web/oxfordshire/header.html13
-rw-r--r--templates/web/oxfordshire/report/new/form_heading.html3
-rw-r--r--templates/web/rutland/about/faq-en-gb.html172
-rwxr-xr-xtemplates/web/rutland/front/footer-marketing.html8
-rwxr-xr-xtemplates/web/rutland/site-name.html1
-rw-r--r--templates/web/stevenage/header.html3
-rw-r--r--templates/web/warwickshire/header.html3
-rw-r--r--templates/web/zurich/admin/body.html30
-rw-r--r--templates/web/zurich/admin/contact-form.html35
-rw-r--r--templates/web/zurich/admin/header.html14
-rw-r--r--templates/web/zurich/admin/index-dm.html6
-rw-r--r--templates/web/zurich/admin/index-sdm.html2
-rw-r--r--templates/web/zurich/admin/index.html3
-rw-r--r--templates/web/zurich/admin/problem_row.html5
-rw-r--r--templates/web/zurich/admin/report_edit-sdm.html16
-rw-r--r--templates/web/zurich/admin/report_edit.html35
-rw-r--r--templates/web/zurich/admin/stats/index.html39
-rw-r--r--templates/web/zurich/header.html3
-rw-r--r--templates/web/zurich/maps/zurich.html2
-rw-r--r--templates/web/zurich/report/_item.html4
-rw-r--r--templates/web/zurich/report/_main.html2
-rw-r--r--templates/web/zurich/report/updates.html6
218 files changed, 3522 insertions, 1432 deletions
diff --git a/templates/email/bathnes/_council_reference.html b/templates/email/bathnes/_council_reference.html
new file mode 100644
index 000000000..8a1a9e1ee
--- /dev/null
+++ b/templates/email/bathnes/_council_reference.html
@@ -0,0 +1,3 @@
+<p style="[% p_style %]">The report's reference number is <strong>[% problem.id %]</strong>.
+ Please quote this if you need to contact the council about this report.</p>
+
diff --git a/templates/email/bathnes/_council_reference.txt b/templates/email/bathnes/_council_reference.txt
new file mode 100644
index 000000000..75d7e93d2
--- /dev/null
+++ b/templates/email/bathnes/_council_reference.txt
@@ -0,0 +1,2 @@
+The report's reference number is [% problem.id %]. Please quote this if
+you need to contact the council about this report.
diff --git a/templates/email/bathnes/archive.html b/templates/email/bathnes/archive.html
new file mode 100644
index 000000000..823d5dfbb
--- /dev/null
+++ b/templates/email/bathnes/archive.html
@@ -0,0 +1,56 @@
+[%
+
+email_summary = "Your reports on " _ site_name;
+
+PROCESS '_email_settings.html';
+
+INCLUDE '_email_top.html';
+
+%]
+
+<th style="[% td_style %][% only_column_style %]">
+ <h1 style="[% h1_style %]">Your reports on [% site_name %]</h1>
+ <p style="[% p_style %]">
+ Hello [% user.name %],
+ </p>
+ <p style="[% p_style %]">
+ FixMyStreet is being updated in Bath &amp; North East Somerset to
+ improve how problems get reported.
+ </p>
+ <p style="[% p_style %]">
+ As part of this process we are closing all reports
+ made before the update.
+ </p>
+ <p style="[% p_style %]">
+ We noticed that you have [% report_count %] old [% nget('report', 'reports', report_count) %] on the system,
+ which we've listed below.
+ </p>
+ <p style="[% p_style %]">
+ All of your reports will have been received and reviewed by Bath &amp; North
+ East Somerset, so if your report is no longer an issue, you don't need to do
+ anything.
+ </p>
+ <p style="[% p_style %]">
+ If you believe that the issue has not been resolved you can <a href="https://www.bathnes.gov.uk/reportit">report it again here.</a>
+ </p>
+
+ [% FOR report IN reports %]
+ <div style="[% list_item_style %]">
+ [% IF report.photo %]
+ <a href="[% cobrand.base_url_for_report( report ) %]/report/[% report.id %]">
+ <img style="[% list_item_photo_style %]" src="[% inline_image(report.get_first_image_fp) %]" alt="">
+ </a>
+ [% END %]
+ <h2 style="[% list_item_h2_style %]"><a href="[% cobrand.base_url_for_report( report ) %]/report/[% report.id %]">
+ [%~ report.title | html ~%]
+ </a></h2>
+ <p style="[% list_item_p_style %]">[% report.detail | html %]</p>
+ <p style="[% list_item_date_style %]">
+ Reported [% report.time_ago %] ago.
+ </p>
+ </div>
+ [% END %]
+
+</th>
+
+[% INCLUDE '_email_bottom.html' %]
diff --git a/templates/email/bathnes/archive.txt b/templates/email/bathnes/archive.txt
new file mode 100644
index 000000000..e14c049e2
--- /dev/null
+++ b/templates/email/bathnes/archive.txt
@@ -0,0 +1,27 @@
+Subject: Your reports on [% site_name %]
+
+Hello [% user.name %],
+
+FixMyStreet is being updated in Bath & North East Somerset to improve how problems get reported.
+
+As part of this process we are closing all reports made before the update.
+
+We noticed that you have [% report_count %] old [% nget('report', 'reports', report_count) %] on the system, which we've listed below.
+
+All of your reports will have been received and reviewed by Bath & North East Somerset, so if your report is no longer an issue, you don't need to do anything.
+
+If you believe that the issue has not been resolved you can report it again here: https://www.bathnes.gov.uk/reportit
+
+[% FOR report IN reports %]
+
+[% report.title %]
+
+Reported [% report.time_ago %] ago.
+
+View report: [% cobrand.base_url_for_report( report ) %]/report/[% report.id %]
+
+----
+
+[% END %]
+
+The FixMyStreet team and Bath & North East Somerset Council
diff --git a/templates/email/bathnes/confirm_report_sent.html b/templates/email/bathnes/confirm_report_sent.html
new file mode 100644
index 000000000..5a0c19f0d
--- /dev/null
+++ b/templates/email/bathnes/confirm_report_sent.html
@@ -0,0 +1 @@
+[% INCLUDE 'other-reported.html' %] \ No newline at end of file
diff --git a/templates/email/bathnes/confirm_report_sent.txt b/templates/email/bathnes/confirm_report_sent.txt
new file mode 100644
index 000000000..72fe01f6d
--- /dev/null
+++ b/templates/email/bathnes/confirm_report_sent.txt
@@ -0,0 +1 @@
+[% INCLUDE 'other-reported.txt' %] \ No newline at end of file
diff --git a/templates/email/bathnes/other-updated.html b/templates/email/bathnes/other-updated.html
new file mode 100644
index 000000000..fb68c86ee
--- /dev/null
+++ b/templates/email/bathnes/other-updated.html
@@ -0,0 +1,28 @@
+[%
+
+email_summary = "Thanks for logging your update";
+email_columns = 2;
+
+PROCESS '_email_settings.html';
+INCLUDE '_email_top.html';
+
+%]
+
+<th style="[% td_style %][% primary_column_style %]" id="primary_column">
+ [% start_padded_box %]
+ <h1 style="[% h1_style %]">Your update has been&nbsp;logged</h1>
+ <p style="[% p_style %]">Your update has been logged on [% site_name %].</p>
+ <p style="[% p_style %]">The report's reference number is <strong>[% update.problem_id %]</strong>.
+ Please quote this if you need to contact the council about this report.</p>
+ <p style="margin: 20px auto; text-align: center">
+ <a style="[% button_style %]" href="[% cobrand.base_url_for_report(problem) %][% update.url %]">View my update</a>
+ </p>
+ [% end_padded_box %]
+</th>
+[% WRAPPER '_email_sidebar.html'
+ object = update
+ report = problem %]
+ <p style="[% secondary_p_style %]">[% update.text | html %]</p>
+[% END %]
+
+[% INCLUDE '_email_bottom.html' %]
diff --git a/templates/email/bathnes/other-updated.txt b/templates/email/bathnes/other-updated.txt
new file mode 100644
index 000000000..57d5f44cf
--- /dev/null
+++ b/templates/email/bathnes/other-updated.txt
@@ -0,0 +1,19 @@
+Subject: Your update has been logged
+
+Hello [% update.name %],
+
+Your update has been logged on [% site_name %]:
+
+[% cobrand.base_url_for_report(problem) %][% update.url %]
+
+The report's reference number is [% update.problem_id %]. Please quote this if
+you need to contact the council about this report.
+
+Your update reads:
+
+[% update.text %]
+
+[% signature %]
+
+This email was sent automatically, from an unmonitored email account - so
+please do not reply to it.
diff --git a/templates/email/bromley/_problem-confirm_extra.html b/templates/email/bromley/_problem-confirm_extra.html
new file mode 100644
index 000000000..92605f8d2
--- /dev/null
+++ b/templates/email/bromley/_problem-confirm_extra.html
@@ -0,0 +1,6 @@
+</p>
+<p style="[% p_style %]">
+By clicking validate you consent that for the purposes of investigating and
+resolving the reported issue, your provided information can be shared with the
+council, their contractors, partners or other organisations deemed to have
+responsibility or bearing on the issue.
diff --git a/templates/email/bromley/_problem-confirm_extra.txt b/templates/email/bromley/_problem-confirm_extra.txt
new file mode 100644
index 000000000..1cb494de2
--- /dev/null
+++ b/templates/email/bromley/_problem-confirm_extra.txt
@@ -0,0 +1,4 @@
+By clicking validate you consent that for the purposes of investigating and
+resolving the reported issue, your provided information can be shared with the
+council, their contractors, partners or other organisations deemed to have
+responsibility or bearing on the issue.
diff --git a/templates/email/buckinghamshire/_council_reference.html b/templates/email/buckinghamshire/_council_reference.html
new file mode 100644
index 000000000..56944f954
--- /dev/null
+++ b/templates/email/buckinghamshire/_council_reference.html
@@ -0,0 +1,4 @@
+[% IF problem.external_id ~%]
+<p style="[% p_style %]">The report's reference number is <strong>[% problem.external_id %]</strong>.
+ Please quote this if you need to contact the council about this report.</p>
+[%~ END %]
diff --git a/templates/email/buckinghamshire/_council_reference.txt b/templates/email/buckinghamshire/_council_reference.txt
new file mode 100644
index 000000000..3dd3f1e9f
--- /dev/null
+++ b/templates/email/buckinghamshire/_council_reference.txt
@@ -0,0 +1,2 @@
+[% IF problem.external_id %]The report's reference number is [% problem.external_id %]. Please quote this if
+you need to contact the council about this report.[% END %]
diff --git a/templates/email/buckinghamshire/alert-update.html b/templates/email/buckinghamshire/alert-update.html
new file mode 100644
index 000000000..48e6871c2
--- /dev/null
+++ b/templates/email/buckinghamshire/alert-update.html
@@ -0,0 +1,27 @@
+[%
+
+title = report.title | html;
+category = report.category | html;
+email_summary = "New updates on " _ category _ " report";
+email_columns = 2;
+
+PROCESS '_email_settings.html';
+
+INCLUDE '_email_top.html';
+
+%]
+
+<th style="[% td_style %][% primary_column_style %]" id="primary_column">
+ [% start_padded_box %]
+ <h1 style="[% h1_style %]">New updates on <a href="[% problem_url %]">[% category %] report</a></h1>
+ [%~ INCLUDE '_email_comment_list.html' %]
+ <p style="[% p_style %]"><a href="[% unsubscribe_url %]">Unsubscribe from alerts about this report</a></p>
+ [% end_padded_box %]
+</th>
+[% WRAPPER '_email_sidebar.html' object = report %]
+ <h2 style="[% h2_style %]">[% title | html %]</h2>
+ <p style="[% secondary_p_style %]">[% report.detail | html %]</p>
+ [%~ INCLUDE '_council_reference.html' problem=report p_style=secondary_p_style %]
+[% END %]
+
+[% INCLUDE '_email_bottom.html' %]
diff --git a/templates/email/buckinghamshire/alert-update.txt b/templates/email/buckinghamshire/alert-update.txt
new file mode 100644
index 000000000..a77f3a2a0
--- /dev/null
+++ b/templates/email/buckinghamshire/alert-update.txt
@@ -0,0 +1,30 @@
+Subject: New [% site_name %] updates on [% report.category %] report
+
+You asked us to send you an email every time an update was made to the
+[% site_name %] report: [% report.title %].
+
+The following updates have been left on this report:
+
+[% INCLUDE '_email_comment_list.txt' %]
+
+[% state_message %]
+
+If you would like to view or reply to these updates, please visit the following URL:
+
+ [% problem_url %]
+
+[% INCLUDE '_council_reference.txt' problem=report %]
+
+This email was sent automatically, from an unmonitored email account - so
+please do not reply to it.
+
+[% signature %]
+
+
+Unsubscribe?
+
+We currently email you whenever someone leaves an update on the
+[% site_name %] report: [% report.title %].
+
+If you no longer wish to receive an email whenever this report is updated,
+please follow this link: [% unsubscribe_url %]
diff --git a/templates/email/buckinghamshire/confirm_report_sent.html b/templates/email/buckinghamshire/confirm_report_sent.html
new file mode 100644
index 000000000..5a0c19f0d
--- /dev/null
+++ b/templates/email/buckinghamshire/confirm_report_sent.html
@@ -0,0 +1 @@
+[% INCLUDE 'other-reported.html' %] \ No newline at end of file
diff --git a/templates/email/buckinghamshire/confirm_report_sent.txt b/templates/email/buckinghamshire/confirm_report_sent.txt
new file mode 100644
index 000000000..72fe01f6d
--- /dev/null
+++ b/templates/email/buckinghamshire/confirm_report_sent.txt
@@ -0,0 +1 @@
+[% INCLUDE 'other-reported.txt' %] \ No newline at end of file
diff --git a/templates/email/buckinghamshire/other-reported.txt b/templates/email/buckinghamshire/other-reported.txt
new file mode 100644
index 000000000..50a879d79
--- /dev/null
+++ b/templates/email/buckinghamshire/other-reported.txt
@@ -0,0 +1,29 @@
+Subject: Your [% report.category | lower %] report has been logged
+
+Hello [% report.name %],
+
+Your report to [% report.body %] has been logged on [% site_name %].
+
+[% IF c.cobrand.is_council && !c.cobrand.owns_problem( report ) %]
+Please note that [% c.cobrand.council_name %] is not responsible for this type
+of report, so it will instead be sent to [% report.body %].
+[% ELSE %]
+[% TRY %][% INCLUDE '_council_reference.txt' problem=report %][% CATCH file %][% END %]
+[% END %]
+
+It is available to view at:
+
+[% cobrand.base_url_for_report(report) %][% report.url %]
+
+Your report is at the following location:
+
+[% report.title %]
+
+And details:
+
+[% report.detail %]
+
+[% signature %]
+
+This email was sent automatically, from an unmonitored email account - so
+please do not reply to it.
diff --git a/templates/email/default/_email_bottom.html b/templates/email/default/_email_bottom.html
index 76e381201..4967dfaa2 100644
--- a/templates/email/default/_email_bottom.html
+++ b/templates/email/default/_email_bottom.html
@@ -1,16 +1,20 @@
</tr>
- <tr>
- <th colspan="[% email_columns %]" style="[% td_style %][% hint_style %]" class="hint">
- [%~ IF email_footer %]
- [% email_footer %]
- [%~ ELSE %]
- This email was sent automatically, from an unmonitored email account. Please do not reply to it.
- [%~ END %]
- </th>
- </tr>
</table>
</th>
- <th></th>
+ <th class="spacer-cell"></th>
+ </tr>
+ </table>
+ <table [% wrapper_table %] style="[% wrapper_style %]">
+ <tr>
+ <th class="spacer-cell"></th>
+ <th width="[% wrapper_max_width %]" style="[% td_style %][% hint_style %]" class="hint">
+ [%~ IF email_footer %]
+ [% email_footer %]
+ [%~ ELSE %]
+ This email was sent automatically, from an unmonitored email account. Please do not reply to it.
+ [%~ END %]
+ </th>
+ <th class="spacer-cell"></th>
</tr>
</table>
</body>
diff --git a/templates/email/default/_email_settings.html b/templates/email/default/_email_settings.html
index d94466c02..f6db8334c 100644
--- a/templates/email/default/_email_settings.html
+++ b/templates/email/default/_email_settings.html
@@ -43,9 +43,11 @@ button_border_radius = "4px" # a full CSS border-radius property
button_background_color = color_yellow
button_background_color_fixed = color_green_dark
button_background_color_notfixed = color_red_dark
+button_background_color_dontknow = color_yellow
button_text_color = color_black
button_text_color_fixed = color_white
button_text_color_notfixed = color_white
+button_text_color_dontknow = color_black
button_font_weight = "bold"
%]
@@ -58,7 +60,7 @@ button_font_weight = "bold"
# Variables used inside the email templates.
table_reset = 'cellspacing="0" cellpadding="0" border="0" width="100%"'
-wrapper_table = 'cellspacing="0" cellpadding="5" border="0" width="100%"'
+wrapper_table = table_reset
link_style = "color: $link_text_color;"
link_hover_style = "text-decoration: none; color: $link_hover_text_color;"
@@ -68,7 +70,12 @@ td_style = "font-family: $body_font_family; font-size: 16px; line-height: 21px;
body_style = "margin: 0;"
wrapper_style = "$td_style background: $body_background_color; color: $body_text_color;"
-hint_style = "padding: ${ column_padding }px 0; color: $body_text_color; font-size: 12px; line-height: 18px;"
+wrapper_max_width = 620 # in pixels without "px" suffix
+wrapper_min_width = 520 # in pixels without "px" suffix
+
+hint_min_width = wrapper_min_width - (column_padding * 2)
+hint_style = "min-width: ${ hint_min_width }px; padding: ${ column_padding }px; color: $body_text_color; font-size: 12px; line-height: 18px;"
+
header_style = "padding: $header_padding; background: $header_background_color; color: $header_text_color;"
only_column_style = "padding: ${ column_padding }px; vertical-align: top; background-color: $primary_column_background_color; color: $primary_column_text_color;"
@@ -101,6 +108,7 @@ contact_td_style = "vertical-align: top; padding: 0.4em 0 0.4em 0; width: 100%;"
button_style = "display: inline-block; border: 10px solid $button_background_color; border-width: 10px 15px; border-radius: $button_border_radius; background-color: $button_background_color; color: $button_text_color; font-size: 18px; line-height: 21px; font-weight: $button_font_weight; text-decoration: underline;"
fixed_button_style = "$button_style border-color: $button_background_color_fixed; background-color: $button_background_color_fixed; color: $button_text_color_fixed; margin: 0 0.2em;"
notfixed_button_style = "$button_style border-color: $button_background_color_notfixed; background-color: $button_background_color_notfixed; color: $button_text_color_notfixed; margin: 0 0.2em;"
+dontknow_button_style = "$button_style border-color: $button_background_color_dontknow; background-color: $button_background_color_dontknow; color: $button_text_color_dontknow; margin: 0 0.2em;"
%]
diff --git a/templates/email/default/_email_top.html b/templates/email/default/_email_top.html
index 102e23e59..75dec6788 100644
--- a/templates/email/default/_email_top.html
+++ b/templates/email/default/_email_top.html
@@ -22,14 +22,11 @@
font-family: [% body_font_family %] !important;
}
- [%~ # 550px = 5+5+5+520+5+5+5 %]
- @media only screen and (max-width: 549px) {
- #main {
+ @media only screen and (max-width: [% wrapper_min_width - 1 %]px) {
+ #main, .hint {
min-width: 0 !important;
}
- }
- @media only screen and (max-width: 500px) {
#main table, #main tr, #main th {
display: block !important;
}
@@ -39,20 +36,30 @@
width: auto !important;
}
}
+
+ @media only screen and (min-width: [% wrapper_max_width %]px) {
+ .spacer-cell {
+ background-color: [% body_background_color %];
+ }
+ }
</style>
</head>
<body style="[% body_style %]">
<table [% wrapper_table %] style="[% wrapper_style %]">
<tr>
- <th></th>
- <th width="620" style="[% td_style %] min-width: 520px;" id="main">
+ <th class="spacer-cell"></th>
+ <th width="[% wrapper_max_width %]" style="[% td_style %][% hint_style %]" class="hint">
+ [% email_summary %]
+ </th>
+ <th class="spacer-cell"></th>
+ </tr>
+ </table>
+ <table [% wrapper_table %] style="[% wrapper_style %]">
+ <tr>
+ <th class="spacer-cell"></th>
+ <th width="[% wrapper_max_width %]" style="[% td_style %] min-width: [% wrapper_min_width %]px;" id="main">
<table [% table_reset %]>
<tr>
- <th colspan="[% email_columns %]" style="[% td_style %][% hint_style %]" class="hint">
- [% email_summary %]
- </th>
- </tr>
- <tr>
<th colspan="[% email_columns %]" style="[% td_style %][% header_style %]">
[%~ IF file_exists("web/cobrands/${ img_dir }/images/email-logo.gif") ~%]
<img src="[% inline_image('web/cobrands/' _ img_dir _ '/images/email-logo.gif') %]" width="[% logo_width %]" height="[% logo_height %]" alt="[% site_name %]" style="[% logo_style %]"/>
diff --git a/templates/email/default/alert-confirm.txt b/templates/email/default/alert-confirm.txt
index 886b04b00..74fe7e64e 100644
--- a/templates/email/default/alert-confirm.txt
+++ b/templates/email/default/alert-confirm.txt
@@ -1,6 +1,6 @@
-Subject: Confirm your [% INCLUDE 'site-name.txt' | trim %] alert
+Subject: Confirm your [% site_name %] alert
-Please click on the link below to confirm your [% INCLUDE 'site-name.txt' | trim %] alert.
+Please click on the link below to confirm your [% site_name %] alert.
[% token_url %]
@@ -8,11 +8,11 @@ If you can't click the link, copy and paste it to the address bar of your web
browser.
This confirms that you'd like to receive an email when someone makes a
-[% INCLUDE 'site-name.txt' | trim %] report within your chosen area.
+[% site_name %] report within your chosen area.
-Email alerts are a free service from [% INCLUDE 'site-name.txt' | trim %].
+Email alerts are a free service from [% site_name %].
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/alert-update.html b/templates/email/default/alert-update.html
index 8c392685d..a2f1c69a9 100644
--- a/templates/email/default/alert-update.html
+++ b/templates/email/default/alert-update.html
@@ -1,6 +1,6 @@
[%
-title = title | html;
+title = report.title | html;
email_summary = "New updates on &ldquo;" _ title _ "&rdquo;";
email_columns = 2;
@@ -14,12 +14,14 @@ INCLUDE '_email_top.html';
[% start_padded_box %]
<h1 style="[% h1_style %]">New updates on <a href="[% problem_url %]">[% title %]</a></h1>
[%~ INCLUDE '_email_comment_list.html' %]
+ [% UNLESS hide_unsubscribe %]
<p style="[% p_style %]"><a href="[% unsubscribe_url %]">Unsubscribe from alerts about this report</a></p>
+ [% END %]
[% end_padded_box %]
</th>
[% WRAPPER '_email_sidebar.html' object = report %]
- <h2 style="[% h2_style %]">[% title | html %]</h2>
- <p style="[% secondary_p_style %]">[% detail | html %]</p>
+ <h2 style="[% h2_style %]">[% report.title | html %]</h2>
+ <p style="[% secondary_p_style %]">[% report.detail | html %]</p>
[% END %]
[% INCLUDE '_email_bottom.html' %]
diff --git a/templates/email/default/alert-update.txt b/templates/email/default/alert-update.txt
index 3bf9e4377..cfeba2e36 100644
--- a/templates/email/default/alert-update.txt
+++ b/templates/email/default/alert-update.txt
@@ -1,7 +1,7 @@
-Subject: New [% site_name %] updates on report: '[% title %]'
+Subject: New [% site_name %] updates on report: '[% report.title %]'
You asked us to send you an email every time an update was made to the
-[% site_name %] report: [% title %].
+[% site_name %] report: [% report.title %].
The following updates have been left on this report:
@@ -19,10 +19,12 @@ please do not reply to it.
[% signature %]
+[% IF NOT hide_unsubscribe %]
Unsubscribe?
We currently email you whenever someone leaves an update on the
-[% site_name %] report: [% title %].
+[% site_name %] report: [% report.title %].
If you no longer wish to receive an email whenever this report is updated,
please follow this link: [% unsubscribe_url %]
+[% END %]
diff --git a/templates/email/default/change_email.txt b/templates/email/default/change_email.txt
index 8db6b105e..3d3328b8f 100644
--- a/templates/email/default/change_email.txt
+++ b/templates/email/default/change_email.txt
@@ -5,7 +5,7 @@ email address on [% site_name %].
[% c.uri_for_action( 'auth/token', token ) %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/inactive-account.html b/templates/email/default/inactive-account.html
new file mode 100644
index 000000000..78b277877
--- /dev/null
+++ b/templates/email/default/inactive-account.html
@@ -0,0 +1,26 @@
+[%
+
+email_summary = "Your inactive account on " _ site_name;
+email_columns = 1;
+
+PROCESS '_email_settings.html';
+
+INCLUDE '_email_top.html';
+
+%]
+
+<th style="[% td_style %][% only_column_style %]">
+ <h1 style="[% h1_style %]">Your inactive account</h1>
+ <p style="[% p_style %]">
+Your account on [% site_name %] has been inactive for [% email_from %]
+[% nget('month', 'months', email_from) %], and we automatically remove
+accounts that have been inactive after [% anonymize_from %]
+[% nget('month', 'months', anonymize_from) %]. If you wish to keep your
+account, please log in to the site and that will keep it active:
+</p>
+ <p style="margin: 20px auto; text-align: center">
+ <a style="[% button_style %]" href="[% url %]">Visit [% site_name %]</a>
+ </p>
+ <p style="[% p_style %]">Thanks for using the site.</p>
+
+[% INCLUDE '_email_bottom.html' %]
diff --git a/templates/email/default/inactive-account.txt b/templates/email/default/inactive-account.txt
new file mode 100644
index 000000000..1b6b8b5bd
--- /dev/null
+++ b/templates/email/default/inactive-account.txt
@@ -0,0 +1,18 @@
+Subject: Your inactive account on [% site_name %]
+
+Hello [% user.name %],
+
+Your account on [% site_name %] has been inactive for [% email_from %]
+[% nget('month', 'months', email_from) %], and we automatically remove
+accounts that have been inactive after [% anonymize_from %]
+[% nget('month', 'months', anonymize_from) %]. If you wish to keep your
+account, please log in to the site and that will keep it active:
+
+[% url %]
+
+Thanks for using the site.
+
+[% INCLUDE 'signature.txt' %]
+
+This email was sent automatically, from an unmonitored email account - so
+please do not reply to it.
diff --git a/templates/email/default/login.txt b/templates/email/default/login.txt
index 9a57c4fd9..61920daf7 100644
--- a/templates/email/default/login.txt
+++ b/templates/email/default/login.txt
@@ -7,7 +7,7 @@ Please click on the link below to confirm your email address.
Once you've done this, you'll be able to view and manage all reports and
updates you've made on [% site_name %].
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/other-reported.txt b/templates/email/default/other-reported.txt
index b626e56d9..559b0933b 100644
--- a/templates/email/default/other-reported.txt
+++ b/templates/email/default/other-reported.txt
@@ -21,7 +21,7 @@ And details:
[% report.detail %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/other-updated.html b/templates/email/default/other-updated.html
index 27eba9007..e7f09e123 100644
--- a/templates/email/default/other-updated.html
+++ b/templates/email/default/other-updated.html
@@ -11,7 +11,8 @@ INCLUDE '_email_top.html';
<th style="[% td_style %][% primary_column_style %]" id="primary_column">
[% start_padded_box %]
<h1 style="[% h1_style %]">Your update has been&nbsp;logged</h1>
- <p style="[% p_style %]">Your update has been logged on [% site_name %]:</p>
+ <p style="[% p_style %]">Your update has been logged on [% site_name %].</p>
+ [% TRY %][% INCLUDE '_council_reference.html' %][% CATCH file %][% END %]
<p style="margin: 20px auto; text-align: center">
<a style="[% button_style %]" href="[% cobrand.base_url_for_report(problem) %][% update.url %]">View my update</a>
</p>
diff --git a/templates/email/default/other-updated.txt b/templates/email/default/other-updated.txt
index 7e5631ef1..5b5195f80 100644
--- a/templates/email/default/other-updated.txt
+++ b/templates/email/default/other-updated.txt
@@ -6,11 +6,13 @@ Your update has been logged on [% site_name %]:
[% cobrand.base_url_for_report(problem) %][% update.url %]
+[% TRY %][% INCLUDE '_council_reference.txt' %][% CATCH file %][% END %]
+
Your update reads:
[% update.text %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/partial.txt b/templates/email/default/partial.txt
index fb5e17c10..ea405f0b4 100644
--- a/templates/email/default/partial.txt
+++ b/templates/email/default/partial.txt
@@ -1,8 +1,8 @@
-Subject: Confirm your report on [% INCLUDE 'site-name.txt' | trim %]
+Subject: Confirm your report on [% site_name %]
Hello [% report.name || report.email %],
-To confirm the report you have uploaded to [% INCLUDE 'site-name.txt' | trim %]
+To confirm the report you have uploaded to [% site_name %]
via [% report.service %], and to check or add any details, please visit the
following URL:
@@ -10,7 +10,7 @@ following URL:
Thanks!
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/problem-confirm-not-sending.txt b/templates/email/default/problem-confirm-not-sending.txt
index d27b47677..06e84e6d5 100644
--- a/templates/email/default/problem-confirm-not-sending.txt
+++ b/templates/email/default/problem-confirm-not-sending.txt
@@ -25,7 +25,7 @@ Thank you for supporting [% site_name %].
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/problem-confirm.txt b/templates/email/default/problem-confirm.txt
index e9e7378d1..693d7a131 100644
--- a/templates/email/default/problem-confirm.txt
+++ b/templates/email/default/problem-confirm.txt
@@ -29,7 +29,7 @@ Thank you for submitting a report through [% site_name %].
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/problem-moderated.txt b/templates/email/default/problem-moderated.txt
index f69004be2..7c1c3b5c2 100644
--- a/templates/email/default/problem-moderated.txt
+++ b/templates/email/default/problem-moderated.txt
@@ -31,7 +31,7 @@ the team at [% report_complain_uri %]
Thank you for submitting a report through [% site_name %].
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/default/questionnaire.html b/templates/email/default/questionnaire.html
index 6d9c32af4..eaa570ae0 100644
--- a/templates/email/default/questionnaire.html
+++ b/templates/email/default/questionnaire.html
@@ -16,8 +16,11 @@ INCLUDE '_email_top.html';
<p style="[% p_style %]">[% created %] ago, you reported a problem using [% site_name %].</p>
<p style="[% p_style %]">Help us keep [% site_name %] up to date by letting us know whether the problem has been fixed yet:</p>
<p style="margin: 20px auto; text-align: center">
- <a style="[% fixed_button_style %]" href="[% url %]">Fixed</a>
- <a style="[% notfixed_button_style %]" href="[% url %]">Not fixed</a>
+ <a style="[% fixed_button_style %]" href="[% url %]?been_fixed=Yes">Fixed</a>
+ <a style="[% notfixed_button_style %]" href="[% url %]?been_fixed=No">Not fixed</a>
+ </p>
+ <p style="margin: 20px auto; text-align: center">
+ <a style="[% dontknow_button_style %]" href="[% url %]?been_fixed=Unknown">Don’t know</a>
</p>
<p style="[% p_style %]">Thank you! Your feedback is really valuable.</p>
[% end_padded_box %]
diff --git a/templates/email/default/submit.html b/templates/email/default/submit.html
index 582670f98..8dc06041e 100644
--- a/templates/email/default/submit.html
+++ b/templates/email/default/submit.html
@@ -23,38 +23,36 @@ of a local problem that they believe might require your attention.</p>
<table [% table_reset %]>
<tr>
<th style="[% contact_th_style %]">Name</th>
- <td style="[% contact_td_style %]">[% name | html %]</td>
+ <td style="[% contact_td_style %]">[% report.name | html %]</td>
</tr>
<tr>
<th style="[% contact_th_style %]">Email</th>
<td style="[% contact_td_style %]">
- [%~ IF email ~%]
- <a href="mailto:[% email | html %]">[% email | html %]</a>
+ [%~ IF report.user.email ~%]
+ <a href="mailto:[% report.user.email | html %]">[% report.user.email | html %]</a>
[%~ ELSE ~%]
<strong>No email address provided, only phone number</strong>
[%~ END ~%]
</td>
</tr>
- [%~ IF phone %]
+ [%~ IF report.user.phone %]
<tr>
<th style="[% contact_th_style %]">Phone</th>
- <td style="[% contact_td_style %]"><a href="tel:[% phone | html %]">[% phone | html %]</a></td>
+ <td style="[% contact_td_style %]"><a href="tel:[% report.user.phone | html %]">[% report.user.phone | html %]</a></td>
</tr>
[%~ END %]
</table>
- <p style="[% p_style %] margin-top: 0.5em;">Replies to this message will go directly to [% name | html %], the user who reported the problem.</p>
+ <p style="[% p_style %] margin-top: 0.5em;">Replies to this message will go directly to [% report.name | html %], the user who reported the problem.</p>
[% end_padded_box %]
</th>
[% WRAPPER '_email_sidebar.html' object = report %]
- <h2 style="[% h2_style %]">[% title | html %]</h2>
- [%~ IF category_line %]
- <p style="[% secondary_p_style %]">[% category | html %]</p>
- [%~ END %]
- <p style="[% secondary_p_style %]">[% detail | html %]</p>
+ <h2 style="[% h2_style %]">[% report.title | html %]</h2>
+ <p style="[% secondary_p_style %]">[% report.category | html %]</p>
+ <p style="[% secondary_p_style %]">[% report.detail | html %]</p>
<p style="[% secondary_p_style %]">
<strong>Location:</strong>
<a href="[% osm_url %]" title="View OpenStreetMap of this location">
- [%~ latitude %], [% longitude ~%]
+ [%~ report.latitude %], [% report.longitude ~%]
</a>
[% IF closest_address %]<br>[% closest_address | trim | replace("\n\n", "<br>") %][% END %]
</p>
diff --git a/templates/email/default/submit.txt b/templates/email/default/submit.txt
index 8c88a17f8..f08e723a8 100644
--- a/templates/email/default/submit.txt
+++ b/templates/email/default/submit.txt
@@ -1,4 +1,4 @@
-Subject: Problem Report: [% title %]
+Subject: Problem Report: [% report.title %]
Dear [% bodies_name %],
@@ -13,19 +13,21 @@ please visit the following link:
[% has_photo %]----------
-Name: [% name %]
+Name: [% report.name %]
-Email: [% email OR "None provided" %]
+Email: [% report.user.email OR "None provided" %]
-Phone: [% phone OR "None provided" %]
+Phone: [% report.user.phone OR "None provided" %]
-[% category_line %]Subject: [% title %]
+Category: [% report.category %]
-Details: [% detail %]
+Subject: [% report.title %]
-Latitude: [% latitude %]
+Details: [% report.detail %]
-Longitude: [% longitude %]
+Latitude: [% report.latitude %]
+
+Longitude: [% report.longitude %]
View OpenStreetMap of this location: [% osm_url %]
diff --git a/templates/email/default/update-confirm.txt b/templates/email/default/update-confirm.txt
index 039a3bb39..669645f0a 100644
--- a/templates/email/default/update-confirm.txt
+++ b/templates/email/default/update-confirm.txt
@@ -1,8 +1,8 @@
-Subject: Confirm your update on [% INCLUDE 'site-name.txt' | trim %]
+Subject: Confirm your update on [% site_name %]
Hello [% update.name %],
-Please click on the link below to confirm your update on [% INCLUDE 'site-name.txt' | trim %]:
+Please click on the link below to confirm your update on [% site_name %]:
[% token_url %]
@@ -15,7 +15,7 @@ Your update reads:
[% INCLUDE 'update-confirm-donotsend.txt' %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
This email was sent automatically, from an unmonitored email account - so
please do not reply to it.
diff --git a/templates/email/fiksgatami/nn/submit.txt b/templates/email/fiksgatami/nn/submit.txt
index dfbdd9457..0e3f453ba 100644
--- a/templates/email/fiksgatami/nn/submit.txt
+++ b/templates/email/fiksgatami/nn/submit.txt
@@ -1,4 +1,4 @@
-Subject: Problemrapport: [% title %]
+Subject: Problemrapport: [% report.title %]
Til [% bodies_name %],
@@ -13,19 +13,21 @@ problemet, ver venleg og besøk følgjande lenkje:
[% has_photo %]----------
-Namn: [% name %]
+Namn: [% report.name %]
-E-post: [% email OR '-' %]
+E-post: [% report.user.email OR '-' %]
-Telefon: [% phone OR '-' %]
+Telefon: [% report.user.phone OR '-' %]
-[% category_line %]Tema: [% title %]
+Kategori: [% report.category %]
-Detaljer: [% detail %]
+Tema: [% report.title %]
-Breiddegrad: [% latitude %]
+Detaljer: [% report.detail %]
-Lengdegrad: [% longitude %]
+Breiddegrad: [% report.latitude %]
+
+Lengdegrad: [% report.longitude %]
[% closest_address %]----------
diff --git a/templates/email/fiksgatami/submit.txt b/templates/email/fiksgatami/submit.txt
index 165b804f1..114f4cf50 100644
--- a/templates/email/fiksgatami/submit.txt
+++ b/templates/email/fiksgatami/submit.txt
@@ -1,4 +1,4 @@
-Subject: Problemrapport: [% title %]
+Subject: Problemrapport: [% report.title %]
Til [% bodies_name %],
@@ -13,19 +13,21 @@ vennligst besøk følgende lenke:
[% has_photo %]----------
-Navn: [% name %]
+Navn: [% report.name %]
-E-post: [% email OR '-' %]
+E-post: [% report.user.email OR '-' %]
-Telefon: [% phone OR '-' %]
+Telefon: [% report.user.phone OR '-' %]
-[% category_line %]Tema: [% title %]
+Kategori: [% report.category %]
-Detajer: [% detail %]
+Tema: [% report.title %]
-Breddegrad: [% latitude %]
+Detajer: [% report.detail %]
-Lengegrad: [% longitude %]
+Breddegrad: [% report.latitude %]
+
+Lengegrad: [% report.longitude %]
[% closest_address %]----------
diff --git a/templates/email/fixamingata/_email_bottom.html b/templates/email/fixamingata/_email_bottom.html
index dab4486cd..0a8c95c1c 100644
--- a/templates/email/fixamingata/_email_bottom.html
+++ b/templates/email/fixamingata/_email_bottom.html
@@ -1,17 +1,21 @@
</tr>
- <tr>
- <th colspan="[% email_columns %]" style="[% td_style %][% hint_style %]" class="hint">
- [%~ IF email_footer %]
- [% email_footer %]
- [%~ ELSE %]
- Det går inte att svara på detta mail
- [%~ END %]
- </th>
- </tr>
</table>
</th>
<th></th>
</tr>
</table>
+ <table [% wrapper_table %] style="[% wrapper_style %]">
+ <tr>
+ <th></th>
+ <th width="[% wrapper_max_width %]" style="[% td_style %][% hint_style %]" class="hint">
+ [%~ IF email_footer %]
+ [% email_footer %]
+ [%~ ELSE %]
+ Det går inte att svara på detta mail
+ [%~ END %]
+ </th>
+ <th></th>
+ </tr>
+ </table>
</body>
</html>
diff --git a/templates/email/fixamingata/alert-confirm.txt b/templates/email/fixamingata/alert-confirm.txt
index 8f17765b6..4ada66e9d 100644
--- a/templates/email/fixamingata/alert-confirm.txt
+++ b/templates/email/fixamingata/alert-confirm.txt
@@ -10,4 +10,4 @@ just valde att prenumerera till på FixaMinGata:
Om du inte kan klicka på länken kan du kopiera den och klistra in den
i adressfältet på din webbläsare.
-[% INCLUDE 'signature.txt' %]
+[% signature %]
diff --git a/templates/email/fixamingata/change_email.txt b/templates/email/fixamingata/change_email.txt
index c83c9bd3f..e59565aaf 100644
--- a/templates/email/fixamingata/change_email.txt
+++ b/templates/email/fixamingata/change_email.txt
@@ -5,6 +5,6 @@ e-postadress på [% site_name %].
[% c.uri_for_action( 'auth/token', token ) %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
Det går inte att svara på detta mail.
diff --git a/templates/email/fixamingata/login.txt b/templates/email/fixamingata/login.txt
index e3d8f9f27..4aa5b9785 100644
--- a/templates/email/fixamingata/login.txt
+++ b/templates/email/fixamingata/login.txt
@@ -8,5 +8,5 @@ webbsidan.
[% c.uri_for_action( 'auth/token', token ) %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
diff --git a/templates/email/fixamingata/other-reported.txt b/templates/email/fixamingata/other-reported.txt
index f530f788e..2c50c765c 100644
--- a/templates/email/fixamingata/other-reported.txt
+++ b/templates/email/fixamingata/other-reported.txt
@@ -21,6 +21,6 @@ Och detaljerna:
[% report.detail %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
Det går inte att svara på detta mail.
diff --git a/templates/email/fixamingata/other-updated.txt b/templates/email/fixamingata/other-updated.txt
index 2010511e9..a5d9c6288 100644
--- a/templates/email/fixamingata/other-updated.txt
+++ b/templates/email/fixamingata/other-updated.txt
@@ -10,6 +10,6 @@ Din uppdatering:
[% update.text %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
Det går inte att svara på detta mail.
diff --git a/templates/email/fixamingata/partial.txt b/templates/email/fixamingata/partial.txt
index f29b6b914..b93942324 100644
--- a/templates/email/fixamingata/partial.txt
+++ b/templates/email/fixamingata/partial.txt
@@ -9,4 +9,4 @@ via [% report.service %] måste du klicka på:
Tack!
-[% INCLUDE 'signature.txt' %]
+[% signature %]
diff --git a/templates/email/fixamingata/problem-confirm-not-sending.txt b/templates/email/fixamingata/problem-confirm-not-sending.txt
index 0ec162063..d631eac75 100644
--- a/templates/email/fixamingata/problem-confirm-not-sending.txt
+++ b/templates/email/fixamingata/problem-confirm-not-sending.txt
@@ -1,4 +1,4 @@
-Subject: Bekräfta din rapport på [% INCLUDE 'site-name.txt' | trim %]
+Subject: Bekräfta din rapport på [% site_name %]
Hej [% report.name %],
@@ -17,6 +17,6 @@ Du har angivit följande information om problemet:
[% report.detail %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
Det går inte att svara på detta mail.
diff --git a/templates/email/fixamingata/problem-confirm.txt b/templates/email/fixamingata/problem-confirm.txt
index 8d020ce5d..3db8c0b7e 100644
--- a/templates/email/fixamingata/problem-confirm.txt
+++ b/templates/email/fixamingata/problem-confirm.txt
@@ -1,4 +1,4 @@
-Subject: Bekräfta din rapport på [% INCLUDE 'site-name.txt' | trim %]
+Subject: Bekräfta din rapport på [% site_name %]
Hej [% report.name %],
@@ -16,4 +16,4 @@ Du har angivit följande information om problemet:
[% report.detail %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
diff --git a/templates/email/fixamingata/problem-moderated.txt b/templates/email/fixamingata/problem-moderated.txt
index ad03ba421..010a0949c 100644
--- a/templates/email/fixamingata/problem-moderated.txt
+++ b/templates/email/fixamingata/problem-moderated.txt
@@ -28,6 +28,6 @@ Du kan se rapporten på [% report_uri %]
Om du inte tycker att rapporten skulle ha blivit modererad kan du kontakta
FixaMinGata:s support på [% report_complain_uri %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
Det går inte att svara på detta mail.
diff --git a/templates/email/fixamingata/questionnaire.html b/templates/email/fixamingata/questionnaire.html
index 0f15b478e..d66c50535 100644
--- a/templates/email/fixamingata/questionnaire.html
+++ b/templates/email/fixamingata/questionnaire.html
@@ -16,8 +16,11 @@ INCLUDE '_email_top.html';
<p style="[% p_style %]">[% created %] sedan lämnade du en rapport på FixaMinGata.</p>
<p style="[% p_style %]">För att hålla alla rapporter uppdaterade skulle vi uppskatta om du kunde informera oss om huruvida problemet har blivit fixat än:</p>
<p style="margin: 20px auto; text-align: center">
- <a style="[% fixed_button_style %]" href="[% url %]">Fixat</a>
- <a style="[% notfixed_button_style %]" href="[% url %]">Ej fixat</a>
+ <a style="[% fixed_button_style %]" href="[% url %]?been_fixed=Yes">Fixat</a>
+ <a style="[% notfixed_button_style %]" href="[% url %]?been_fixed=No">Ej fixat</a>
+ </p>
+ <p style="margin: 20px auto; text-align: center">
+ <a style="[% dontknow_button_style %]" href="[% url %]?been_fixed=Unknown">Vet ej</a>
</p>
<p style="[% p_style %]">Tack! Din feedback är värdefull.</p>
[% end_padded_box %]
diff --git a/templates/email/fixamingata/submit.html b/templates/email/fixamingata/submit.html
index 65a692058..6a1208982 100644
--- a/templates/email/fixamingata/submit.html
+++ b/templates/email/fixamingata/submit.html
@@ -23,21 +23,21 @@ tror medborgaren behöver er uppmärksamhet.</p>
<table [% table_reset %]>
<tr>
<th style="[% contact_th_style %]">Namn</th>
- <td style="[% contact_td_style %]">[% name | html %]</td>
+ <td style="[% contact_td_style %]">[% report.name | html %]</td>
</tr>
<tr>
<th style="[% contact_th_style %]">Epost</th>
<td style="[% contact_td_style %]">
- [%~ IF email ~%]
- <a href="mailto:[% email | html %]">[% email | html %]</a>
+ [%~ IF report.user.email ~%]
+ <a href="mailto:[% report.user.email | html %]">[% report.user.email | html %]</a>
[%~ ELSE ~%]
[%~ END ~%]
</td>
</tr>
- [%~ IF phone %]
+ [%~ IF report.user.phone %]
<tr>
<th style="[% contact_th_style %]">Telefon</th>
- <td style="[% contact_td_style %]"><a href="tel:[% phone | html %]">[% phone | html %]</a></td>
+ <td style="[% contact_td_style %]"><a href="tel:[% report.user.phone | html %]">[% report.user.phone | html %]</a></td>
</tr>
[%~ END %]
</table>
@@ -45,15 +45,13 @@ tror medborgaren behöver er uppmärksamhet.</p>
[% end_padded_box %]
</th>
[% WRAPPER '_email_sidebar.html' object = report %]
- <h2 style="[% h2_style %]">[% title | html %]</h2>
- [%~ IF category_line %]
- <p style="[% secondary_p_style %]">[% category | html %]</p>
- [%~ END %]
- <p style="[% secondary_p_style %]">[% detail | html %]</p>
+ <h2 style="[% h2_style %]">[% report.title | html %]</h2>
+ <p style="[% secondary_p_style %]">[% report.category | html %]</p>
+ <p style="[% secondary_p_style %]">[% report.detail | html %]</p>
<p style="[% secondary_p_style %]">
<strong>Plats:</strong>
<a href="[% osm_url %]" title="Se den här platsen på OpenStreetMap">
- [%~ latitude %], [% longitude ~%]
+ [%~ report.latitude %], [% report.longitude ~%]
</a>
[% IF closest_address %]<br>[% closest_address | trim | replace("\n\n", "<br>") %][% END %]
</p>
diff --git a/templates/email/fixamingata/submit.txt b/templates/email/fixamingata/submit.txt
index fc8b65886..d2e7399b4 100644
--- a/templates/email/fixamingata/submit.txt
+++ b/templates/email/fixamingata/submit.txt
@@ -1,4 +1,4 @@
-Subject: Ny rapport: [% title %]
+Subject: Ny rapport: [% report.title %]
Till [% bodies_name %],
@@ -14,25 +14,27 @@ tror medborgaren behöver er uppmärksamhet.
** Uppgiftslämnare
-Namn: [% name %]
+Namn: [% report.name %]
-Epost: [% email OR '-' %]
+Epost: [% report.user.email OR '-' %]
-Telefonnummer: [% phone OR '-' %]
+Telefonnummer: [% report.user.phone OR '-' %]
** Information om ärendet
-ID: [% id %]
+ID: [% report.id %]
-[% category_line %]Ärende: [% title %]
+Kategori: [% report.category %]
-[% detail %]
+Ärende: [% report.title %]
+
+[% report.detail %]
** Geografisk position
-Latitude: [% latitude %]
+Latitude: [% report.latitude %]
-Longitude: [% longitude %]
+Longitude: [% report.longitude %]
** Övrigt
diff --git a/templates/email/fixamingata/update-confirm.txt b/templates/email/fixamingata/update-confirm.txt
index 6670bd0ea..314870396 100644
--- a/templates/email/fixamingata/update-confirm.txt
+++ b/templates/email/fixamingata/update-confirm.txt
@@ -1,4 +1,4 @@
-Subject: Bekräfta din uppdatering på [% INCLUDE 'site-name.txt' | trim %]
+Subject: Bekräfta din uppdatering på [% site_name %]
Hej [% update.name %],
@@ -14,4 +14,4 @@ Din uppdatering var:
[% update.text %]
-[% INCLUDE 'signature.txt' %]
+[% signature %]
diff --git a/templates/email/fixmystreet.com/_submit_footer.html b/templates/email/fixmystreet.com/_submit_footer.html
index 346ab8b66..acf14b285 100644
--- a/templates/email/fixmystreet.com/_submit_footer.html
+++ b/templates/email/fixmystreet.com/_submit_footer.html
@@ -10,12 +10,13 @@ submit_footer_link_style = "color: #9CD0EA;";
<tr>
<th style="[% td_style %] padding: [% column_padding %]px; background-color: [% color_yellow %]; color: [% color_black %];">
<h2 style="[% h2_style %] margin-bottom: 15px;">
- Never retype another FixMyStreet report
+ In-depth stats from our new, exclusive dashboard
</h2>
<p style="margin: 0;">
- Good news: we can now send these reports from FixMyStreet
- directly into your customer service queue.
- <a href="https://www.fixmystreet.com/pro/">Find out how</a>.
+ What do people report most in your area?
+ How’s your response rate?
+ And how do you compare to other UK councils?
+ <a href="https://www.fixmystreet.com/about/council-dashboard/?utm_source=council_submit_email&amp;utm_content=[% "View FixMyStreet stats for your area" | uri %]&amp;utm_medium=email&amp;utm_campaign=fms_stats_dashboard_promo">View FixMyStreet stats for your area.</a>
</p>
</th>
</tr>
diff --git a/templates/email/fixmystreet.com/bathnes/submit-street-light-fault.html b/templates/email/fixmystreet.com/bathnes/submit-street-light-fault.html
new file mode 100644
index 000000000..8af8ea1b0
--- /dev/null
+++ b/templates/email/fixmystreet.com/bathnes/submit-street-light-fault.html
@@ -0,0 +1,79 @@
+<h2>Customer Details</h2>
+
+<table>
+<tr>
+<th>Name</th>
+<td>[% name %]</td>
+</tr>
+<tr>
+<th>Email</th>
+<td>[% email OR 'None provided' %]</td>
+</tr>
+<tr>
+<th>Phone</th>
+<td>[% phone OR 'None provided' %]</td>
+</tr>
+</table>
+
+
+<h2>Enquiry Details</h2>
+
+<table>
+<tr>
+<th>Date & Time logged</th>
+<td>[% confirmed %]</td>
+</tr>
+<tr>
+<th>Report type</th>
+<td>[% report.get_extra_field_value('FaultType') %]</td>
+</tr>
+<tr>
+<th>5 or more lights affected</th>
+<td>[% report.get_extra_field_value('5Lights') %]</td>
+</tr>
+<tr>
+<th>Unit Number</th>
+<td>[% report.get_extra_field_value('unitid') %]</td>
+</tr>
+<tr>
+<th>Title</th>
+<td>[% title %]</td>
+</tr>
+<tr>
+<th>Description</th>
+<td>[% detail %]</td>
+</tr>
+<tr>
+<th>URL</th>
+<td>[% url %]</td>
+</tr>
+</table>
+[% additional_information %]
+
+
+<h2>Location Details</h2>
+
+<table>
+<tr>
+<th>Unit description and location</th>
+<td>[% report.get_extra_field_value('asset_details') %]</td>
+</tr>
+<tr>
+<th>Easting/Northing</th>
+<td>[% easting %] [% northing %]</td>
+</tr>
+<tr>
+<th>Latitude</th>
+<td>[% latitude %]</td>
+</tr>
+<tr>
+<th>Longitude</th>
+<td>[% longitude %]</td>
+</tr>
+<tr>
+<th></th>
+<td>[% closest_address %]</td>
+</tr>
+</table>
+
+<strong>NB:</strong> Replies to this email will go to the user who submitted the problem.
diff --git a/templates/email/fixmystreet.com/bathnes/submit-street-light-fault.txt b/templates/email/fixmystreet.com/bathnes/submit-street-light-fault.txt
new file mode 100644
index 000000000..a860c0a34
--- /dev/null
+++ b/templates/email/fixmystreet.com/bathnes/submit-street-light-fault.txt
@@ -0,0 +1,44 @@
+Subject: Street Light Fault: [% title %]
+
+Customer Details
+
+Name: [% name %]
+
+Email: [% email OR 'None provided' %]
+
+Phone: [% phone OR 'None provided' %]
+
+
+Enquiry Details
+
+Date & Time logged: [% confirmed %]
+
+Report type: [% report.get_extra_field_value('FaultType') %]
+
+5 or more lights affected: [% report.get_extra_field_value('5Lights') %]
+
+Unit Number: [% report.get_extra_field_value('unitid') %]
+
+
+Title: [% title %]
+
+Description: [% detail %]
+
+[% additional_information %]
+
+[% url %]
+
+Location Details
+
+Unit description and location: [% report.get_extra_field_value('asset_details') %]
+
+Easting/Northing: [% easting %]/[% northing %]
+
+Latitude: [% latitude %]
+
+Longitude: [% longitude %]
+
+[% closest_address %]
+
+
+Replies to this email will go to the user who submitted the problem.
diff --git a/templates/email/fixmystreet.com/other-reported.html b/templates/email/fixmystreet.com/other-reported.html
new file mode 100644
index 000000000..0fcb46e41
--- /dev/null
+++ b/templates/email/fixmystreet.com/other-reported.html
@@ -0,0 +1,31 @@
+[%
+
+email_summary = "Thanks for logging your report";
+email_columns = 2;
+
+PROCESS '_email_settings.html';
+INCLUDE '_email_top.html';
+
+%]
+
+<th style="[% td_style %][% primary_column_style %]" id="primary_column">
+ [% start_padded_box %]
+ <h1 style="[% h1_style %]">Your report has been&nbsp;logged</h1>
+ <p style="[% p_style %]">Your report to [% report.body %] has been logged on [% site_name %].</p>
+[% IF c.cobrand.is_council && !c.cobrand.owns_problem( report ) %]
+<p style="[% p_style %]">Please note that [% c.cobrand.council_name %] is not responsible for this type
+of report, so it will instead be sent to [% report.body %].</p>
+[% ELSE %]
+[% TRY %][% INCLUDE '_council_reference.html' problem=report %][% CATCH file %][% END %]
+[% END %]
+ <p style="margin: 20px auto; text-align: center">
+ <a style="[% button_style %]" href="[% cobrand.base_url_for_report(report) %][% report.url %]">View my report</a>
+ </p>
+ [% end_padded_box %]
+</th>
+[% WRAPPER '_email_sidebar.html' object = report %]
+ <h2 style="[% h2_style %]">[% report.title | html %]</h2>
+ <p style="[% secondary_p_style %]">[% report.detail | html %]</p>
+[% END %]
+
+[% INCLUDE '_email_bottom.html' %] \ No newline at end of file
diff --git a/templates/email/fixmystreet.com/other-reported.txt b/templates/email/fixmystreet.com/other-reported.txt
new file mode 100644
index 000000000..1dc8d0b44
--- /dev/null
+++ b/templates/email/fixmystreet.com/other-reported.txt
@@ -0,0 +1,29 @@
+Subject: Your report has been logged: [% report.title %]
+
+Hello [% report.name %],
+
+Your report to [% report.body %] has been logged on [% site_name %].
+
+[% IF c.cobrand.is_council && !c.cobrand.owns_problem( report ) %]
+Please note that [% c.cobrand.council_name %] is not responsible for this type
+of report, so it will instead be sent to [% report.body %].
+[% ELSE %]
+[% TRY %][% INCLUDE '_council_reference.txt' problem=report %][% CATCH file %][% END %]
+[% END %]
+
+It is available to view at:
+
+[% cobrand.base_url_for_report(report) %][% report.url %]
+
+Your report has the title:
+
+[% report.title %]
+
+And details:
+
+[% report.detail %]
+
+[% signature %]
+
+This email was sent automatically, from an unmonitored email account - so
+please do not reply to it.
diff --git a/templates/email/fixmystreet.com/submit.html b/templates/email/fixmystreet.com/submit.html
index 24bb5f86f..2742c4b44 100644
--- a/templates/email/fixmystreet.com/submit.html
+++ b/templates/email/fixmystreet.com/submit.html
@@ -23,34 +23,32 @@ of a local problem that they believe might require your attention.</p>
<table [% table_reset %]>
<tr>
<th style="[% contact_th_style %]">Name</th>
- <td style="[% contact_td_style %]">[% name | html %]</td>
+ <td style="[% contact_td_style %]">[% report.name | html %]</td>
</tr>
<tr>
<th style="[% contact_th_style %]">Email</th>
<td style="[% contact_td_style %]">
- [%~ IF email ~%]
- <a href="mailto:[% email | html %]">[% email | html %]</a>
+ [%~ IF report.user.email ~%]
+ <a href="mailto:[% report.user.email | html %]">[% report.user.email | html %]</a>
[%~ ELSE ~%]
<strong>No email address provided, only phone number</strong>
[%~ END ~%]
</td>
</tr>
- [%~ IF phone %]
+ [%~ IF report.user.phone %]
<tr>
<th style="[% contact_th_style %]">Phone</th>
- <td style="[% contact_td_style %]"><a href="tel:[% phone | html %]">[% phone | html %]</a></td>
+ <td style="[% contact_td_style %]"><a href="tel:[% report.user.phone | html %]">[% report.user.phone | html %]</a></td>
</tr>
[%~ END %]
</table>
- <p style="[% p_style %] margin-top: 0.5em;">Replies to this message will go directly to [% name | html %], the user who reported the problem.</p>
+ <p style="[% p_style %] margin-top: 0.5em;">Replies to this message will go directly to [% report.name | html %], the user who reported the problem.</p>
[% end_padded_box %]
</th>
[% WRAPPER '_email_sidebar.html' object = report %]
- <h2 style="[% h2_style %]">[% title | html %]</h2>
- [%~ IF category_line %]
- <p style="[% secondary_p_style %]"><strong>Category:</strong> [% category | html %]</p>
- [%~ END %]
- <p style="[% secondary_p_style %]">[% detail | html %]</p>
+ <h2 style="[% h2_style %]">[% report.title | html %]</h2>
+ <p style="[% secondary_p_style %]"><strong>Category:</strong> [% report.category | html %]</p>
+ <p style="[% secondary_p_style %]">[% report.detail | html %]</p>
[%~ IF additional_information %]
<p style="[% secondary_p_style %]">[% additional_information %]</p>
[%~ END %]
@@ -60,7 +58,7 @@ of a local problem that they believe might require your attention.</p>
[%~ " (IE)" IF coordsyst == "I" ~%]
: [% easting %]/[% northing %]
(<a href="[% osm_url %]" title="View OpenStreetMap of this location">
- [%~ latitude %], [% longitude ~%]
+ [%~ report.latitude %], [% report.longitude ~%]
</a>)
[% IF closest_address %]<br>[% closest_address | trim | replace("\n\n", "<br>") %][% END %]
</p>
diff --git a/templates/email/fixmystreet.com/submit.txt b/templates/email/fixmystreet.com/submit.txt
index 5bcbef87b..3eaf400a2 100644
--- a/templates/email/fixmystreet.com/submit.txt
+++ b/templates/email/fixmystreet.com/submit.txt
@@ -1,4 +1,4 @@
-Subject: Problem Report: [% title %]
+Subject: Problem Report: [% report.title %]
Dear [% bodies_name %],
@@ -13,15 +13,17 @@ please visit the following link:
[% has_photo %]----------
-Name: [% name %]
+Name: [% report.name %]
-Email: [% email OR 'None provided' %]
+Email: [% report.user.email OR 'None provided' %]
-Phone: [% phone OR 'None provided' %]
+Phone: [% report.user.phone OR 'None provided' %]
-[% category_line %]Subject: [% title %]
+Category: [% report.category %]
-Details: [% detail %]
+Subject: [% report.title %]
+
+Details: [% report.detail %]
[% additional_information %]
@@ -29,9 +31,9 @@ Easting/Northing
[%- " (IE)" IF coordsyst == "I" -%]
: [% easting %]/[% northing %]
-Latitude: [% latitude %]
+Latitude: [% report.latitude %]
-Longitude: [% longitude %]
+Longitude: [% report.longitude %]
View OpenStreetMap of this location: [% osm_url %]
diff --git a/templates/email/rutland/_email_color_overrides.html b/templates/email/rutland/_email_color_overrides.html
new file mode 100644
index 000000000..12ec97bc3
--- /dev/null
+++ b/templates/email/rutland/_email_color_overrides.html
@@ -0,0 +1,21 @@
+[%
+
+color_rutland_dark_green = '#265123'
+color_rutland_mid_green = '#A7B980'
+color_rutland_pale_green = '#DCE6C9'
+color_rutland_dark_grey = '#3C3C3C'
+
+body_font_family = "'PT Sans', Verdana, sans-serif"
+
+header_background_color = color_rutland_mid_green
+header_text_color = color_black
+
+secondary_column_background_color = color_rutland_pale_green
+
+button_background_color = color_rutland_dark_green
+button_text_color = color_white
+
+logo_width = "150" # pixel measurement, but without 'px' suffix
+logo_height = "77" # pixel measurement, but without 'px' suffix
+
+%]
diff --git a/templates/email/warwickshire/archive.txt b/templates/email/warwickshire/archive.txt
new file mode 100644
index 000000000..51ad37453
--- /dev/null
+++ b/templates/email/warwickshire/archive.txt
@@ -0,0 +1,26 @@
+Subject: Your reports on Warwickshire FixMyStreet
+
+Hello [% user.name %],
+
+FixMyStreet is being updated in Warwickshire to improve how problems get fixed.
+
+As part of these updates, we are closing old reports that appear to be resolved but remain open in the system.
+
+We noticed that you have [% report_count %] old [% nget('report', 'reports', report_count) %] on the system, which we've listed below.
+
+If your report is no longer an issue, you don't need to do anything.
+
+If you believe that your report is still a problem, you can reopen it by clicking or copying and pasting
+the link marked 'View report' by a report and leaving an update.
+
+[% FOR report IN reports %]
+
+[% report.title %]
+
+Reported [% report.time_ago %] ago.
+
+View report: [% cobrand.base_url_for_report( report ) %][% report.tokenised_url( user, { reopen => 'true' } ) %]#update_form
+
+----
+
+[% END %]
diff --git a/templates/email/zurich/submit-external-personal.txt b/templates/email/zurich/submit-external-personal.txt
index 820ccfb70..701d7eaab 100644
--- a/templates/email/zurich/submit-external-personal.txt
+++ b/templates/email/zurich/submit-external-personal.txt
@@ -1,4 +1,4 @@
-Subject: Züri wie neu: Weitergeleitete Meldung #[% id %]
+Subject: Züri wie neu: Weitergeleitete Meldung #[% report.id %]
Grüezi [% bodies_name %],
@@ -7,11 +7,11 @@ Grüezi [% bodies_name %],
Öffentliche URL: [% url %]
-Name des Meldenden: [% name %]
+Name des Meldenden: [% report.name %]
-Email des Meldenden: [% email %]
+Email des Meldenden: [% report.user.email %]
-Telefonnummer des Meldenden: [% phone %]
+Telefonnummer des Meldenden: [% report.user.phone %]
Bei Fragen zu "Züri wie neu" wenden Sie sich bitte an gis-zentrum@zuerich.ch.
diff --git a/templates/email/zurich/submit-external-wish.txt b/templates/email/zurich/submit-external-wish.txt
index a81d13893..3ac0ea58c 100644
--- a/templates/email/zurich/submit-external-wish.txt
+++ b/templates/email/zurich/submit-external-wish.txt
@@ -1,17 +1,17 @@
-Subject: Züri wie neu: Weitergeleitete Meldung #[% id %]
+Subject: Züri wie neu: Weitergeleitete Meldung #[% report.id %]
Grüezi [% bodies_name %],
[% external_message %]
-Name des Meldenden: [% name %]
+Name des Meldenden: [% report.name %]
-Email des Meldenden: [% email %]
+Email des Meldenden: [% report.user.email %]
-Telefonnummer des Meldenden: [% phone %]
+Telefonnummer des Meldenden: [% report.user.phone %]
-Meldung: [% detail %]
+Meldung: [% report.detail %]
Standort in AV-Online anzeigen:
http://webgis.intra.stzh.ch/AV_Online/Direct.asp?Map=AV&Search=Koord&West=[% west %]&Nord=[% nord %]&B=300
diff --git a/templates/email/zurich/submit-external.txt b/templates/email/zurich/submit-external.txt
index a747a001c..ec2053f35 100644
--- a/templates/email/zurich/submit-external.txt
+++ b/templates/email/zurich/submit-external.txt
@@ -1,4 +1,4 @@
-Subject: Züri wie neu: Weitergeleitete Meldung #[% id %]
+Subject: Züri wie neu: Weitergeleitete Meldung #[% report.id %]
Grüezi [% bodies_name %],
diff --git a/templates/email/zurich/submit-feedback-pending.txt b/templates/email/zurich/submit-feedback-pending.txt
index bd95e3812..58d35ed36 100644
--- a/templates/email/zurich/submit-feedback-pending.txt
+++ b/templates/email/zurich/submit-feedback-pending.txt
@@ -1,4 +1,4 @@
-Subject: Züri wie neu: Meldung #[% id %] bereit für Feedback
+Subject: Züri wie neu: Meldung #[% report.id %] bereit für Feedback
Guten Tag [% bodies_name %],
diff --git a/templates/email/zurich/submit-in-progress.txt b/templates/email/zurich/submit-in-progress.txt
index 7be06cf13..3c3ac65ff 100644
--- a/templates/email/zurich/submit-in-progress.txt
+++ b/templates/email/zurich/submit-in-progress.txt
@@ -1,4 +1,4 @@
-Subject: Züri wie neu: Neue Meldung #[% id %]
+Subject: Züri wie neu: Neue Meldung #[% report.id %]
Guten Tag [% bodies_name %],
diff --git a/templates/email/zurich/submit.txt b/templates/email/zurich/submit.txt
index ef4acaafe..c9c84f90c 100644
--- a/templates/email/zurich/submit.txt
+++ b/templates/email/zurich/submit.txt
@@ -1,4 +1,4 @@
-Subject: Züri wie neu: Neue Meldung #[% id %]
+Subject: Züri wie neu: Neue Meldung #[% report.id %]
Guten Tag [% bodies_name %],
diff --git a/templates/web/angus/header.html b/templates/web/angus/header.html
index 1814045cb..4b3d043a4 100644
--- a/templates/web/angus/header.html
+++ b/templates/web/angus/header.html
@@ -4,8 +4,7 @@
# SET html_att = html_att _ ' dir="rtl"';
-%]
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8"[% html_att %]><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8"[% html_att %]><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8"[% html_att %]><![endif]-->
<!--[if IE 9]> <html class="no-js ie9"[% html_att %]><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js"[% html_att %]><!--<![endif]-->
<head>
diff --git a/templates/web/base/about/privacy.html b/templates/web/base/about/privacy.html
index a794cfadf..de0fee32c 100755
--- a/templates/web/base/about/privacy.html
+++ b/templates/web/base/about/privacy.html
@@ -31,9 +31,17 @@ this. We use this information to, for example, remember you have logged in so
you don't need to do that on every page. Below, we list the cookies and
services that this site can use.
-<table cellpadding=5>
-<tr align="left"><th scope="col">Name</th><th scope="col">Typical Content</th><th scope="col">Expires</th></tr>
-<tr><td>fixmystreet_app_session</td><td nowrap>A random unique identifier</td><td>When browser is closed, or four weeks if &ldquo;Keep me signed in&rdquo; is ticked</td></tr>
+<table class="nicetable">
+ <tr>
+ <th scope="col">Name</th>
+ <th scope="col">Typical Content</th>
+ <th scope="col">Expires</th>
+ </tr>
+ <tr>
+ <td>fixmystreet_app_session</td>
+ <td nowrap>A random unique identifier</td>
+ <td>When browser is closed, or four weeks if &ldquo;Keep me signed in&rdquo; is ticked</td>
+ </tr>
</table>
[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/base/admin/bodies.html b/templates/web/base/admin/bodies.html
index 9bd85940b..9f4b81340 100644
--- a/templates/web/base/admin/bodies.html
+++ b/templates/web/base/admin/bodies.html
@@ -16,11 +16,11 @@
[% IF c.config.STAGING_SITE and !c.config.STAGING_FLAGS.send_reports %]
<p class="fms-admin-warning">
- [% tprintf(loc("As this is a staging site and %s is false, reports made on this site will be sent to the problem reporter, not the contact given for the report’s category."), "<a class='admin-offsite-link' href='http://fixmystreet.org/customising/config/#send_reports_on_staging'><code>STAGING_FLAGS send_reports</code></a>") %]
+ [% tprintf(loc("As this is a staging site and %s is false, reports made on this site will be sent to the problem reporter, not the contact given for the report’s category."), "<a class='admin-offsite-link' href='https://fixmystreet.org/customising/config/#send_reports_on_staging'><code>STAGING_FLAGS send_reports</code></a>") %]
</p>
[% END %]
- <table cellspacing="0" cellpadding="2" border="1">
+ <table cellspacing="0" cellpadding="2" border="1" id="admin_bodies">
<tr>
<th>[% loc('Name') %]</th>
[% IF c.cobrand.moniker == 'zurich' %]
diff --git a/templates/web/base/admin/body-form.html b/templates/web/base/admin/body-form.html
index 54445a282..958ea5d78 100644
--- a/templates/web/base/admin/body-form.html
+++ b/templates/web/base/admin/body-form.html
@@ -70,7 +70,7 @@
your config file is not pointing to a live MapIt service.") %]
[% END %]
<br>
- [% loc("For more information, see <a href='http://fixmystreet.org/customising/fms_and_mapit' class='admin-offsite-link'>How FixMyStreet uses Mapit</a>.")%]
+ [% loc("For more information, see <a href='https://fixmystreet.org/customising/fms_and_mapit' class='admin-offsite-link'>How FixMyStreet uses Mapit</a>.")%]
</p>
</div>
<p>
diff --git a/templates/web/base/admin/body.html b/templates/web/base/admin/body.html
index 7fa446f44..2d77f10ce 100644
--- a/templates/web/base/admin/body.html
+++ b/templates/web/base/admin/body.html
@@ -61,13 +61,13 @@
</p>
[% ELSIF c.config.STAGING_SITE and !c.config.STAGING_FLAGS.send_reports %]
<p class="fms-admin-warning">
- [% tprintf(loc("As this is a staging site and %s is false, reports made on this site will be sent to the problem reporter, not the contact given for the report’s category."), "<a class='admin-offsite-link' href='http://fixmystreet.org/customising/config/#send_reports_on_staging'><code>STAGING_FLAGS send_reports</code></a>") %]
+ [% tprintf(loc("As this is a staging site and %s is false, reports made on this site will be sent to the problem reporter, not the contact given for the report’s category."), "<a class='admin-offsite-link' href='https://fixmystreet.org/customising/config/#send_reports_on_staging'><code>STAGING_FLAGS send_reports</code></a>") %]
</p>
[% END %]
<form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
- <table cellspacing="0" cellpadding="2" border="1">
+ <table cellspacing="0" cellpadding="2" border="1" id="admin_contacts">
<tr>
<th>[% loc('Category') %]</th>
<th>[% loc('State') %]</th>
diff --git a/templates/web/base/admin/category-checkboxes.html b/templates/web/base/admin/category-checkboxes.html
index 63acd4112..f2167e955 100644
--- a/templates/web/base/admin/category-checkboxes.html
+++ b/templates/web/base/admin/category-checkboxes.html
@@ -9,7 +9,7 @@
</li>
[% FOR contact IN contacts %]
<li>
- <label>
+ <label title="[% contact.email | html %]">
<input type="checkbox" name="contacts[[% contact.id %]]" [% 'checked' IF contact.active %]/>
[% contact.category %]
</label>
diff --git a/templates/web/base/admin/config_page.html b/templates/web/base/admin/config_page.html
index d448d2a63..8e8d562ff 100644
--- a/templates/web/base/admin/config_page.html
+++ b/templates/web/base/admin/config_page.html
@@ -139,7 +139,7 @@ running version <strong>[% git_version || 'unknown' %]</strong>.
Other things can be changed on a cobrand basis by using functions in an
(optional) Cobrand .pm module, as explained in the
-<a href="http://fixmystreet.org/customising/" class="admin-offsite-link">customising section of our
+<a href="https://fixmystreet.org/customising/" class="admin-offsite-link">customising section of our
documentation</a>. If you wish to add new functionality just for your cobrand
that can't be done simply by changes to your cobrand's templates, you might
need to add a new Cobrand function.
@@ -147,7 +147,7 @@ need to add a new Cobrand function.
<p>Examples of cobrand functions are below; this is not exhaustive.
Many were added for one specific cobrand, so didn't need a general
configuration option. Please feel free to discuss on <a
-href="http://fixmystreet.org/community/" class="admin-offsite-link">our mailing list</a> if you think
+href="https://fixmystreet.org/community/" class="admin-offsite-link">our mailing list</a> if you think
something should be moved to the general.yml file, done differently,
or have any questions.</p>
diff --git a/templates/web/base/admin/index.html b/templates/web/base/admin/index.html
index 8498055b1..8691dbcf8 100644
--- a/templates/web/base/admin/index.html
+++ b/templates/web/base/admin/index.html
@@ -3,11 +3,11 @@
<div class="fms-admin-info fms-admin-floated">
This is the administration interface for [% site_name %]. If you
-need any help or guidance, there is <a href="http://fixmystreet.org/">plenty of
+need any help or guidance, there is <a href="https://fixmystreet.org/">plenty of
online documentation</a>. The FixMyStreet Platform is
<a href="https://github.com/mysociety/fixmystreet">actively supported</a> by
its developers, and has a community of people using or working on the code.
-Please <a href="http://fixmystreet.org/community/">sign up to the mailing list
+Please <a href="https://fixmystreet.org/community/">sign up to the mailing list
or get in touch</a> to let us know about your use of the FixMyStreet Platform,
and to receive notices of updates.
</div>
diff --git a/templates/web/base/admin/list_updates.html b/templates/web/base/admin/list_updates.html
index d759a2354..4b8b26d3c 100644
--- a/templates/web/base/admin/list_updates.html
+++ b/templates/web/base/admin/list_updates.html
@@ -39,7 +39,11 @@
<br>[% loc('Confirmed:') %] [% PROCESS format_time time=update.confirmed %]
</small></td>
<td>[% update.text | html %]</td>
- <td><a href="[% c.uri_for( 'update_edit', update.id ) %]">[% loc('Edit') %]</a></td>
+ <td>
+ [% IF c.user.has_permission_to('report_edit', update.problem.bodies_str_ids) %]
+ <a href="[% c.uri_for( 'update_edit', update.id ) %]">[% loc('Edit') %]</a>
+ [% END %]
+ </td>
</tr>
[% END -%]
</table>
diff --git a/templates/web/base/admin/open311-form-fields.html b/templates/web/base/admin/open311-form-fields.html
index d1067205c..b716cf175 100644
--- a/templates/web/base/admin/open311-form-fields.html
+++ b/templates/web/base/admin/open311-form-fields.html
@@ -49,6 +49,17 @@
</p>
[% IF show_body_fields %]
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Enabling this will suppress the error message that is normally emitted when an update has no description"
+ ) %]
+ </p>
+ </div>
+ <p>
+ <input type="checkbox" id="blank_updates_permitted" name="blank_updates_permitted"[% ' checked' IF object.blank_updates_permitted %]>
+ <label for="blank_updates_permitted" class="inline">[% loc('Permit blank updates') %]</label>
+ </p>
[%# These fields aren't shown for contacts %]
<div class="admin-hint">
<p>
@@ -65,48 +76,94 @@
<label for="send_comments" class="inline">[% loc('Use Open311 update-sending extension') %]</label>
</p>
- <div class="admin-hint">
- <p>
- [% loc(
- "If you've enabled Open311 update-sending above, you must identify which
- FixMyStreet <strong>user</strong> will be attributed as the creator of those updates
- when they are shown on the site. Enter the ID (number) of that user."
- ) %]
- </p>
+ <div class="admin-open311-section">
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "If you've enabled Open311 update-sending above, you must identify which
+ FixMyStreet <strong>user</strong> will be attributed as the creator of those updates
+ when they are shown on the site. Enter the ID (number) of that user."
+ ) %]
+ </p>
+ </div>
+ <p>
+ <label for"comment_user_id">[% loc('User ID to attribute fetched comments to') %]</label>
+ <input type="text" class="form-control" name="comment_user_id" value="[% object.comment_user_id %]">
+ [% IF object.comment_user_id %]
+ <a href="[% c.uri_for('user_edit', object.comment_user_id) %]">[% loc('edit user') %]</a>
+ [% END %]
+ </p>
+
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "If you've enabled Open311 update-sending above, enable <strong>suppression of alerts</strong>
+ if you do <strong>not</strong> want that user to be notified whenever these updates are created."
+ ) %]
+ </p>
+ </div>
+ <p>
+ <input type="checkbox" id="suppress_alerts" name="suppress_alerts"[% ' checked' IF object.suppress_alerts %]>
+ <label for="suppress_alerts" class="inline">[% loc('Do not send email alerts on fetched comments to problem creator') %]</label>
+ </p>
+
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "If you've enabled Open311 update-sending above, Open311 usually only accepts OPEN or CLOSED status in
+ its updates. Enable <strong>extended Open311 stauses</strong> if you want to allow extra states to be passed.
+ Check that your cobrand supports this feature before switching it on."
+ ) %]
+ </p>
+ </div>
+ <p>
+ <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF object.send_extended_statuses %]>
+ <label for="send_extended_statuses" class="inline">[% loc('Send extended Open311 statuses with service request updates') %]</label>
+ </p>
</div>
- <p>
- <label for"comment_user_id">[% loc('User ID to attribute fetched comments to') %]</label>
- <input type="text" class="form-control" name="comment_user_id" value="[% object.comment_user_id %]">
- [% IF object.comment_user_id %]
- <a href="[% c.uri_for('user_edit', object.comment_user_id) %]">[% loc('edit user') %]</a>
- [% END %]
- </p>
<div class="admin-hint">
<p>
[% loc(
- "If you've enabled Open311 update-sending above, enable <strong>suppression of alerts</strong>
- if you do <strong>not</strong> want that user to be notified whenever these updates are created."
+ "Enable <strong>Open311 problem-fetching</strong> if you want to display reports created at
+ the endpoint to FixMyStreet. If you're not sure, you probably do not, so leave this unchecked.
+ For more information, see
+ <a href='https://www.mysociety.org/2013/02/20/open311-extended/' class='admin-offsite-link'>this article</a>."
) %]
</p>
</div>
<p>
- <input type="checkbox" id="suppress_alerts" name="suppress_alerts"[% ' checked' IF object.suppress_alerts %]>
- <label for="suppress_alerts" class="inline">[% loc('Do not send email alerts on fetched comments to problem creator') %]</label>
+ <input type="checkbox" id="fetch_problems" name="fetch_problems"[% ' checked' IF object.fetch_problems %]>
+ <label for="fetch_problems" class="inline">[% loc('Use Open311 problem fetching') %]</label>
</p>
- <div class="admin-hint">
- <p>
- [% loc(
- "If you've enabled Open311 update-sending above, Open311 usually only accepts OPEN or CLOSED status in
- its updates. Enable <strong>extended Open311 stauses</strong> if you want to allow extra states to be passed.
- Check that your cobrand supports this feature before switching it on."
- ) %]
- </p>
+ <div class="admin-open311-section">
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Enable <strong>Convert location from Easting/Northing</strong> if you've enabled Open311 problem-fetching above
+ and problems fetching from the endpoint have the location in Easting/Northings and not Latitude/Longitude."
+ ) %]
+ </p>
+ </div>
+ <p>
+ <input type="checkbox" id="convert_latlong" name="convert_latlong"[% ' checked' IF object.convert_latlong %]>
+ <label for="convert_latlong" class="inline">[% loc('Convert location from Easting/Northing') %]</label>
+ </p>
+
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Enable <strong>Always fetch all problems</strong> if you've enabled Open311 problem-fetching above
+ and the endpoint always returns a list of all problems. This will suppress error messages about
+ bad dates in the problems fetched."
+ ) %]
+ </p>
+ </div>
+ <p>
+ <input type="checkbox" id="fetch_all_problems" name="fetch_all_problems"[% ' checked' IF object.get_extra_metadata('fetch_all_problems') %]>
+ <label for="fetch_all_problems" class="inline">[% loc('Always fetch all problems') %]</label>
+ </p>
</div>
- <p>
- <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF object.send_extended_statuses %]>
- <label for="send_extended_statuses" class="inline">[% loc('Send extended Open311 statuses with service request updates') %]</label>
- </p>
[% END %]
</div>
diff --git a/templates/web/base/admin/problem_row.html b/templates/web/base/admin/problem_row.html
index 446e94d66..99142af4e 100644
--- a/templates/web/base/admin/problem_row.html
+++ b/templates/web/base/admin/problem_row.html
@@ -38,6 +38,10 @@
[%- IF problem.is_closed %]<br>[% prettify_state('closed') %]: [% PROCESS format_time time=problem.lastupdate %][% END -%]
[%- IF problem.is_open %]<br>[% loc('Last&nbsp;update:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%]
</small></td>
- <td><a href="[% c.uri_for( 'report_edit', problem.id ) %]">[% loc('Edit') %]</a></td>
+ <td>
+ [% IF c.user.has_permission_to('report_edit', problem.bodies_str_ids) %]
+ <a href="[% c.uri_for( 'report_edit', problem.id ) %]">[% loc('Edit') %]</a>
+ [% END %]
+ </td>
</tr>
[%- END -%]
diff --git a/templates/web/base/admin/report-category.html b/templates/web/base/admin/report-category.html
index a2290089b..0416d71c0 100644
--- a/templates/web/base/admin/report-category.html
+++ b/templates/web/base/admin/report-category.html
@@ -4,10 +4,10 @@
<option selected value="[% problem.category | html %]">[% (problem.category_display OR '-') | html %]</option>
</optgroup>
[% END %]
- [% IF category_options_copy.size %]
+ [% IF category_options.size %]
<optgroup label="[% loc('Available categories') %]">
- [% FOREACH cat IN category_options_copy %]
- <option value="[% cat.name | html %]"[% ' selected' IF problem.category == cat.name %]>[% cat.value | html %]</option>
+ [% FOREACH cat IN category_options %]
+ <option value="[% cat.category | html %]"[% ' selected' IF problem.category == cat.category %]>[% cat.category_display | html %]</option>
[% END %]
</optgroup>
[% END %]
diff --git a/templates/web/base/admin/report_edit.html b/templates/web/base/admin/report_edit.html
index 911f4094e..10eb0eea1 100644
--- a/templates/web/base/admin/report_edit.html
+++ b/templates/web/base/admin/report_edit.html
@@ -1,4 +1,5 @@
[%
+ PROCESS "report/photo-js.html" IF problem.photo;
PROCESS "maps/${map.type}.html" admin = 1;
SET bodyclass = 'mappage with-notes';
INCLUDE 'admin/header.html'
@@ -91,7 +92,6 @@ class="admin-offsite-link">[% problem.latitude %], [% problem.longitude %]</a>
<li>[% loc('Cobrand:') %] [% problem.cobrand %]
<br><small>[% loc('Cobrand data:') %] [% cobrand_data OR '<em>' _ loc('None') _ '</em>' %]</small>
</li>
-<li>[% loc('Extra data:') %] [% problem.extra ? 'Yes' : 'No' %]</li>
<li>[% loc('Going to send questionnaire?') %] [% IF problem.send_questionnaire %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</li>
<li><label for="external_id">[% loc('External ID') %]:</label>
@@ -101,6 +101,12 @@ class="admin-offsite-link">[% problem.latitude %], [% problem.longitude %]</a>
<li><label for="external_team">[% loc('External team') %]:</label>
<input type="text" class="form-control" name="external_team" team="external_team" value="[% problem.external_team | html %]">
+[% IF problem.get_extra_metadata('external_status_code') %]
+<li>
+ <label for="external_status_code">[% loc('External status code') %]:</label>
+ <span>[% problem.get_extra_metadata('external_status_code') %]</span>
+</li>
+[% END %]
</ul>
</div>
@@ -119,6 +125,7 @@ class="admin-offsite-link">[% problem.latitude %], [% problem.longitude %]</a>
<li><label class="inline-text" for="category">[% loc('Category:') %]</label>
[% INCLUDE 'admin/report-category.html' %]
</li>
+<li>[% loc('Extra data:') %] [% IF extra_fields.size %]<ul>[% FOREACH field IN extra_fields %]<li><strong>[% field.name %]</strong>: [% field.val %]</li>[% END %]</ul>[% ELSE %]No[% END %]</li>
<li><label class="inline-text" for="anonymous">[% loc('Anonymous:') %]</label>
<select class="form-control" name="anonymous" id="anonymous">
<option [% 'selected ' IF problem.anonymous %]value="1">[% loc('Yes') %]</option>
@@ -165,6 +172,9 @@ class="admin-offsite-link">[% problem.latitude %], [% problem.longitude %]</a>
</li>
[% END %]
+<li><label class="inline-text" for="closed_updates">[% loc('Closed to updates') %]:</label>
+ <input type="checkbox" id="closed_updates" name="closed_updates"[% ' checked' IF problem.extra.closed_updates %]></li>
+
</ul>
<input type="submit" class="btn" name="Submit changes" value="[% loc('Submit changes') %]">
</form>
diff --git a/templates/web/base/admin/stats/index.html b/templates/web/base/admin/stats/index.html
index 6ea1ae403..d47054427 100644
--- a/templates/web/base/admin/stats/index.html
+++ b/templates/web/base/admin/stats/index.html
@@ -5,6 +5,9 @@
<li><a href="[% c.uri_for_action('admin/stats/state') %]">[% loc('Problem breakdown by state') %]</a></li>
<li><a href="[% c.uri_for_action('admin/stats/fix_rate') %]">[% loc('Category fix rate for problems > 4 weeks old') %]</a></li>
<li><a href="[% c.uri_for_action('dashboard/index') %]">[% loc('Summary statistics') %]</a></li>
+[% IF c.cobrand.moniker == 'fixmystreet' %]
+<li><a href="[% c.uri_for_action('admin/stats/refused') %]">Refused</a></li>
+[% END %]
</ul>
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/base/admin/template_edit.html b/templates/web/base/admin/template_edit.html
index 3e436dbf9..0cfd5406a 100644
--- a/templates/web/base/admin/template_edit.html
+++ b/templates/web/base/admin/template_edit.html
@@ -21,7 +21,7 @@
</div>
<p>
<strong>[% loc('Title:') %] </strong>
- <input type="text" name="title" class="required form-control" size="30" value="[% rt.title| html %]">
+ <input type="text" name="title" class="required form-control" size="30" value="[% rt.title | html %]">
</p>
<div class="admin-hint">
@@ -31,7 +31,7 @@
</div>
<p>
<strong>[% loc('Text:') %] </strong>
- <textarea class="form-control" name="text" class="required">[% rt.text |html %]</textarea>
+ <textarea class="form-control" name="text" class="required">[% rt.text | html %]</textarea>
</p>
<div class="admin-hint">
@@ -41,6 +41,9 @@
</div>
[% INCLUDE 'admin/category-checkboxes.html' %]
+ [% IF errors.state %]
+ <div class="form-error">[% errors.state %]</div>
+ [% END %]
<div class="admin-hint">
<p>
[% loc('If you want to use this template to prefill the update field when changing a report&rsquo;s state, select the state here.') %]
@@ -48,7 +51,20 @@
</div>
<p>
<label for="state">[% loc('State') %]</label>
- [% INCLUDE 'admin/state_groups_select.html' current_state=rt.state include_empty=1 %]
+ [% INCLUDE 'report/inspect/state_groups_select.html' current_state=rt.state include_empty=1 %]
+ </p>
+
+ [% IF errors.external_status_code %]
+ <div class="form-error">[% errors.external_status_code %]</div>
+ [% END %]
+ <div class="admin-hint">
+ <p>
+ [% loc('If you want to use this template to prefill the update field when a report&rsquo;s <strong>external</strong> (e.g. Confirm) status code changes, enter the status code here.') %]
+ </p>
+ </div>
+ <p>
+ <label for="external_status_code">[% loc('External status code') %]</label>
+ <input type="text" name="external_status_code" class="form-control" size="30" value="[% rt.external_status_code | html %]">
</p>
[% IF errors.auto_response %]
diff --git a/templates/web/base/admin/templates.html b/templates/web/base/admin/templates.html
index 444f2734d..21e4eea25 100644
--- a/templates/web/base/admin/templates.html
+++ b/templates/web/base/admin/templates.html
@@ -23,7 +23,10 @@
[% END %]
[% END %]
</td>
- <td> [% t.state | html %] </td>
+ <td>
+ [% IF t.state %][% t.state | html %][% END %]
+ [% IF t.external_status_code %][% t.external_status_code | html %] (external)[% END %]
+ </td>
<td> [% IF t.auto_response %]X[% END %] </td>
<td> <a href="[% c.uri_for('templates', body.id, t.id) %]" class="btn">[% loc('Edit') %]</a> </td>
</tr>
diff --git a/templates/web/base/admin/update_edit.html b/templates/web/base/admin/update_edit.html
index 34e64310f..cb420fc67 100644
--- a/templates/web/base/admin/update_edit.html
+++ b/templates/web/base/admin/update_edit.html
@@ -53,6 +53,9 @@
<li>[% loc('Cobrand:') %] [% update.cobrand %]</li>
<li>[% loc('Cobrand data:') %] [% update.cobrand_data %]</li>
<li>[% loc('Created:') %] [% PROCESS format_time time=update.created %]</li>
+[% IF update.get_extra_metadata('external_status_code') %]
+<li>[% loc('External status code:') %] [% update.get_extra_metadata('external_status_code') | html %]</li>
+[% END %]
[% IF update.photo %]
<li>
diff --git a/templates/web/base/admin/user_import.html b/templates/web/base/admin/user_import.html
new file mode 100644
index 000000000..f866ed955
--- /dev/null
+++ b/templates/web/base/admin/user_import.html
@@ -0,0 +1,76 @@
+[% INCLUDE 'admin/header.html' title=loc("User Import") -%]
+[% PROCESS 'admin/report_blocks.html' %]
+
+[% status_message %]
+
+<form method="post" id="user_edit" action="[% c.uri_for( 'user_import' ) %]" enctype="multipart/form-data" accept-charset="utf-8">
+ <input type="hidden" name="token" value="[% csrf_token %]" >
+ <input type="hidden" name="submit" value="1" >
+
+ <p>
+ <label>
+ [% loc('CSV File') %]
+ <input type="file" name="csvfile" id="form_csvfile" />
+ </label>
+ <input type="submit" class="btn" name="Import users" value="[% loc('Import users') %]" />
+ </p>
+</form>
+
+[% IF new_users %]
+ <h2>[% tprintf(loc('Created %d new users'), new_users.size ) %]</h2>
+ <table>
+ <tr>
+ <th>[% loc('Name') %]</th>
+ <th>[% loc('Email') %]</th>
+ <th>[% loc('Body') %]</th>
+ </tr>
+ [% FOREACH user IN new_users %]
+ <tr>
+ <td>
+ <a href="[% c.uri_for_action( 'admin/user_edit', user.id ) %]">
+ [% user.name %]
+ </a>
+ </td>
+ <td>[% user.email %]</td>
+ <td>[% user.from_body.name %]</td>
+ </tr>
+ [% END %]
+ </table>
+[% END %]
+
+[% IF existing_users %]
+ <h2>[% tprintf(loc("%d users already existed"), existing_users.size) %]</h2>
+ <p>[% loc("These users weren't updated.") %]</p>
+ <table>
+ <tr>
+ <th>[% loc('Name') %]</th>
+ <th>[% loc('Email') %]</th>
+ <th>[% loc('Body') %]</th>
+ </tr>
+ [% FOREACH user IN existing_users %]
+ <tr>
+ <td>
+ <a href="[% c.uri_for_action( 'admin/user_edit', user.id ) %]">
+ [% user.name %]
+ </a>
+ </td>
+ <td>[% user.email %]</td>
+ <td>[% user.from_body.name %]</td>
+ </tr>
+ [% END %]
+ </table>
+[% END %]
+
+<h2>[% loc('Usage notes') %]</h2>
+<p>[% loc('This page is a quick way to create many new staff users in one go.') %]</p>
+<p>[% loc("Existing users won't be modified.") %]</p>
+<p>
+ [% loc("The uploaded CSV file must contain a header row, and records must have the following fields (in this order):") %]
+ <pre>name,email,from_body,permissions</pre>
+ <ul>
+ <li><code>from_body</code>: [% loc("the database id of the body to associate that user with, e.g. <code>2217</code> for Buckinghamshire.") %]</li>
+ <li><code>permissions</code>: [% loc("a colon-separated list of permissions to grant that user, e.g. <code>contribute_as_body:moderate:user_edit</code>.") %]</li>
+ </ul>
+</p>
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/base/around/_error_multiple.html b/templates/web/base/around/_error_multiple.html
index 751d81173..6a43eac32 100644
--- a/templates/web/base/around/_error_multiple.html
+++ b/templates/web/base/around/_error_multiple.html
@@ -5,9 +5,14 @@
[% IF possible_location_matches %]
<p>[% loc('We found more than one match for that location.') %]</p>
<ul class="pc_alternatives">
- [% FOREACH match IN possible_location_matches %]
- <li><a href="/around?latitude=[% match.latitude | uri %];longitude=[% match.longitude | uri %][% IF c.req.params.category %];category=[% c.req.params.category | uri %][% END %]">[% match.address | html %]</a></li>
- [% END %]
+ [% FOREACH match IN possible_location_matches %]
+ <li>
+ [% IF match.icon %]
+ <img src="[% match.icon %]" alt="">
+ [% END %]
+ <a href="/around?latitude=[% match.latitude | uri %];longitude=[% match.longitude | uri %][% IF c.req.params.category %];category=[% c.req.params.category | uri %][% END %]">[% match.address | html %]</a>
+ </li>
+ [% END %]
</ul>
<p>[% loc('We show up to ten matches, please try a different search if yours is not here.') %]</p>
[% END %]
diff --git a/templates/web/base/around/_postcode_form_post.html b/templates/web/base/around/_postcode_form_post.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/base/around/_postcode_form_post.html
diff --git a/templates/web/base/around/_updates.html b/templates/web/base/around/_updates.html
index 6121b218b..e5af69da0 100755
--- a/templates/web/base/around/_updates.html
+++ b/templates/web/base/around/_updates.html
@@ -1,5 +1,5 @@
<div class="shadow-wrap">
<ul id="key-tools">
- <li><a class="feed" id="key-tool-around-updates" href="[% email_url | html %]">[% loc("Get updates") %]</a></li>
+ <li><a class="feed js-feed" id="key-tool-around-updates" href="[% email_url | html %]">[% loc("Get updates") %]</a></li>
</ul>
</div>
diff --git a/templates/web/base/around/display_location.html b/templates/web/base/around/display_location.html
index 029435cf2..826e70632 100755
--- a/templates/web/base/around/display_location.html
+++ b/templates/web/base/around/display_location.html
@@ -60,7 +60,7 @@
<a class="big-hide-pins-link" rel='nofollow' href="[% c.uri_with( { no_pins => 1 } ) %]">[% loc('Hide pins') %]</a>
[% END %]
- <p id='sub_map_links'>
+ <p class="sub-map-links" id='sub_map_links'>
[% map_sub_links %]
[% IF c.req.params.no_pins %]
<a id='hide_pins_link' rel='nofollow' href="[% c.uri_with( { no_pins => 0 } ) %]">[% loc('Show pins') %]</a>
diff --git a/templates/web/base/around/index.html b/templates/web/base/around/index.html
index 8f6af6225..df49bff8d 100644
--- a/templates/web/base/around/index.html
+++ b/templates/web/base/around/index.html
@@ -1,5 +1,5 @@
[% pre_container_extra = INCLUDE 'around/postcode_form.html' %]
-[% SET bodyclass = 'frontpage fullwidthpage' ~%]
+[% SET bodyclass = 'frontpage fullwidthpage aroundpage' ~%]
[% INCLUDE 'header.html', title = loc('Reporting a problem') %]
[%
diff --git a/templates/web/base/around/postcode_form.html b/templates/web/base/around/postcode_form.html
index efb639eda..52aa177a9 100644
--- a/templates/web/base/around/postcode_form.html
+++ b/templates/web/base/around/postcode_form.html
@@ -11,7 +11,7 @@
<form action="[% c.uri_for('/around') %]" method="get" name="postcodeForm" id="postcodeForm" class="js-geolocate">
<label for="pc">[% question %]:</label>
<div>
- <input type="text" name="pc" value="[% pc | html %]" id="pc" size="10" maxlength="200" placeholder="[% tprintf(loc('e.g. ‘%s’ or ‘%s’'), c.cobrand.example_places) %]">
+ <input type="text" name="pc" value="[% pc | html %]" id="pc" size="10" maxlength="200" placeholder="[% tprintf(loc('e.g. ‘%s’ or ‘%s’'), c.cobrand.example_places) %]" required>
<input type="submit" value="[% loc('Go') %]" id="sub">
</div>
@@ -24,5 +24,9 @@
[% END %]
</form>
<a href="[% c.uri_for('/around') %]" id="geolocate_link">&hellip; [% loc('or locate me automatically') %]</a>
+
+ [% UNLESS possible_location_matches %]
+ [% INCLUDE 'around/_postcode_form_post.html' %]
+ [% END %]
</div>
</div>
diff --git a/templates/web/base/auth/2faform.html b/templates/web/base/auth/2faform.html
index bd8d60cdb..360883d49 100644
--- a/templates/web/base/auth/2faform.html
+++ b/templates/web/base/auth/2faform.html
@@ -17,7 +17,7 @@
<label for="2fa_code">[% loc('Code') %]</label>
<div class="form-txt-submit-box">
- <input class="form-control" type="number" id="2fa_code" name="2fa_code" value="" required>
+ <input autofocus class="form-control" type="number" id="2fa_code" name="2fa_code" value="" required>
<input type="submit" value="[% loc('Submit') %]" class="btn-primary">
</div>
</form>
diff --git a/templates/web/base/common_header_tags.html b/templates/web/base/common_header_tags.html
index 541bb1a56..69b155a9e 100644
--- a/templates/web/base/common_header_tags.html
+++ b/templates/web/base/common_header_tags.html
@@ -14,7 +14,7 @@
<script nonce="[% csp_nonce %]">
window.Modernizr=function(e,t,n){function r(e){p.cssText=e}function o(e,t){return typeof e===t}var a,i,c,l="2.8.3",s={},u=t.documentElement,d="modernizr",f=t.createElement(d),p=f.style,m=({}.toString,{}),h=[],y=h.slice,v=function(e,n,r,o){var a,i,c,l,s=t.createElement("div"),f=t.body,p=f||t.createElement("body");if(parseInt(r,10))for(;r--;)c=t.createElement("div"),c.id=o?o[r]:d+(r+1),s.appendChild(c);return a=["&#173;",'<style id="s',d,'">',e,"</style>"].join(""),s.id=d,(f?s:p).innerHTML+=a,p.appendChild(s),f||(p.style.background="",p.style.overflow="hidden",l=u.style.overflow,u.style.overflow="hidden",u.appendChild(p)),i=n(s,e),f?s.parentNode.removeChild(s):(p.parentNode.removeChild(p),u.style.overflow=l),!!i},g=function(t){var n=e.matchMedia||e.msMatchMedia;if(n)return n(t)&&n(t).matches||!1;var r;return v("@media "+t+" { #"+d+" { position: absolute; } }",function(t){r="absolute"==(e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position}),r},b={}.hasOwnProperty;c=o(b,"undefined")||o(b.call,"undefined")?function(e,t){return t in e&&o(e.constructor.prototype[t],"undefined")}:function(e,t){return b.call(e,t)};for(var E in m)c(m,E)&&(i=E.toLowerCase(),s[i]=m[E](),h.push((s[i]?"":"no-")+i));return r(""),f=a=null,s._version=l,s.mq=g,s.testStyles=v,s}(this,this.document);
var fixmystreet=fixmystreet||{};
- (function(b){var a=b.documentElement;a.className=a.className.replace(/\bno-js\b/,"js");var c=-1<a.className.indexOf("iel8");c=Modernizr.mq("(min-width: 48em)")||c?"desktop":"mobile";b=b.getElementById("js-meta-data");"IntersectionObserver"in window&&(a.className+=" lazyload");fixmystreet.page=b.getAttribute("data-page");fixmystreet.cobrand=b.getAttribute("data-cobrand");"mobile"==c&&(a.className+=" mobile","around"==fixmystreet.page&&(a.className+=" map-fullscreen only-map map-reporting"))})(document);
+ (function(b){var a=b.documentElement;a.className=a.className.replace(/\bno-js\b/,"js");var c=-1<a.className.indexOf("ie8");c=Modernizr.mq("(min-width: 48em)")||c?"desktop":"mobile";b=b.getElementById("js-meta-data");"IntersectionObserver"in window&&(a.className+=" lazyload");fixmystreet.page=b.getAttribute("data-page");fixmystreet.cobrand=b.getAttribute("data-cobrand");"mobile"==c&&(a.className+=" mobile","around"==fixmystreet.page&&(a.className+=" map-fullscreen only-map map-reporting"))})(document);
</script>
@@ -41,7 +41,7 @@
<link rel="prefetch" href="[% version('/cobrands/fixmystreet/fixmystreet.js') %]">
[% END %]
[% IF NOT bodyclass.match('mappage') %]
- [% FOR script IN map_js %]
+ [% FOR script IN map_js.merge(c.cobrand.call_hook('map_js_extra', c)) %]
<link rel="prefetch" href="[% IF script.match('^/'); version(script); ELSE; script; END %]">
[% END %]
<link rel="prefetch" href="[% version('/cobrands/fixmystreet/map.js') %]">
diff --git a/templates/web/base/common_scripts.html b/templates/web/base/common_scripts.html
index cf9692128..3d923f33f 100644
--- a/templates/web/base/common_scripts.html
+++ b/templates/web/base/common_scripts.html
@@ -46,7 +46,7 @@ IF c.user_exists AND (c.user.from_body OR c.user.is_superuser);
END;
IF bodyclass.match('mappage');
- FOR script IN map_js;
+ FOR script IN map_js.merge(c.cobrand.call_hook('map_js_extra', c));
IF script.match('^/');
scripts.push(version(script));
ELSE;
diff --git a/templates/web/base/contact/index.html b/templates/web/base/contact/index.html
index dfd3ef6b2..326c26ce8 100644
--- a/templates/web/base/contact/index.html
+++ b/templates/web/base/contact/index.html
@@ -103,17 +103,25 @@
[% END %]
<textarea class="form-control required" name="message" id="form_message" rows="7" cols="50">[% message | html %]</textarea>
+ [% IF NOT problem AND NOT update %]
+ <p>[% loc('If you are contacting us about a specific report or update please include a link to the report in the message.') %]</p>
+ [% END %]
+
<input class="final-submit green-btn" type="submit" value="[% loc('Send') %]">
</fieldset>
</form>
-<h4>[% loc("Don't like forms?") %]</h4>
+[% TRY %]
+ [% INCLUDE 'contact/_footer.html' %]
+[% CATCH file %]
+ <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>
+ <p>
+ [% tprintf( loc("You can contact technical support on <a href='mailto:%s'>%s</a>"), contact_email, contact_email) %]
+ </p>
+[% END %]
[% TRY %][% INCLUDE 'contact/address.html' %][% CATCH file %][% END %]
diff --git a/templates/web/base/develop/email_list.html b/templates/web/base/develop/email_list.html
new file mode 100755
index 000000000..5b4298522
--- /dev/null
+++ b/templates/web/base/develop/email_list.html
@@ -0,0 +1,11 @@
+[% INCLUDE 'header.html' %]
+
+<h1>[% loc('Templates') %]</h1>
+
+<ul>
+[% FOR template IN templates %]
+<li><a href="[% template.url %]">[% template.name %]</a></li>
+[% END %]
+</ul>
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/footer.html b/templates/web/base/footer.html
index e2bdbb01a..e2bdbb01a 100644..100755
--- a/templates/web/base/footer.html
+++ b/templates/web/base/footer.html
diff --git a/templates/web/base/front/footer-marketing.html b/templates/web/base/front/footer-marketing.html
index 3fb7a3044..6e7fc2a97 100644
--- a/templates/web/base/front/footer-marketing.html
+++ b/templates/web/base/front/footer-marketing.html
@@ -1,8 +1,8 @@
<div class="tablewrapper bordered footer-marketing">
<p>
- [% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="http://fixmystreet.org">available at fixmystreet.org</a>.') %]
+ [% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="https://fixmystreet.org">available at fixmystreet.org</a>.') %]
</p>
<p>
- [% loc('Powered by <a class="platform-logo" href="http://fixmystreet.org/">FixMyStreet Platform</a>') %]
+ [% loc('Powered by <a class="platform-logo" href="https://fixmystreet.org/">FixMyStreet Platform</a>') %]
</p>
</div>
diff --git a/templates/web/base/front/stats.html b/templates/web/base/front/stats.html
index 41358c869..8bef17d1f 100644
--- a/templates/web/base/front/stats.html
+++ b/templates/web/base/front/stats.html
@@ -34,11 +34,17 @@
%]
<div id="front_stats">
+ [% SWITCH c.cobrand.moniker %]
+ [% CASE 'fixamingata' %]
+ <div>[% tprintf( new_text, decode(new_n).replace(" ", "&nbsp;").replace(",", "&nbsp;") ) %]</div>
+ <div>[% tprintf( fixed_text, decode(fixed_n).replace(" ", "&nbsp;").replace(",", "&nbsp;") ) %]</div>
+ <div>[% tprintf( updates_text, decode(updates_n).replace(" ", "&nbsp;").replace(",", "&nbsp;") ) %]</div>
+ [% CASE 'zurich' %]
+ <div>[% tprintf( new_text, decode(new_n) ) %]</div>
+ <div>[% tprintf( fixed_text, decode(fixed_n) ) %]</div>
+ [% CASE %]
<div>[% tprintf( new_text, decode(new_n) ) %]</div>
- [% IF has_fixed_state %]
<div>[% tprintf( fixed_text, decode(fixed_n) ) %]</div>
- [% END %]
- [% IF c.cobrand.moniker != 'zurich' %]
<div>[% tprintf( updates_text, decode(updates_n) ) %]</div>
[% END %]
</div>
diff --git a/templates/web/base/header.html b/templates/web/base/header.html
index 3cc166a32..7f423ff9e 100644
--- a/templates/web/base/header.html
+++ b/templates/web/base/header.html
@@ -4,8 +4,7 @@
# SET html_att = html_att _ ' dir="rtl"';
-%]
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8"[% html_att %]><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8"[% html_att %]><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8"[% html_att %]><![endif]-->
<!--[if IE 9]> <html class="no-js ie9"[% html_att %]><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js"[% html_att %]
[% IF appcache ~%]
diff --git a/templates/web/base/header_opengraph.html b/templates/web/base/header_opengraph.html
index 6b2c8ff46..8cda4c717 100644
--- a/templates/web/base/header_opengraph.html
+++ b/templates/web/base/header_opengraph.html
@@ -1,6 +1,6 @@
<meta property="og:url" content="[% c.cobrand.base_url %][% c.req.uri.path %]">
<meta property="og:title" content="[% title || site_name | html %]">
<meta property="og:site_name" content="[% site_name %]">
- [% IF c.req.uri.path == '/' %]<meta property="og:description" content="Report, view, and discuss local street-related problems.">[% END %]
+ [% IF c.req.uri.path == '/' %]<meta property="og:description" content="[% loc('Report, view, and discuss local street-related problems.') %]">[% END %]
<meta property="og:type" content="website">
[% INCLUDE 'header_opengraph_image.html' %]
diff --git a/templates/web/base/main_nav.html b/templates/web/base/main_nav.html
index 9736697e3..189630902 100644
--- a/templates/web/base/main_nav.html
+++ b/templates/web/base/main_nav.html
@@ -1,7 +1,4 @@
[%
- SET base = "";
- SET base = c.cobrand.base_url IF admin;
-
# DEFAULT would make sense here, except it treats the empty string as falsy
# and some cobrands want to set ul_class to an empty string.
SET ul_class="nav-menu nav-menu--main" UNLESS ul_class.defined;
@@ -11,7 +8,7 @@
[%~ IF c.req.uri.path == uri AND NOT always_url ~%]
<span [% attrs %]>[% label %]</span>
[%~ ELSE ~%]
- <a href="[% base %][% uri %][% suffix IF suffix %]" [% attrs %]>[% label %]</a>
+ <a href="[% uri %][% suffix IF suffix %]" [% attrs %]>[% label %]</a>
[%~ END ~%]
</li>
[%~ END %]
diff --git a/templates/web/base/maps/google-ol.html b/templates/web/base/maps/google-ol.html
index 3cd21fab3..8e0690f9d 100644
--- a/templates/web/base/maps/google-ol.html
+++ b/templates/web/base/maps/google-ol.html
@@ -5,7 +5,7 @@
[% map_html = BLOCK %]
[% INCLUDE maps/openlayers.html %]
[% UNLESS around_page %]
-<p id="sub_map_links">
+<p class="sub-map-links" id="sub_map_links">
[% map_sub_links %]
</p>
[% END %]
diff --git a/templates/web/base/maps/osm.html b/templates/web/base/maps/osm.html
index 51c3ad388..70d05929f 100644
--- a/templates/web/base/maps/osm.html
+++ b/templates/web/base/maps/osm.html
@@ -1,3 +1,4 @@
[%
+map.copyright = ''; # This is handled with OpenLayers.Control.Attribution
map_html = INCLUDE maps/openlayers.html
%]
diff --git a/templates/web/base/questionnaire/index.html b/templates/web/base/questionnaire/index.html
index 12ca36cf2..4305f05c9 100644
--- a/templates/web/base/questionnaire/index.html
+++ b/templates/web/base/questionnaire/index.html
@@ -13,22 +13,6 @@
<h1>[% loc('Questionnaire') %]</h1>
-<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">
- <a href="/report/[% problem.id %]">[% problem.title | html %]</a>
- </h3>
- <p class="questionnaire-report-reminder__report-meta">[% problem.meta_line(c) | html %]</p>
- [% IF updates.size %]
- <p class="questionnaire-report-reminder__last-update-header">
- <strong>[% loc('Last update') %]</strong>
- <a href="/report/[% problem.id %]">[% loc('Show all updates') %]</a>
- </p>
- <p class="questionnaire-report-reminder__last-update">&ldquo;[% updates.last.text | add_links %]&rdquo;</p>
- [% END %]
-</div>
-
<form method="post" action="/questionnaire/submit" id="questionnaire"
[%- IF c.cobrand.allow_photo_upload -%]
enctype="multipart/form-data"
@@ -43,8 +27,8 @@
</ul>
[% END %]
-<p>
-[% loc('An update marked this problem as fixed.') IF problem.is_fixed %]
+<p>1.
+[% loc('An update marked this problem as fixed.') IF was_fixed %]
[% loc('Has this problem been fixed?') %]
</p>
@@ -57,8 +41,24 @@
<label class="btn" for="been_fixed_unknown">[% loc('Don&rsquo;t know') %]</label>
</p>
+<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">
+ <a href="/report/[% problem.id %]">[% problem.title | html %]</a>
+ </h3>
+ <p class="questionnaire-report-reminder__report-meta">[% problem.meta_line(c) | html %]</p>
+ [% IF updates.size %]
+ <p class="questionnaire-report-reminder__last-update-header">
+ <strong>[% loc('Last update') %]</strong>
+ <a href="/report/[% problem.id %]">[% loc('Show all updates') %]</a>
+ </p>
+ <p class="questionnaire-report-reminder__last-update">&ldquo;[% updates.last.text | add_links %]&rdquo;</p>
+ [% END %]
+</div>
+
[% UNLESS answered_ever_reported %]
-<p>[% loc('Have you ever reported a problem to a council before, or is this your first time?') %]</p>
+<p>2. [% loc('Have you ever reported a problem to a council before, or is this your first time?') %]</p>
<p class="segmented-control segmented-control--radio">
<input type="radio" name="reported" id="reported_yes" value="Yes"[% ' checked' IF reported == 'Yes' %]>
<label class="btn" for="reported_yes">[% loc('Reported before') %]</label>
@@ -67,7 +67,7 @@
</p>
[% END %]
-<p>[% loc('If you wish to leave a public update on the problem, please enter it here
+<p>3. [% loc('If you wish to leave a public update on the problem, please enter it here
(please note it will not be sent to the council).') %]</p>
<p><textarea class="form-control" name="update" rows="7" cols="30" placeholder="[% loc('What was your experience of getting the problem fixed?') %]">[% update | html %]</textarea></p>
@@ -98,7 +98,7 @@
[% END %]
<div class="js-another-questionnaire">
- <p>[% loc('Would you like to receive another questionnaire in 4 weeks, reminding you to check the status?') %]</p>
+ <p>4. [% loc('Would you like to receive another questionnaire in 4 weeks, reminding you to check the status?') %]</p>
<p class="segmented-control segmented-control--radio">
<input type="radio" name="another" id="another_yes" value="Yes"[% ' checked' IF another == 'Yes' %]>
<label class="btn" for="another_yes">[% loc('Yes') %]</label>
diff --git a/templates/web/base/report/_inspect.html b/templates/web/base/report/_inspect.html
index 1893826de..222780dcb 100644
--- a/templates/web/base/report/_inspect.html
+++ b/templates/web/base/report/_inspect.html
@@ -7,12 +7,18 @@
[% INCLUDE 'errors.html' %]
<form name="report_inspect_form" id="report_inspect_form" method="post" action="[% c.uri_for( '/report', problem.id ) %]" class="validate">
- <input type="hidden" name="js" value="">
<div class="inspect-section">
+ <p style="float: right">
+ <label for="non_public">[% loc('Private') %]</label>
+ <input type="checkbox" id="non_public" name="non_public" value="1"[% ' checked' IF problem.non_public %]>
+ </p>
<p>
<strong>[% loc('Report ID:') %]</strong>
<span class="js-report-id">[% problem.id %]</span>
+ [% IF c.user_exists AND c.cobrand.admin_allow_user(c.user) AND c.user.has_permission_to('report_edit', problem.bodies_str_ids) %]
+ (<a href="[% c.uri_for_action( "admin/report_edit", problem.id ) %]">[% loc('admin') %]</a>)
+ [% END %]
</p>
[% IF permissions.report_inspect AND problem.user.phone %]
<p>
@@ -46,6 +52,11 @@
<p>
<a href="#" class="btn btn--block btn--geolocate">[% loc('Set to my current location') %]</a>
</p>
+ [% IF permissions.report_reject %]
+ <p>
+ <a href="[% c.uri_for( '/contact', { id => problem.id, reject => 1 } ) %]" class="btn btn--block">[% loc('Reject report') %]</a>
+ </p>
+ [% END %]
</div>
[% IF permissions.report_edit_category OR permissions.report_inspect %]
@@ -55,19 +66,19 @@
[% INCLUDE 'admin/report-category.html' %]
</p>
- [% FOREACH category IN category_options_copy %]
- [% cat_name = category.name;
+ [% FOREACH category IN category_options %]
+ [% cat_name = category.category;
cat_prefix = cat_name | lower | replace('[^a-z]', '');
cat_prefix = "category_" _ cat_prefix _ "_" %]
<p data-category="[% cat_name | html %]"
[%~ IF cat_name != problem.category %] class="hidden"[% END %]
- data-priorities='[% priorities_by_category.$cat_name %]'
- data-defect-types='[% category_defect_types.$cat_name %]'
- data-templates='[% templates_by_category.$cat_name %]'>
+ data-priorities='[% priorities_by_category.$cat_name | html %]'
+ data-defect-types='[% category_defect_types.$cat_name | html %]'
+ data-templates='[% templates_by_category.$cat_name | html %]'>
[% IF cat_name == problem.category %]
- [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$cat_name hide_notices=1 %]
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$cat_name hide_notices=1 show_hidden=1 %]
[% ELSE %]
- [% INCLUDE 'report/new/category_extras_fields.html' report_meta='' metas=category_extras.$cat_name hide_notices=1 %]
+ [% INCLUDE 'report/new/category_extras_fields.html' report_meta='' metas=category_extras.$cat_name hide_notices=1 show_hidden=1 %]
[% END %]
</p>
[% END %]
@@ -190,6 +201,7 @@
</p>
</div>
+ <input type="hidden" name="js" value="">
</form>
</div>
[%- END %]
diff --git a/templates/web/base/report/_item.html b/templates/web/base/report/_item.html
index 8179139ca..b1fa8fcad 100644
--- a/templates/web/base/report/_item.html
+++ b/templates/web/base/report/_item.html
@@ -66,7 +66,8 @@
[% IF include_sentinfo %]
[% IF c.cobrand.is_council && !c.cobrand.owns_problem( problem ) %]
(sent to [% problem.body %])
- [% ELSIF problem.bodies_str_ids.size > 1 %] [% loc('(sent to both)') %]
+ [% ELSIF problem.bodies_str_ids.size > 2 %] [% loc('(sent to all)') %]
+ [% ELSIF problem.bodies_str_ids.size == 2 %] [% loc('(sent to both)') %]
[% ELSIF problem.bodies_str_ids.size == 0 %] [% loc('(not sent to council)') %]
[% END %]
[% END %]
diff --git a/templates/web/base/report/_show_name_label.html b/templates/web/base/report/_show_name_label.html
new file mode 100644
index 000000000..1e62b5fc0
--- /dev/null
+++ b/templates/web/base/report/_show_name_label.html
@@ -0,0 +1,5 @@
+[%# 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>
diff --git a/templates/web/base/report/_update_state.html b/templates/web/base/report/_update_state.html
new file mode 100644
index 000000000..0274d7695
--- /dev/null
+++ b/templates/web/base/report/_update_state.html
@@ -0,0 +1,24 @@
+[% # Small chance of duplicates in the case of fixed - user followed by fixed - council %]
+[% SET update_state = update.problem_state %]
+[% IF ( update_state AND update_state != global.last_state AND NOT (global.last_state == "" AND update.problem_state == 'confirmed') )
+ OR update.mark_fixed
+ OR update.mark_open
+%]
+ <p class="meta-2">[% loc('State changed to:') %] [% update.problem_state_display(c) %]</p>
+ [%- global.last_state = update_state %]
+ [%- IF update_state == "" AND update.mark_fixed %][% global.last_state = 'fixed - user' %][% END %]
+ [%- IF update_state == "" AND update.mark_open %][% global.last_state = 'confirmed' %][% END %]
+[% END %]
+
+<p class="meta-2">
+ [% INCLUDE meta_line %]
+ [% IF c.user_exists AND c.user.id == update.user_id AND !update.anonymous %]
+ <small>(<a href="/my/anonymize?update=[% update.id | uri %]" class="js-hide-name">[% loc('Hide your name?') %]</a>)</small>
+ [% END %]
+ [% mlog = update.latest_moderation_log_entry(); IF mlog %]
+ <br />[% tprintf(loc('Moderated by %s at %s'), mlog.admin_user, prettify_dt(mlog.whenedited)) %]
+ [% END %]
+ [% IF update.get_extra_metadata('open_from_questionnaire') %]
+ <br />[% loc('Still open, via questionnaire') %]
+ [% END %]
+</p>
diff --git a/templates/web/base/report/display.html b/templates/web/base/report/display.html
index f9c42b35d..8c461dced 100644
--- a/templates/web/base/report/display.html
+++ b/templates/web/base/report/display.html
@@ -53,7 +53,7 @@
[% TRY %][% INCLUDE 'report/sharing.html' %][% CATCH file %][% END %]
[% INCLUDE 'report/updates.html' %]
-[% IF two_column_sidebar %]
+[% IF two_column_sidebar AND NOT problem.extra.closed_updates %]
<button class="btn btn--provide-update js-provide-update hidden-nojs">[% loc('Provide an update') %]</button>
<div class="hidden-js">
[% END %]
@@ -62,7 +62,7 @@
[% ELSIF NOT shown_form %]
[% INCLUDE 'report/update-form.html' %]
[% END %]
-[% IF two_column_sidebar %]
+[% IF two_column_sidebar AND NOT problem.extra.closed_updates %]
</div>
[% END %]
diff --git a/templates/web/base/report/display_tools.html b/templates/web/base/report/display_tools.html
index bb76cc388..e0d8e3f99 100644
--- a/templates/web/base/report/display_tools.html
+++ b/templates/web/base/report/display_tools.html
@@ -10,8 +10,8 @@
c.cobrand.moniker == 'fixmystreet' ? 'Unsuitable?' : loc('Report abuse')
%]</a></li>
[% END %]
- [% IF c.cobrand.moniker != 'zurich' %]
- <li><a rel="nofollow" id="key-tool-report-updates" class="feed" href="[% c.uri_for( '/alert/subscribe', { id => problem.id } ) %]">[% loc('Get updates' ) %]</a></li>
+ [% IF NOT problem.extra.closed_updates AND c.cobrand.moniker != 'zurich' %]
+ <li><a rel="nofollow" id="key-tool-report-updates" class="feed js-feed" href="[% c.uri_for( '/alert/subscribe', { id => problem.id } ) %]">[% loc('Get updates' ) %]</a></li>
[% END %]
[% IF c.cobrand.moniker == 'fixmystreet' %]
<li><a rel="nofollow" id="key-tool-report-share" class="share" href="#report-share">[% loc('Share') %]</a></li>
diff --git a/templates/web/base/report/nearby.html b/templates/web/base/report/nearby.html
new file mode 100644
index 000000000..c64b10d7f
--- /dev/null
+++ b/templates/web/base/report/nearby.html
@@ -0,0 +1,3 @@
+[%~ FOREACH problem IN reports ~%]
+ [%~ INCLUDE 'reports/_list-entry.html' ~%]
+[%~ END ~%]
diff --git a/templates/web/base/report/new/category.html b/templates/web/base/report/new/category.html
index 94d5479a6..83af42c6d 100644
--- a/templates/web/base/report/new/category.html
+++ b/templates/web/base/report/new/category.html
@@ -1,8 +1,10 @@
[% IF category_options.size OR category_groups.size ~%]
[%~ BLOCK category_option ~%]
- [% cat_op_lc = cat_op.name | lower =%]
- <option value='[% cat_op.name | html %]'[% ' selected' IF report.category == cat_op.name || category_lc == cat_op_lc || (category_options.size == 2 AND loop.last) ~%]
- >[% IF loop.first %][% cat_op.value %][% ELSE %][% cat_op.value | html %][% END %]</option>
+ [% cat_op_lc = cat_op.category | lower =%]
+ <option value='[% cat_op.category | html %]'[% ' selected' IF report.category == cat_op.category || category_lc == cat_op_lc || (category_options.size == 2 AND loop.last) ~%]
+ >[% IF loop.first %][% cat_op.category_display %][% ELSE %][% cat_op.category_display | html %][% END %]
+ [%~ IF cat_op.get_extra_metadata('help_text') %] ([% cat_op.get_extra_metadata('help_text') %])[% END ~%]
+ </option>
[%~ END ~%]
[% IF category;
diff --git a/templates/web/base/report/new/category_extras.html b/templates/web/base/report/new/category_extras.html
index fd2752388..f787b9c52 100644
--- a/templates/web/base/report/new/category_extras.html
+++ b/templates/web/base/report/new/category_extras.html
@@ -1,4 +1,5 @@
-[% DEFAULT list_of_names = bodies_to_list_names %]
+[% SET default_list = [] %][% FOR b IN bodies_to_list.values %][% default_list.push(b.name) %][% END %]
+[% DEFAULT list_of_names = default_list %]
<div id="category_meta">
[%- IF unresponsive.$category %]
@@ -7,16 +8,20 @@
[%- END %]
[%- IF category_extras.$category.size %]
- <div class="extra-category-questions full-width">
- <h2 class="form-section-heading">[% category %]</h2>
- <p class="form-section-description">
- [% tprintf(
- loc('Help <strong>%s</strong> resolve your problem quicker, by providing some extra detail. This extra information will not be published online.'),
- list_of_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
- ); %]
- </p>
- [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$category %]
- </div>
+ [% UNLESS category_extras_hidden.$category %]
+ <div class="extra-category-questions full-width">
+ <h2 class="form-section-heading">[% category %]</h2>
+ <p class="form-section-description">
+ [% tprintf(
+ loc('Help <strong>%s</strong> resolve your problem quicker, by providing some extra detail. This extra information will not be published online.'),
+ list_of_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ ); %]
+ </p>
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$category %]
+ </div>
+ [% ELSE %]
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$category %]
+ [% END %]
[%- END %]
[%- IF report_extra_fields %]
diff --git a/templates/web/base/report/new/category_extras_fields.html b/templates/web/base/report/new/category_extras_fields.html
index 5cbdcc524..c4456d04e 100644
--- a/templates/web/base/report/new/category_extras_fields.html
+++ b/templates/web/base/report/new/category_extras_fields.html
@@ -1,19 +1,21 @@
[%- FOR meta IN metas %]
[%- meta_name = meta.code -%]
- [% IF c.cobrand.category_extra_hidden(meta_name) %]
+ [% IF c.cobrand.category_extra_hidden(meta) AND NOT show_hidden %]
- <input type="hidden" value="" name="[% cat_prefix %][% meta_name %]" id="[% cat_prefix %]form_[% meta_name %]">
+ <input type="hidden" value="[% report_meta.$meta_name.value | html %]" name="[% cat_prefix %][% meta_name %]" id="[% cat_prefix %]form_[% meta_name %]">
[% ELSIF meta.variable != 'false' || NOT hide_notices %]
<label for="[% cat_prefix %]form_[% meta_name %]">[% meta.description %]</label>
+ [% TRY %][% INCLUDE 'report/new/_category_extra_field_notice.html' %][% CATCH file %][% END %]
[% IF field_errors.$meta_name %]
<p class='form-error'>[% field_errors.$meta_name %]</p>
[% END -%]
[% IF meta.variable != 'false' %]
[% IF meta.exists('values') %]
<select class="form-control" name="[% cat_prefix %][% meta_name %]" id="[% cat_prefix %]form_[% meta_name %]"[% meta.required == 'true' ? ' required' : '' %]>
+ <option value="">[% loc('-- Pick an option --') %]</option>
[% FOR option IN meta.values %]
<option value="[% option.key %]"[% IF option.key == report_meta.$meta_name.value %] selected[% END %]>[% option.name %]</option>
[% END %]
diff --git a/templates/web/base/report/new/councils_text_all.html b/templates/web/base/report/new/councils_text_all.html
index 9a11eaae6..3ea641cbf 100644
--- a/templates/web/base/report/new/councils_text_all.html
+++ b/templates/web/base/report/new/councils_text_all.html
@@ -1,4 +1,5 @@
-[% DEFAULT list_of_names = bodies_to_list_names %]
+[% SET default_list = [] %][% FOR b IN bodies_to_list.values %][% default_list.push(b.name) %][% END %]
+[% DEFAULT list_of_names = default_list %]
<p>
[%
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 f8714f573..a508b9307 100644
--- a/templates/web/base/report/new/fill_in_details_form.html
+++ b/templates/web/base/report/new/fill_in_details_form.html
@@ -4,6 +4,8 @@
<p class="change_location">[% loc('Wrong location? Just click again on the map.') %]</p>
[% END %]
+[% TRY %][% INCLUDE 'report/new/roads_message.html' %][% CATCH file %][% END %]
+
<div id="js-top-message">
[% PROCESS 'report/new/top_message.html' %]
</div>
diff --git a/templates/web/base/report/new/form_report.html b/templates/web/base/report/new/form_report.html
index 1d1a0e289..d6efac423 100644
--- a/templates/web/base/report/new/form_report.html
+++ b/templates/web/base/report/new/form_report.html
@@ -6,6 +6,7 @@
[% PROCESS "report/new/category_wrapper.html" %]
[% TRY %][% PROCESS 'report/new/after_category.html' %][% CATCH file %][% END %]
+[% TRY %][% PROCESS 'report/new/_form_labels.html' %][% CATCH file %][% END %]
<h2 class="form-section-heading">[% loc( 'Public details' ) %]</h2>
<div class="form-section-description" id="js-councils_text">
@@ -16,11 +17,7 @@
[% END %]
</div>
- <label for="form_title">[% loc('Summarise the problem') %]</label>
-[% IF field_errors.title %]
- <p class='form-error'>[% field_errors.title %]</p>
-[% END %]
- <input class="form-control" type="text" value="[% report.title | html %]" name="title" id="form_title" placeholder="[% loc('10 inch pothole on Example St, near post box') %]" required>
+ [% INCLUDE 'report/new/form_title.html' %]
[% TRY %][% PROCESS 'report/new/after_title.html' %][% CATCH file %][% END %]
@@ -51,11 +48,13 @@
[% TRY %][% PROCESS 'report/new/after_photo.html' %][% CATCH file %][% END %]
- <label for="form_detail">[% loc('Explain what’s wrong') %]</label>
+ [% DEFAULT form_detail_label = loc('Explain what’s wrong') %]
+ <label for="form_detail">[% form_detail_label %]</label>
[% IF field_errors.detail %]
<p class='form-error'>[% field_errors.detail %]</p>
[% END %]
- <textarea class="form-control" rows="7" cols="26" name="detail" id="form_detail" placeholder="[% loc('This pothole has been here for two months and…') %]" required>[% report.detail | html %]</textarea>
+ [% DEFAULT form_detail_placeholder = loc('This pothole has been here for two months and…') %]
+ <textarea class="form-control" rows="7" cols="26" name="detail" id="form_detail" placeholder="[% form_detail_placeholder %]" required>[% report.detail | html %]</textarea>
[% TRY %][% PROCESS 'report/new/inline-tips.html' %][% CATCH file %][% END %]
@@ -63,4 +62,5 @@
<input type="hidden" name="partial" value="[% partial_token.token %]">
[% END %]
+ <input type="hidden" id="single_body_only" name="single_body_only" value="">
<input type="hidden" name="submit_problem" value="1">
diff --git a/templates/web/base/report/new/form_title.html b/templates/web/base/report/new/form_title.html
new file mode 100644
index 000000000..88996fd3f
--- /dev/null
+++ b/templates/web/base/report/new/form_title.html
@@ -0,0 +1,7 @@
+[% DEFAULT form_title = loc('Summarise the problem') %]
+<label for="form_title">[% form_title %]</label>
+[% IF field_errors.title %]
+ <p class='form-error'>[% field_errors.title %]</p>
+[% END %]
+[% DEFAULT form_title_placeholder = loc('10 inch pothole on Example St, near post box') %]
+<input class="form-control" type="text" value="[% report.title | html %]" name="title" id="form_title" placeholder="[% form_title_placeholder %]" required>
diff --git a/templates/web/base/report/new/form_user_loggedin.html b/templates/web/base/report/new/form_user_loggedin.html
index ad74a5654..7f81764be 100644
--- a/templates/web/base/report/new/form_user_loggedin.html
+++ b/templates/web/base/report/new/form_user_loggedin.html
@@ -29,7 +29,7 @@
</select>
[% END %]
-[% IF c.user.phone_verified %]
+[% IF c.user.phone_verified AND NOT c.cobrand.call_hook('disable_phone_number_entry') %]
<label for="form_phone">[% loc('Phone number') %]</label>
<input class="form-control" id="form_phone" name="phone" disabled type="text" value="[% c.user.phone_display | html %]">
[% END %]
@@ -45,25 +45,10 @@
[% INCLUDE 'report/new/extra_name.html' %]
[% PROCESS 'user/_anonymity.html' anonymous = report.anonymous %]
+ [% INCLUDE 'report/new/form_user_name.html' %]
+ [% INCLUDE 'report/_show_name_label.html' %]
- <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-control validName js-form-name" value="[% report.name | html %]" name="name" id="form_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>
-
-[% IF NOT c.user.phone_verified %]
+[% IF NOT c.user.phone_verified AND NOT c.cobrand.call_hook('disable_phone_number_entry') %]
<label for="form_phone">[% loc('Phone number (optional)') %]</label>
<input class="form-control" type="text" value="[% report.user.phone_display | html %]" name="phone" id="form_phone">
[% END %]
@@ -72,6 +57,13 @@
<input class="form-control" type="text" value="[% report.user.email | html %]" name="email" id="form_email">
[% END %]
+[% IF c.user.has_permission_to("report_inspect", bodies.keys) %]
+ <div class="checkbox-group">
+ <input type="checkbox" name="non_public" id="form_non_public" value="1"[% ' checked' IF report.non_public %]>
+ <label class="inline" for="form_non_public">[% loc('Private') %] </label>
+ </div>
+[% END %]
+
<div class="form-txt-submit-box">
<input class="green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Submit') %]">
</div>
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
index 975dbe704..b633c4843 100644
--- a/templates/web/base/report/new/form_user_loggedout_by_email.html
+++ b/templates/web/base/report/new/form_user_loggedout_by_email.html
@@ -7,29 +7,15 @@
[% 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>
+ [% INCLUDE 'report/new/form_user_name.html' extra_class='form-focus-trigger' %]
+ [% INCLUDE 'report/_show_name_label.html' %]
+
+ [% UNLESS c.cobrand.call_hook('disable_phone_number_entry') %]
+ <div id="js-hide-if-username-phone">
+ <label class="form-focus-hidden" for="form_phone">[% loc('Phone number (optional)') %]</label>
+ <input class="form-control form-focus-hidden" type="text" value="[% report.user.phone_display | html %]" name="phone" id="form_phone">
+ </div>
[% END %]
-
- <input type="text" class="form-control form-focus-trigger validName js-form-name" 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>
-
- <div id="js-hide-if-username-phone">
- <label class="form-focus-hidden" for="form_phone">[% loc('Phone number (optional)') %]</label>
- <input class="form-control form-focus-hidden" type="text" value="[% report.user.phone_display | html %]" name="phone" id="form_phone">
- </div>
<div id="js-hide-if-username-email">
<label class="form-focus-hidden" for="form_email">[% loc('Email address (optional)') %]</label>
<input class="form-control form-focus-hidden" type="text" value="[% report.user.email | html %]" name="email" id="form_email">
diff --git a/templates/web/base/report/new/form_user_name.html b/templates/web/base/report/new/form_user_name.html
new file mode 100644
index 000000000..1f745eadb
--- /dev/null
+++ b/templates/web/base/report/new/form_user_name.html
@@ -0,0 +1,10 @@
+<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-control validName js-form-name [% extra_class %]" value="[% report.name | html %]" name="name" id="form_name">
diff --git a/templates/web/base/report/update-form.html b/templates/web/base/report/update-form.html
index 912aae2b4..9276acde9 100644
--- a/templates/web/base/report/update-form.html
+++ b/templates/web/base/report/update-form.html
@@ -1,9 +1,13 @@
[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body) %]
-[% RETURN IF NOT allow_creation %]
+[% RETURN IF NOT allow_creation OR problem.extra.closed_updates %]
<div id="update_form">
[% IF NOT login_success AND NOT oauth_need_email %]
- <h2[% IF two_column_sidebar %] class="hidden-js"[% END %]>[% loc( 'Provide an update') %]</h2>
+ [% TRY %]
+ [% INCLUDE 'report/_update-form-heading.html' %]
+ [% CATCH file %]
+ <h2[% IF two_column_sidebar %] class="hidden-js"[% END %]>[% loc( 'Provide an update') %]</h2>
+ [% END %]
[% IF c.cobrand.moniker != 'stevenage' %]
<div class="general-notes">
diff --git a/templates/web/base/report/update.html b/templates/web/base/report/update.html
index 100deb1ea..de8699802 100644
--- a/templates/web/base/report/update.html
+++ b/templates/web/base/report/update.html
@@ -4,6 +4,7 @@
<ul class="item-list item-list--updates">
[% END %]
<li class="item-list__item item-list__item--updates">
+ <a name="update_[% update.id %]" class="internal-link-fixed-header"></a>
[% IF permissions.moderate; original_update = update.moderation_original_data %]
<form method="post" action="/moderate/report/[% problem.id %]/update/[% update.id %]">
<input type="hidden" name="token" value="[% csrf_token %]">
@@ -25,7 +26,6 @@
<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">
@@ -41,26 +41,7 @@
</div>
[% END %]
- [% # Small chance of duplicates in the case of fixed - user followed by fixed - council %]
- [% SET update_state = update.problem_state %]
- [% IF ( update_state AND update_state != global.last_state AND NOT (global.last_state == "" AND update.problem_state == 'confirmed') ) OR
- update.mark_fixed OR update.mark_open
- %]
- <p class="meta-2">[% loc('State changed to:') %] [% update.problem_state_display(c) %]</p>
- [%- global.last_state = update_state %]
- [%- IF update_state == "" AND update.mark_fixed %][% global.last_state = 'fixed - user' %][% END %]
- [%- IF update_state == "" AND update.mark_open %][% global.last_state = 'confirmed' %][% END %]
- [% END %]
-
- <p class="meta-2">
- [% INCLUDE meta_line %]
- [% IF c.user_exists AND c.user.id == update.user_id AND !update.anonymous %]
- <small>(<a href="/my/anonymize?update=[% update.id | uri %]" class="js-hide-name">[% loc('Hide your name?') %]</a>)</small>
- [% END %]
- [% mlog = update.latest_moderation_log_entry(); IF mlog %]
- <br />[% tprintf(loc('Moderated by %s at %s'), mlog.admin_user, prettify_dt(mlog.whenedited)) %]
- [% END %]
- </p>
+ [% INCLUDE 'report/_update_state.html' %]
</div>
[% END %]
</div>
diff --git a/templates/web/base/report/update/form_name.html b/templates/web/base/report/update/form_name.html
index f366895a5..218ce4149 100644
--- a/templates/web/base/report/update/form_name.html
+++ b/templates/web/base/report/update/form_name.html
@@ -32,10 +32,7 @@
<input type="text" class="form-control validNameU js-form-name"
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>
+[% INCLUDE 'report/_show_name_label.html' %]
<div class="checkbox-group">
<input type="checkbox" name="add_alert" id="form_add_alert" value="1"[% ' checked' IF add_alert %]>
diff --git a/templates/web/base/report/update/form_state_checkbox.html b/templates/web/base/report/update/form_state_checkbox.html
new file mode 100644
index 000000000..5316affb9
--- /dev/null
+++ b/templates/web/base/report/update/form_state_checkbox.html
@@ -0,0 +1,17 @@
+[% IF (problem.is_fixed OR problem.is_closed) 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 || c.req.params.reopen) %]>
+ [% IF problem.is_closed %]
+ <label class="inline" for="form_reopen">[% loc('This problem is still ongoing') %]</label>
+ [% ELSE %]
+ <label class="inline" for="form_reopen">[% loc('This problem has not been fixed') %]</label>
+ [% END %]
+
+[% ELSIF !problem.is_fixed AND has_fixed_state %]
+
+ <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 %]
diff --git a/templates/web/base/report/update/form_update.html b/templates/web/base/report/update/form_update.html
index 5a1b3b602..06104c9e9 100644
--- a/templates/web/base/report/update/form_update.html
+++ b/templates/web/base/report/update/form_update.html
@@ -39,21 +39,5 @@
<label for="state">[% loc( 'State' ) %]</label>
[% INCLUDE 'report/inspect/state_groups_select.html' %]
[% ELSE %]
- [% IF (problem.is_fixed OR problem.is_closed) 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 || c.req.params.reopen) %]>
- [% IF problem.is_closed %]
- <label class="inline" for="form_reopen">[% loc('This problem is still ongoing') %]</label>
- [% ELSE %]
- <label class="inline" for="form_reopen">[% loc('This problem has not been fixed') %]</label>
- [% END %]
-
- [% ELSIF !problem.is_fixed AND has_fixed_state %]
-
- <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 %]
+ [% INCLUDE report/update/form_state_checkbox.html %]
[% END %]
diff --git a/templates/web/base/report/updates.html b/templates/web/base/report/updates.html
index e8a2d4bd3..1d37c1d99 100644
--- a/templates/web/base/report/updates.html
+++ b/templates/web/base/report/updates.html
@@ -13,7 +13,7 @@
[% IF update.whenanswered %]
[%# A questionnaire update, currently saying report is still open %]
- [% tprintf( loc( 'Still open, via questionnaire, %s' ), prettify_dt( update.whenanswered ) ) %]
+ [% loc('Still open, via questionnaire') %], [% prettify_dt( update.whenanswered ) %]
[% RETURN %]
[% END %]
diff --git a/templates/web/base/reports/_list-filters.html b/templates/web/base/reports/_list-filters.html
index ab8ac06f7..928d54452 100644
--- a/templates/web/base/reports/_list-filters.html
+++ b/templates/web/base/reports/_list-filters.html
@@ -1,7 +1,8 @@
+[% SET show_all_states = c.cobrand.filter_show_all_states OR (c.user_exists AND (c.user.is_superuser OR c.user.belongs_to_body(body.id))) %]
[% select_status = BLOCK %]
<select class="form-control js-multiple" name="status" id="statuses" multiple
data-all="[% loc('All') %]"
- [% IF c.user_exists AND c.user.is_superuser OR c.user.belongs_to_body(body.id) %]
+ [% IF show_all_states %]
[% options = []; FOR group IN filter_states; FOR state IN group.1; NEXT IF state == 'hidden'; options.push(state); END; END %]
data-all-options='["[% options.join('", "') %]"]'
[%~ ELSE ~%]
@@ -17,7 +18,7 @@
<option value="shortlisted"[% ' selected' IF filter_status.shortlisted %]>[% loc('Shortlisted') %]</option>
<option value="unshortlisted"[% ' selected' IF filter_status.unshortlisted %]>[% loc('Unshortlisted') %]</option>
[% END %]
- [% IF c.user_exists AND c.user.is_superuser OR c.user.belongs_to_body(body.id) %]
+ [% IF show_all_states %]
[% FOR group IN filter_states %]
[% FOR state IN group.1 %]
[% NEXT IF state == 'hidden' %]
@@ -38,8 +39,9 @@
[% IF filter_categories.size %]
<select class="form-control js-multiple" name="filter_category" id="filter_categories" multiple data-all="[% loc('Everything') %]">
[% FOR cat IN filter_categories %]
- <option value="[% cat.name | html %]"[% ' selected' IF filter_category.${cat.name} %]>
- [% cat.value | html %]
+ <option value="[% cat.category | html %]"[% ' selected' IF filter_category.${cat.category} %]>
+ [% cat.category_display | html %]
+ [%~ IF cat.get_extra_metadata('help_text') %] ([% cat.get_extra_metadata('help_text') %])[% END ~%]
</option>
[% END %]
</select>
diff --git a/templates/web/base/reports/_ward-list.html b/templates/web/base/reports/_ward-list.html
index 8160668d7..bc289a33c 100755
--- a/templates/web/base/reports/_ward-list.html
+++ b/templates/web/base/reports/_ward-list.html
@@ -1,16 +1,29 @@
[% IF children.size %]
-<section id="council_wards" class="hidden-js">
+[% SET show_wards_hidden_class = c.req.params.show_wards ? 'hidden' : 'js-ward-single' %]
+[% SET show_wards_shown_class = c.req.params.show_wards ? '' : 'js-ward-multi hidden' %]
+<section id="council_wards"[% UNLESS c.req.params.show_wards %] class="hidden-js"[% END %]>
<h2>[% ward_text %]</h2>
- <p>[% loc('Follow a ward link to view only reports within that ward.') %]</p>
+ <p class="[% show_wards_hidden_class %]">[% loc('Follow a ward link to view only reports within that ward.') %]</p>
+ <p class="[% show_wards_shown_class %]">[% loc('Select multiple wards to view only reports within those wards.') %]</p>
+ <p class="[% show_wards_hidden_class %]"><a href="?show_wards=1" class="js-ward-select-multiple">[% loc('Select multiple wards?') %]</a></p>
+ <form method="get" action="">
<section class="full-width">
<ul class="item-list item-list--wards">
[% FOR child IN children.values.sort('name') %]
<li class="item-list__item item-list--wards__item">
- <a href="[% child.url %]">[% child.name %]</a>
+ <label class="[% show_wards_shown_class %]">
+ <input type="checkbox" name="ward" value="[% child.name | html %]">
+ [% child.name %]
+ </label>
+ <a class="[% show_wards_hidden_class %]" href="[% child.url %]">[% child.name %]</a>
</li>
[% END %]
</ul>
</section>
+ <p>
+ <input class="btn [% show_wards_shown_class %]" type="submit" value="[% loc('View wards') %]" />
+ </p>
+ </form>
</section>
[% END %]
diff --git a/templates/web/base/reports/body.html b/templates/web/base/reports/body.html
index 7931ae691..a630c2175 100755
--- a/templates/web/base/reports/body.html
+++ b/templates/web/base/reports/body.html
@@ -28,7 +28,7 @@
[% map_html %]
[% IF c.user && c.user.has_body_permission_to('planned_reports') %]
- <p id="sub_map_links">
+ <p class="sub-map-links" id="sub_map_links">
<a id="fms_shortlist_all" class="hidden">[% loc('Shortlist all visible') %]</a>
</p>
[% END %]
diff --git a/templates/web/bathnes/around/_postcode_form_post.html b/templates/web/bathnes/around/_postcode_form_post.html
new file mode 100644
index 000000000..aef8e7b0c
--- /dev/null
+++ b/templates/web/bathnes/around/_postcode_form_post.html
@@ -0,0 +1,2 @@
+<h2 style='margin-top:1em'><a href="https://www.bathnes.gov.uk/reportit">Report other issues or make enquiries</a></h2>
+<h2>Report emergencies on 01225 39 40 41 (option 9).</h2>
diff --git a/templates/web/bathnes/around/intro.html b/templates/web/bathnes/around/intro.html
new file mode 100644
index 000000000..06965b0ac
--- /dev/null
+++ b/templates/web/bathnes/around/intro.html
@@ -0,0 +1 @@
+<h1>Report problems on the road</h1>
diff --git a/templates/web/bathnes/contact/index.html b/templates/web/bathnes/contact/index.html
new file mode 100644
index 000000000..d9947cbec
--- /dev/null
+++ b/templates/web/bathnes/contact/index.html
@@ -0,0 +1,139 @@
+[% 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>
+[% ELSIF rejecting_report %]
+<h1>[% loc('Reject report') %]</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 %]
+ [% IF moderation_complaint %]
+ <input type="hidden" name="m" value="[% moderation_complaint %]">
+ <p>[% loc('You are complaining that this problem report was unnecessarily moderated:') %]</p>
+ [% ELSIF rejecting_report %]
+ [% INCLUDE 'contact/rejecting-text.html' %]
+ [% ELSE %]
+ [% INCLUDE 'contact/unsuitable-text.html' %]
+ [% END %]
+
+ <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 %]
+
+ [% IF NOT rejecting_report %]
+ <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="form-control 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="form-control required email" name="em" id="form_email" value="[% em | html %]" size="30">
+
+ <div class="form-group">
+ <label for="form_phone">[% loc('Your phone number') %]</label>
+ <span class="required-text required-text--optional">optional</span>
+ <input type="text" class="form-control extra.phone" name="extra.phone" id="form_phone" value="" 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="form-control required" name="subject" id="form_subject" value="[% subject | html %]" size="30">
+ [% ELSE %]
+ <input type="hidden" name="name" value="[% c.user.name | html %]" />
+ <input type="hidden" name="em" value="[% c.user.email | html %]" />
+ <input type="hidden" name="subject" value="[% loc("Report rejected") %]" />
+ <input type="hidden" name="reject" value="1" />
+ [% END %]
+
+
+ [% INCLUDE 'contact/who.html' %]
+
+ [% IF rejecting_report %]
+ <label for="form_message">[% loc('Rejection reason') %]</label>
+ [% ELSE %]
+ <label for="form_message">[% loc('Message') %]</label>
+ [% END %]
+ [% IF field_errors.message %]
+ <div class="form-error">[% field_errors.message %]</div>
+ [% END %]
+ <textarea class="form-control required" name="message" id="form_message" rows="7" cols="50">[% message | html %]</textarea>
+
+
+ [% IF rejecting_report %]
+ <div class="form-group">
+ <label for="form_service_area">[% loc('Service area for re-allocation') %]</label>
+ <input type="text" class="form-control extra.service_area" name="extra.service_area" id="form_service_area" value="" size="30">
+ </div>
+ [% END %]
+
+
+
+ <input class="final-submit green-btn" type="submit" value="[% loc('Send') %]">
+
+ </fieldset>
+</form>
+
+[% TRY %][% INCLUDE 'contact/address.html' %][% CATCH file %][% END %]
+
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/bathnes/contact/rejecting-text.html b/templates/web/bathnes/contact/rejecting-text.html
new file mode 100644
index 000000000..a6c62fdad
--- /dev/null
+++ b/templates/web/bathnes/contact/rejecting-text.html
@@ -0,0 +1,3 @@
+<p>
+ [% loc('You are rejecting the following problem report for being outside the council’s responsibility, or similar:') %]
+</p>
diff --git a/templates/web/bathnes/footer_extra.html b/templates/web/bathnes/footer_extra.html
new file mode 100644
index 000000000..4651fdaa5
--- /dev/null
+++ b/templates/web/bathnes/footer_extra.html
@@ -0,0 +1,26 @@
+[%#
+* Taken from https://style.bathnes.gov.uk/02-components.html#footer
+* Image path changed
+* Footer links updated
+%]
+<footer class="global-footer">
+ <div class="footer-wrapper">
+ <div class="grid-row">
+ <div class="column-two-thirds">
+ <div class="footer-logo">
+ <img src="/cobrands/bathnes/bathnes-logo-mono.png" alt="Bath & North East Somerset Council" />
+ </div>
+
+ <ul class="footer-list">
+ <li><a href="http://www.bathnes.gov.uk/contact-us">Contact Us</a></li>
+ <li><a href="/privacy">Privacy and Cookies</a></li>
+ </ul>
+ </div>
+
+ <div class="column-one-thirds">
+
+ </div>
+
+ </div>
+ </div>
+</footer>
diff --git a/templates/web/bathnes/header_extra.html b/templates/web/bathnes/header_extra.html
new file mode 100644
index 000000000..8a977495f
--- /dev/null
+++ b/templates/web/bathnes/header_extra.html
@@ -0,0 +1 @@
+[% INCLUDE 'tracking_code.html' %]
diff --git a/templates/web/bathnes/header_site.html b/templates/web/bathnes/header_site.html
new file mode 100644
index 000000000..e39882b58
--- /dev/null
+++ b/templates/web/bathnes/header_site.html
@@ -0,0 +1,36 @@
+[%#
+* Taken from https://style.bathnes.gov.uk/02-components.html#headers
+* Image path updated
+* Menu button changed to link, and other FMS Report link added
+* Seach box made functional
+* .visually-hidden to .visuallyhidden
+%]
+<header id="site-header" role="banner">
+ <div class="header-wrapper">
+ <div class="header-global">
+ <div class="header-logo">
+ <a href="https://www.bathnes.gov.uk/" id="logo">
+ <img src="/cobrands/bathnes/bathnes-logo-colour.png" alt="Bath & North East Somerset Council" />
+ </a>
+ </div>
+
+ <a href="[% c.cobrand.base_url IF admin %]/" id="report-cta" title="[%- loc('Report a problem') -%]">[%- loc('Report') -%]</a>
+ <a href="#main-nav" class="navigation-trigger">Menu</a>
+
+ <div class="header-search header-search--desktop">
+ <form id="search" class="site-search" action="http://www.bathnes.gov.uk/search/site/" method="post">
+ <label class="form-label visuallyhidden" for="search-site">Search across the site</label>
+ <input class="form-control" id="search-site" type="text" name="search_block_form" placeholder="Search bathnes.gov.uk">
+ <input type="hidden" name="form_id" value="search_block_form">
+ <input class="button" type="submit" value="Search">
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <nav role="navigation" id="navigation-primary" class="navigation-primary">
+ [% INCLUDE 'main_nav.html' omit_wrapper=1 ul_class='navigation-primary-list' liattrs='class="navigation-primary-list__item"' %]
+ </nav>
+
+ <div class="header-marque"></div>
+</header>
diff --git a/templates/web/bathnes/report/_council_sent_info.html b/templates/web/bathnes/report/_council_sent_info.html
new file mode 100644
index 000000000..1963020bc
--- /dev/null
+++ b/templates/web/bathnes/report/_council_sent_info.html
@@ -0,0 +1,17 @@
+[% SET duration_clause = problem.duration_string(c) %]
+[% IF duration_clause || problem.whensent %]
+ <p class="council_sent_info">
+ [%- IF problem.whensent %]
+ [%- IF duration_clause %]
+ [%- external_ref_clause = tprintf(loc('Council ref:&nbsp;%s'), problem.id) %]
+ [%- ELSE %]
+ [%- external_ref_clause = tprintf(loc('%s ref:&nbsp;%s'), problem.external_body, problem.id) %]
+ [%- END %]
+ [%- END -%]
+ [% duration_clause %]
+ [%- IF external_ref_clause %]
+ [%- IF duration_clause %]. [% END %]
+ <strong>[% external_ref_clause %].</strong>
+ [%- END %]
+ </p>
+[% END %]
diff --git a/templates/web/bathnes/report/_show_name_label.html b/templates/web/bathnes/report/_show_name_label.html
new file mode 100644
index 000000000..8e58f816a
--- /dev/null
+++ b/templates/web/bathnes/report/_show_name_label.html
@@ -0,0 +1,5 @@
+[%# 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">Tick here to show my name publicly</label>
+</div>
diff --git a/templates/web/bathnes/report/new/_form_labels.html b/templates/web/bathnes/report/new/_form_labels.html
new file mode 100644
index 000000000..de2e1dfb3
--- /dev/null
+++ b/templates/web/bathnes/report/new/_form_labels.html
@@ -0,0 +1,5 @@
+[%
+SET form_title = 'Summarise the problem and location';
+SET form_title_placeholder = 'e.g. ‘pothole on Example St, near post box’';
+SET form_detail_placeholder = 'e.g. ‘This pothole has been here for two months and…’';
+%] \ No newline at end of file
diff --git a/templates/web/bathnes/report/new/councils_extra_text.html b/templates/web/bathnes/report/new/councils_extra_text.html
new file mode 100644
index 000000000..690d7301f
--- /dev/null
+++ b/templates/web/bathnes/report/new/councils_extra_text.html
@@ -0,0 +1,5 @@
+<p style='font-size: 85%; color: #F8F8F8; background-color:#00aeef; padding: 0.25em;'>
+Report other issues or make enquiries using our
+<a style='color:#fff; text-decoration:underline' href="https://www.bathnes.gov.uk/reportit">report it</a> forms.
+Report emergencies by calling 01225 39 40 41 (option 9)
+</p>
diff --git a/templates/web/bathnes/tracking_code.html b/templates/web/bathnes/tracking_code.html
new file mode 100644
index 000000000..e6f20b90f
--- /dev/null
+++ b/templates/web/bathnes/tracking_code.html
@@ -0,0 +1,12 @@
+[% IF c.config.BASE_URL == "https://www.fixmystreet.com" %]
+<script async src="https://www.googletagmanager.com/gtag/js?id=UA-418184-9"></script>
+<script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+
+ gtag('config', 'UA-418184-9');
+</script>
+[% ELSE %]
+<!-- Tracking code not inserted as "[% c.config.BASE_URL %]" not "https://www.fixmystreet.com" -->
+[% END %]
diff --git a/templates/web/borsetshire/around/postcode_form.html b/templates/web/borsetshire/around/postcode_form.html
index 4ad82dec6..6a569dbc5 100644
--- a/templates/web/borsetshire/around/postcode_form.html
+++ b/templates/web/borsetshire/around/postcode_form.html
@@ -19,7 +19,7 @@
<label for="pc">[% question %]:</label>
<div>
<input type="hidden" name="pc" value="[% c.cobrand.problems.first.postcode | html %]">
- <input type="text" name="_pc" value="[% pc | html %]" id="pc" size="10" maxlength="200" placeholder="[% tprintf(loc('e.g. ‘%s’ or ‘%s’'), c.cobrand.example_places) %]">
+ <input type="text" name="_pc" value="[% pc | html %]" id="pc" size="10" maxlength="200" placeholder="[% tprintf(loc('e.g. ‘%s’ or ‘%s’'), c.cobrand.example_places) %]" required>
<input type="submit" value="[% loc('Go') %]" id="sub">
</div>
diff --git a/templates/web/bristol/maps/noscript_map.html b/templates/web/bristol/maps/noscript_map.html
new file mode 100644
index 000000000..987aa76a6
--- /dev/null
+++ b/templates/web/bristol/maps/noscript_map.html
@@ -0,0 +1,32 @@
+<div class="noscript square-map__outer">
+ <div class="square-map__inner">
+ <div id="[% nsm_prefix %]drag">
+ [%- FOR row IN map.tiles -%]
+ [%- FOR tile IN row -%]
+ [%- top_px = tile.row_offset * map.tile_size -%]
+ [%- left_px = tile.col_offset * map.tile_size %]
+ <[% map.img_type %]
+ class="square-map__tile"
+ alt="[% tile.alt %]"
+ id="[% nsm_prefix %]t[% tile.dotted_id %]"
+ name="tile_[% tile.dotted_id %]"
+ src="[% tile.src %]"
+ style="width: [% 100 / map.cols %]%; height: auto; float: left;">
+ [%- END -%]
+ [% END %]
+ </div>
+ <div id="[% nsm_prefix %]pins">[% FOR pin IN map.pins %][% INCLUDE pin %][% END %]</div>
+ [% INCLUDE 'maps/_compass.html' %]
+ </div>
+</div>
+
+[% BLOCK pin %]
+[%
+ SET pin_top = pin.py / ( map.tile_size * map.rows ) * 100;
+ SET pin_left = pin.px / ( map.tile_size * map.cols ) * 100;
+ # -24px half of 48px wide image, -64px all of 64px tall image
+ INCLUDE 'maps/pin.html'
+ pin_style = 'top:' _ pin_top _ '%; left:' _ pin_left _ '%; position:absolute; margin-left:-24px; margin-top:-64px;'
+%]
+[% END %]
+
diff --git a/templates/web/bromley/report/new/form_user.html b/templates/web/bromley/report/new/form_user.html
index cce985c95..20f522dcd 100644
--- a/templates/web/bromley/report/new/form_user.html
+++ b/templates/web/bromley/report/new/form_user.html
@@ -5,130 +5,18 @@
title, first name, and last name separately.
%]
-<h2 class="form-section-heading form-section-heading--private">Private details</h2>
-<p class="form-section-description">
- [% tprintf(
- loc('These will be sent to the council, but will never be shown online. <a href="%s">(See our privacy policy.)</a>')
- '/faq#privacy'
- ); %]
+<h2 class="form-section-heading form-section-heading--private">[% loc('Private details') %]</h2>
+<p class="form-section-description" id="js-councils_text_private">
+ [% IF js %]
+ [% loc('These will be sent to the council, but will never be shown online.') %]
+ (<a href="/faq#privacy">[% loc('See our privacy policy') %]</a>.)
+ [% ELSE %]
+ [% PROCESS 'report/new/councils_text_private.html' %]
+ [% END %]
</p>
[% IF c.user_exists %]
- <div class="form-box">
- [% INCLUDE 'report/new/extra_name.html' %]
-
- [% names = c.user.split_name %]
- <label for="form_first_name">[% loc('First Name') %]</label>
- [% IF field_errors.first_name %]
- <p class='form-error'>[% field_errors.first_name %]</p>
- [% END %]
- <input class="form-control js-form-name" type="text" value="[% ( first_name || names.first ) | html %]" name="first_name" id="form_first_name" placeholder="[% loc('Your first name') %]">
-
- <label for="form_last_name">[% loc('Last Name') %]</label>
- [% IF field_errors.last_name %]
- <p class='form-error'>[% field_errors.last_name %]</p>
- [% END %]
- <input class="form-control js-form-name" type="text" value="[% ( last_name || names.last ) | html %]" name="last_name" id="form_last_name" placeholder="[% loc('Your last 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 !report.anonymous %]>
- <label class="inline" for="form_may_show_name">[% loc('Show my name publicly') %]</label>
- </div>
-
- <label for="form_phone">[% loc('Phone number (optional)') %]</label>
- <input class="form-control" type="text" value="[% report.user.phone | html %]" name="phone" id="form_phone" placeholder="[% loc('Your phone number') %]">
-
- <div class="general-notes">
- <p>[% loc('We never show your email address or phone number.') %]</p>
- </div>
-
- <div class="form-txt-submit-box">
- <input class="green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Submit') %]">
- </div>
- </div>
+ [% PROCESS "report/new/form_user_loggedin.html" %]
[% ELSE %]
-
- <label for="form_username">[% loc('Your email') %]</label>
- [% IF field_errors.username %]
- <p class='form-error'>[% field_errors.username %]</p>
- [% END %]
- <input class="form-control" type="email" value="[% report.user.email | html %]" name="username" id="form_username" placeholder="[% loc('Please enter your email address') %]" required>
-
- <div id="form_sign_in">
-
- <p>To submit your report you now need to confirm it either by email or by using a FixMyStreet password.</p>
-
- <div id="form_sign_in_no" class="form-box">
- <h5>Confirm my report by email</h5>
-
- [% INCLUDE 'report/new/extra_name.html' %]
-
- <label for="form_first_name">[% loc('First Name') %]</label>
- [% IF field_errors.first_name %]
- <p class='form-error'>[% field_errors.first_name %]</p>
- [% END %]
- <input type="text" class="form-control form-focus-trigger js-form-name" value="[% first_name | html %]" name="first_name" id="form_first_name" placeholder="[% loc('Your first name') %]">
-
- <label for="form_last_name">[% loc('Last Name') %]</label>
- [% IF field_errors.last_name %]
- <p class='form-error'>[% field_errors.last_name %]</p>
- [% END %]
- <input type="text" class="form-control form-focus-trigger js-form-name" value="[% last_name | html %]" name="last_name" id="form_last_name" placeholder="[% loc('Your last 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 !report.anonymous %]>
- <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-control 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>
- [% IF field_errors.password_register %]
- <p class='form-error'>[% field_errors.password_register %]</p>
- [% END %]
-
- <div class="general-notes form-focus-hidden">
- <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report future problems, leave updates and manage your reports.') %]</p>
- </div>
-
- <div class="form-txt-submit-box form-focus-hidden">
- <input class="form-control js-password-validate" type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
- <input class="green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Submit') %]">
- </div>
-
- <div class="general-notes">
- <p>[% tprintf(loc('Your password should include %d or more characters.'), c.cobrand.password_minimum_length) %]</p>
- </div>
-
- </div>
-
- <div id="form_sign_in_yes" class="form-box">
-
- <h5>Confirm my report with my FixMyStreet password</h5>
-
- <label class="hidden-js n" for="password_sign_in">[% loc('Yes I have a password') %]</label>
- <div class="form-txt-submit-box">
- [% IF field_errors.password %]
- <p class='form-error'>[% field_errors.password %]</p>
- [% END %]
- <input class="form-control" type="password" name="password_sign_in" id="password_sign_in" placeholder="[% loc('Your password') %]" value="">
- <input class="green-btn js-submit_sign_in" type="submit" 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>
-
- </div>
-
+ [% PROCESS "report/new/form_user_loggedout.html" %]
[% END %]
diff --git a/templates/web/bromley/report/new/form_user_loggedout.html b/templates/web/bromley/report/new/form_user_loggedout.html
new file mode 100644
index 000000000..8d46e7b60
--- /dev/null
+++ b/templates/web/bromley/report/new/form_user_loggedout.html
@@ -0,0 +1,7 @@
+[% PROCESS 'report/new/form_user_loggedout_email.html' required = 1 %]
+
+<div id="form_sign_in">
+ <p>To submit your report you now need to confirm it either by email or by using a FixMyStreet password.</p>
+ [% PROCESS 'report/new/form_user_loggedout_by_email.html' %]
+ [% PROCESS 'report/new/form_user_loggedout_password.html' %]
+</div>
diff --git a/templates/web/bromley/report/new/form_user_loggedout_by_email.html b/templates/web/bromley/report/new/form_user_loggedout_by_email.html
new file mode 100644
index 000000000..aea672483
--- /dev/null
+++ b/templates/web/bromley/report/new/form_user_loggedout_by_email.html
@@ -0,0 +1,37 @@
+<div id="form_sign_in_no" class="form-box">
+ <h5>Confirm my report by email</h5>
+
+ [% INCLUDE 'report/new/extra_name.html' %]
+ [% PROCESS 'user/_anonymity.html' anonymous = report.anonymous %]
+ [% INCLUDE 'report/new/form_user_name.html' extra_class='form-focus-trigger' %]
+ [% INCLUDE 'report/_show_name_label.html' %]
+
+ [% UNLESS c.cobrand.call_hook('disable_phone_number_entry') %]
+ <div id="js-hide-if-username-phone">
+ <label class="form-focus-hidden" for="form_phone">[% loc('Phone number (optional)') %]</label>
+ <input class="form-control form-focus-hidden" type="text" value="[% report.user.phone_display | html %]" name="phone" id="form_phone">
+ </div>
+ [% END %]
+ <div id="js-hide-if-username-email">
+ <label class="form-focus-hidden" for="form_email">[% loc('Email address (optional)') %]</label>
+ <input class="form-control form-focus-hidden" type="text" value="[% report.user.email | html %]" name="email" id="form_email">
+ </div>
+
+ <label class="form-focus-hidden" for="password_register">[% loc('Password (optional)') %]</label>
+ [% IF field_errors.password_register %]
+ <p class='form-error'>[% field_errors.password_register %]</p>
+ [% END %]
+ <div class="general-notes form-focus-hidden">
+ <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report future problems, leave updates and manage your reports.') %]</p>
+ </div>
+
+ <div class="form-txt-submit-box form-focus-hidden">
+ <input class="form-control js-password-validate" type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
+ <input class="green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Submit') %]">
+ </div>
+
+ <div class="general-notes">
+ <p>[% tprintf(loc('Your password should include %d or more characters.'), c.cobrand.password_minimum_length) %]</p>
+ </div>
+
+</div>
diff --git a/templates/web/bromley/report/new/form_user_loggedout_password.html b/templates/web/bromley/report/new/form_user_loggedout_password.html
new file mode 100644
index 000000000..a4255f647
--- /dev/null
+++ b/templates/web/bromley/report/new/form_user_loggedout_password.html
@@ -0,0 +1,18 @@
+<div id="form_sign_in_yes" class="form-box">
+
+ <h5>Confirm my report with my FixMyStreet 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 class="form-control" type="password" name="password_sign_in" id="password_sign_in" placeholder="[% loc('Your password') %]" value="">
+ <input class="green-btn js-submit_sign_in" type="submit" 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>
diff --git a/templates/web/bromley/report/new/form_user_name.html b/templates/web/bromley/report/new/form_user_name.html
new file mode 100644
index 000000000..8102c0ea7
--- /dev/null
+++ b/templates/web/bromley/report/new/form_user_name.html
@@ -0,0 +1,12 @@
+[% names = c.user.split_name %]
+<label for="form_first_name">[% loc('First Name') %]</label>
+[% IF field_errors.first_name %]
+ <p class='form-error'>[% field_errors.first_name %]</p>
+[% END %]
+<input class="form-control js-form-name [% extra_class %]" type="text" value="[% ( first_name || names.first ) | html %]" name="first_name" id="form_first_name" placeholder="[% loc('Your first name') %]">
+
+<label for="form_last_name">[% loc('Last Name') %]</label>
+[% IF field_errors.last_name %]
+ <p class='form-error'>[% field_errors.last_name %]</p>
+[% END %]
+<input class="form-control js-form-name [% extra_class %]" type="text" value="[% ( last_name || names.last ) | html %]" name="last_name" id="form_last_name" placeholder="[% loc('Your last name') %]">
diff --git a/templates/web/bromley/report/update-form.html b/templates/web/bromley/report/update-form.html
index 9778a0db3..6c3ca9298 100644
--- a/templates/web/bromley/report/update-form.html
+++ b/templates/web/bromley/report/update-form.html
@@ -1,3 +1,6 @@
+[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body) %]
+[% RETURN IF NOT allow_creation OR problem.extra.closed_updates %]
+
<div id="update_form">
[% UNLESS hide_header %]
<h2[% IF two_column_sidebar %] class="hidden-js"[% END %]>[% loc('Provide an update') %]</h2>
@@ -5,140 +8,33 @@
[% INCLUDE 'errors.html' %]
- <form method="post" action="[% c.uri_for( '/report/update' ) %]" name="updateForm" class="validate"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %]>
+ <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 %]>
<input type="hidden" name="token" value="[% csrf_token %]">
<fieldset>
- <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">
- <span data-singular="[% loc('Photo') %]" data-plural="[% loc('Photos') %]">[% loc('Photo') %]</span>
- </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/temp.[% id %]" 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 %]
-
- <div class="general-notes">
- <p>Please note that new and separate occurrences of issues
- should be logged as new reports, to avoid conflicting
- information or updates and ensure the information is passed
- promptly to our teams. Please log any new issue via
- <a href="https://www.bromley.gov.uk/report">https://www.bromley.gov.uk/report</a>
- using the map marker and description to detail where the issue
- is located.</p>
- </div>
-
- <label for="form_update">[% loc( 'Update' ) %]</label>
- [% IF field_errors.update %]
- <div class='form-error'>[% field_errors.update %]</div>
- [% END %]
- <textarea class="form-control" 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="state">[% loc( 'State' ) %]</label>
- [% INCLUDE 'report/inspect/state_groups_select.html' %]
- [% ELSE %]
- [% IF problem.is_fixed AND c.user_exists AND c.user.id == problem.user_id %]
-
- <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.user_exists %]
-
+ [% 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' %]
-
- <input class="final-submit green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Post') %]">
-
-
- [% ELSE %]
-
- <label for="form_username">[% loc('Email' ) %]
- <span class="muted">([% loc('We never show your email') %])</span>
- </label>
-
- [% IF field_errors.username %]
- <p class='form-error'>[% field_errors.username %]</p>
- [% END %]
- <input class="form-control" type="email" name="username" id="form_username" value="[% update.user.email | html %]" placeholder="[% loc('Your email address' ) %]" required>
-
+ <div class="clearfix"><input class="final-submit green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Post') %]"></div>
+ [% ELSIF oauth_need_email %]
+ [% INCLUDE 'report/update/form_user_loggedout_email.html' required = 1 %]
<div id="form_sign_in">
- <p>To submit your update you now need to confirm it either by email or by using a FixMyStreet password.</p>
-
- <div id="form_sign_in_no" class="form-box">
- <h5>Confirm my report by email</h5>
-
- [% INCLUDE 'report/update/form_name.html' %]
-
- <label for="password_register">[% loc('Password (optional)') %]</label>
- [% IF field_errors.password_register %]
- <p class='form-error'>[% field_errors.password_register %]</p>
- [% END %]
-
- <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" class="form-control js-password-validate" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
- <input class="green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Post') %]">
- </div>
-
- <div class="general-notes">
- <p>[% tprintf(loc('Your password should include %d or more characters.'), c.cobrand.password_minimum_length) %]</p>
- </div>
-
- </div>
- <div id="form_sign_in_yes" class="form-box">
- <h5>Confirm my report with my FixMyStreet 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" class="form-control" name="password_sign_in" id="password_sign_in" value="" placeholder="[% loc('Your password') %]">
- <input class="green-btn js-submit_sign_in" type="submit" name="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>
+ <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>
+ [% ELSE %]
+ [% INCLUDE 'report/update/form_user_loggedout.html' %]
+ [% END %]
- [% END %]
-
- <p>Your information will only be used in accordance with our <a href="/faq#privacy">privacy policy</a>.</p>
+ <p>Your information will only be used in accordance with our <a href="/faq#privacy">privacy policy</a>.</p>
+ [% IF login_success OR oauth_need_email %]
+ [% INCLUDE 'report/update/form_update.html' %]
+ [% END %]
</fieldset>
</form>
</div>
diff --git a/templates/web/bromley/report/update/form_update.html b/templates/web/bromley/report/update/form_update.html
new file mode 100644
index 000000000..06d7c455e
--- /dev/null
+++ b/templates/web/bromley/report/update/form_update.html
@@ -0,0 +1,54 @@
+<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">
+ <span data-singular="[% loc('Photo') %]" data-plural="[% loc('Photos') %]">[% loc('Photo') %]</span>
+ </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/temp.[% id %]" 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 %]
+
+<div class="general-notes">
+ <p>Please note that new and separate occurrences of issues
+ should be logged as new reports, to avoid conflicting
+ information or updates and ensure the information is passed
+ promptly to our teams. Please log any new issue via
+ <a href="https://www.bromley.gov.uk/report">https://www.bromley.gov.uk/report</a>
+ using the map marker and description to detail where the issue
+ is located.</p>
+</div>
+
+<label for="form_update">[% loc( 'Update' ) %]</label>
+[% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
+ [% INCLUDE 'admin/response_templates_select.html' for='form_update' %]
+[% END %]
+[% IF field_errors.update %]
+ <div class='form-error'>[% field_errors.update %]</div>
+[% END %]
+<textarea rows="7" cols="30" name="update" class="form-control" 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="state">[% loc( 'State' ) %]</label>
+ [% INCLUDE 'report/inspect/state_groups_select.html' %]
+[% ELSE %]
+ [% INCLUDE report/update/form_state_checkbox.html %]
+[% END %]
+
diff --git a/templates/web/bromley/report/update/form_user_loggedout.html b/templates/web/bromley/report/update/form_user_loggedout.html
new file mode 100644
index 000000000..f19238934
--- /dev/null
+++ b/templates/web/bromley/report/update/form_user_loggedout.html
@@ -0,0 +1,7 @@
+[% INCLUDE 'report/update/form_user_loggedout_email.html' required=1 %]
+
+<div id="form_sign_in">
+ <p>To submit your update you now need to confirm it either by email or by using a FixMyStreet password.</p>
+ [% INCLUDE 'report/update/form_user_loggedout_by_email.html' %]
+ [% INCLUDE 'report/update/form_user_loggedout_password.html' %]
+</div>
diff --git a/templates/web/bromley/report/update/form_user_loggedout_by_email.html b/templates/web/bromley/report/update/form_user_loggedout_by_email.html
new file mode 100644
index 000000000..393d8e4cc
--- /dev/null
+++ b/templates/web/bromley/report/update/form_user_loggedout_by_email.html
@@ -0,0 +1,23 @@
+<div id="form_sign_in_no" class="form-box">
+ <h5>Confirm my report by email</h5>
+
+ [% INCLUDE 'report/update/form_name.html' %]
+
+ <label for="password_register">[% loc('Password (optional)') %]</label>
+ [% IF field_errors.password_register %]
+ <p class='form-error'>[% field_errors.password_register %]</p>
+ [% END %]
+ <div class="general-notes">
+ <p>[% loc('Providing a password is optional, but doing so will allow you to more easily report future problems, leave updates and manage your reports.') %]</p>
+ </div>
+
+ <div class="form-txt-submit-box">
+ <input class="form-control js-password-validate" type="password" name="password_register" id="password_register" value="" placeholder="[% loc('Enter a password') %]">
+ <input class="green-btn js-submit_register" type="submit" name="submit_register" value="[% loc('Post') %]">
+ </div>
+
+ <div class="general-notes">
+ <p>[% tprintf(loc('Your password should include %d or more characters.'), c.cobrand.password_minimum_length) %]</p>
+ </div>
+
+</div>
diff --git a/templates/web/bromley/report/update/form_user_loggedout_email.html b/templates/web/bromley/report/update/form_user_loggedout_email.html
new file mode 100644
index 000000000..228ca7509
--- /dev/null
+++ b/templates/web/bromley/report/update/form_user_loggedout_email.html
@@ -0,0 +1,8 @@
+<label for="form_username">[% loc('Email' ) %]
+ <span class="muted">([% loc('We never show your email') %])</span>
+</label>
+
+[% IF field_errors.username %]
+ <p class='form-error'>[% field_errors.username %]</p>
+[% END %]
+<input class="form-control" type="email" name="username" id="form_username" value="[% update.user.email | html %]" placeholder="[% loc('Your email address' ) %]" required>
diff --git a/templates/web/bromley/report/update/form_user_loggedout_password.html b/templates/web/bromley/report/update/form_user_loggedout_password.html
new file mode 100644
index 000000000..3b7adb84e
--- /dev/null
+++ b/templates/web/bromley/report/update/form_user_loggedout_password.html
@@ -0,0 +1,18 @@
+<div id="form_sign_in_yes" class="form-box">
+
+ <h5>Confirm my report with my FixMyStreet 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 class="form-control" type="password" name="password_sign_in" id="password_sign_in" placeholder="[% loc('Your password') %]" value="">
+ <input class="green-btn js-submit_sign_in" type="submit" name="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="n inline" for="remember_me">[% loc('Keep me signed in on this computer') %]</label>
+ </div>
+</div>
diff --git a/templates/web/buckinghamshire/about/faq-en-gb.html b/templates/web/buckinghamshire/about/faq-en-gb.html
new file mode 100755
index 000000000..54aaa4fcd
--- /dev/null
+++ b/templates/web/buckinghamshire/about/faq-en-gb.html
@@ -0,0 +1,108 @@
+[% INCLUDE 'header.html', title = loc('Frequently Asked Questions'), bodyclass = 'twothirdswidthpage' %]
+
+[% INCLUDE 'about/_sidebar.html' %]
+
+<h1><a name="faq"></a>Frequently Asked Questions</h1>
+
+<dl>
+
+ <dt>What is this site?</dt>
+ <dd>FixMyStreet Bucks is a site to allow people to make reports to
+ Buckinghamshire County Council, and view, or discuss local issues they’ve
+ found, by simply locating them on a map.</dd>
+
+ <dt>How do I get in touch with FixMyStreet?</dt>
+ <dd>Here’s our <a href="/contact">contact page</a>.</dd>
+
+ <dt>What sort of problems should I report with FixMyStreet?</dt>
+ <dd>FixMyStreet Bucks is primarily for reporting things which are
+ <strong>broken or damaged or dumped, and need fixing, or clearing</strong>, such as:
+ <ul>
+ <li>Flodding
+ <li>Grit bins
+ <li>Rubbish or flytipping
+ <li>Potholes
+ <li>Street signs and traffic lights
+ <li>Unlit lampposts
+ </ul>
+ We may send some reports to the relevant District Council especially for:
+ <ul>
+ <li>Abandoned vehicles
+ <li>Flytipping or litter
+ <li>Streetcleaning, such as broken glass in a cycle lane
+ </ul>
+ </dd>
+
+ <dt>What isn’t FixMyStreet for?</dt>
+ <dd>FixMyStreet is not a way of getting in touch with Buckinghamshire
+ County Council for all issues – please use this site only for problems
+ such as the above. We often route problem reports to the Parish and District
+ council, so using this site for other matters may result in a delay in
+ your report getting to the right department.
+ <p><strong>You will need to contact the relevant authority directly for problems such as</strong>:
+
+ <ul><li>Anti-social behaviour
+ <li>Any urgent or emergency problems
+ <li>Noise pollution or barking dogs
+ <li>Fires and smoke/smell pollution
+ <li>Missing wheelie bins or recycling boxes or missed rubbish collections
+ <li>Complaining about your neighbours
+ <li>Joy riding, drug taking, animal cruelty, or other criminal activity should be reported to the Police Service.
+ </ul>
+ <p>Complaints about Buckinghamshire County Council can be sent <a href="https://www.buckscc.gov.uk/services/contact-and-complaints/compliments-complaints-and-suggestions/">via this form</a>.
+ </dd>
+
+ <dt>How do I use the site?</dt>
+ <dd>After entering a location, you are presented with a map of that area.
+ You can view problems already reported in that area, or report ones of your
+ own by clicking on the map at the location of the problem.</dd>
+
+ <dt>How are the problems solved?</dt>
+ <dd>They are reported to us at Buckinghamshire County Council who will
+ resolve the problem the way we normally would.</dd>
+
+ <dt>Is it free?</dt>
+ <dd>The site is free to use, yes.</dd>
+
+ <dt>Can I use FixMyStreet on my mobile?</dt>
+ <dd>
+ <p>The FixMyStreet Bucks website will already work on your mobile
+ phone, adapting to the size of your screen automatically.</p>
+ </dd>
+</dl>
+
+<h2><a name="practical"></a>Practical Questions</h2>
+
+<dl>
+ <dt>Do you remove silly or illegal content?</dt>
+ <dd>FixMyStreet Bucks is not responsible for the content and
+ accuracy of material submitted by its users. We reserve the right to
+ edit or remove any problems or updates which we consider to be
+ inappropriate upon being informed by a user of the site.</dd>
+
+ <dt>Why can’t I zoom out more on the reporting map?</dt>
+ <dd>We want to keep FixMyStreet Bucks locally focused, so restrict
+ the ability to move radically between areas. The map on Your Reports will
+ let you see all the reports you’ve made, wherever they are.</dd>
+</dl>
+
+<h2><a name="organisation"></a>Organisation Questions</h2>
+
+<dl>
+ <dt>Who built FixMyStreet?</dt>
+ <dd>The FixMyStreet service was built by <a href="https://www.mysociety.org/">mySociety</a>.
+
+ <dt>I’d like a site like this for my own location/ where’s the
+ “source code” to this site?</dt>
+ <dd>
+ The software behind this site is open source, and available to you mainly
+ under the GNU Affero GPL software license. You can
+ <a href="https://github.com/mysociety/fixmystreet">download the source
+ code</a> and help us develop it. You’re welcome to use it in your own
+ projects, although you must also make available the source code to any such
+ projects. <a href="https://www.fixmystreet.com/">FixMyStreet.com</a> is the
+ original code installation, in the UK.</dd>
+
+</dl>
+
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/buckinghamshire/around/intro.html b/templates/web/buckinghamshire/around/intro.html
new file mode 100644
index 000000000..0af025041
--- /dev/null
+++ b/templates/web/buckinghamshire/around/intro.html
@@ -0,0 +1,2 @@
+<h1>Report a problem on a street/road</h1>
+<p>Report a problem on a street/road in Buckinghamshire or track the progress of reported issues.</p>
diff --git a/templates/web/buckinghamshire/contact/_footer.html b/templates/web/buckinghamshire/contact/_footer.html
new file mode 100644
index 000000000..80cc1aa22
--- /dev/null
+++ b/templates/web/buckinghamshire/contact/_footer.html
@@ -0,0 +1,5 @@
+<h4>[% loc("Don't like forms?") %]</h4>
+
+<p>
+You can <a href="mailto:[% contact_email %]">email technical support directly</a>.
+</p>
diff --git a/templates/web/buckinghamshire/contact/submit.html b/templates/web/buckinghamshire/contact/submit.html
new file mode 100644
index 000000000..52494bab1
--- /dev/null
+++ b/templates/web/buckinghamshire/contact/submit.html
@@ -0,0 +1,21 @@
+[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Contact Us') %]
+
+[% IF success %]
+
+ <div class="confirmation-header">
+ <h1>[% loc('Thank you for your message') %]</h1>
+ <p>[% loc('We’ll get back to you as soon as we can.') %]</p>
+ </div>
+
+[% ELSE %]
+
+ <div class="confirmation-header confirmation-header--failure">
+ <h1>[% loc('Failed to send message') %]</h1>
+ <p>[% loc('Try emailing us directly:') %] <a href="mailto:[% contact_email %]">[% contact_email %]</a></p>
+ </div>
+
+[% END %]
+
+[% INCLUDE next_steps.html utm_content='contact form submitted' %]
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/buckinghamshire/footer.html b/templates/web/buckinghamshire/footer.html
new file mode 100644
index 000000000..81553e00e
--- /dev/null
+++ b/templates/web/buckinghamshire/footer.html
@@ -0,0 +1,23 @@
+ </div><!-- .content role=main -->
+ </div><!-- .container -->
+ </div><!-- .table-cell -->
+
+ <div class="nav-wrapper">
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area %]
+ </div>
+ </div>
+ </div> <!-- .wrapper -->
+
+ [% IF pagefooter %]
+ <div class="bucks_footer">
+ <footer role="contentinfo" class="clearfix">
+ [% INCLUDE 'front/footer-marketing.html' %]
+ </footer>
+ </div>
+ [% END %]
+
+ [% INCLUDE 'common_footer_tags.html' %]
+
+</body>
+</html>
diff --git a/templates/web/buckinghamshire/front/footer-marketing.html b/templates/web/buckinghamshire/front/footer-marketing.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/buckinghamshire/front/footer-marketing.html
diff --git a/templates/web/buckinghamshire/header_logo.html b/templates/web/buckinghamshire/header_logo.html
new file mode 100644
index 000000000..2808d8782
--- /dev/null
+++ b/templates/web/buckinghamshire/header_logo.html
@@ -0,0 +1,2 @@
+ <a href="http://www.buckscc.gov.uk/" id="site-logo"><strong>Buckinghamshire</strong> County Council</a>
+ <a href="/" id="report-cta" title="[%- loc('Report a problem') -%]">[%- loc('Report') -%]</a>
diff --git a/templates/web/buckinghamshire/report/_item.html b/templates/web/buckinghamshire/report/_item.html
new file mode 100644
index 000000000..b87363a6a
--- /dev/null
+++ b/templates/web/buckinghamshire/report/_item.html
@@ -0,0 +1,139 @@
+[% IF NOT report_blocks_included ~%]
+[% PROCESS 'admin/report_blocks.html' ~%]
+[% END ~%]
+
+[% IF c.user.has_permission_to('planned_reports', problem.bodies_str_ids) OR c.user.is_planned_report(problem) ~%]
+ [% item_extra_class = "item-list__item--indented" ~%]
+ [% item_action = BLOCK ~%]
+ <input type="submit" value="1"
+ data-label-remove="[% loc('Remove from shortlist') %]"
+ data-label-add="[% loc('Add to shortlist') %]"
+ [% IF c.user.is_planned_report(problem) ~%]
+ name="shortlist-remove" title="[% loc('Remove from shortlist') %]" class="item-list__item__shortlist-remove"
+ [%~ ELSE ~%]
+ name="shortlist-add" title="[% IF problem.shortlisted_user %]
+ [%~ tprintf(loc('Shortlisted by %s'), problem.shortlisted_user.name) %]; [% END %]
+ [%~ loc('Add to shortlist') %]" class="item-list__item__shortlist-[% IF problem.shortlisted_user %]take[% ELSE %]add[% END %]"
+ [%~ END ~%]
+ >
+ [%~ END %]
+[% END %]
+
+[% IF shortlist %]
+ [% item_extra_class = "item-list__item--indented item-list__item--act-and-sort" %]
+ [% item_action = BLOCK %]
+ [% item_action %]
+ <input type="submit" name="shortlist-up" value="[% loc('Up one') %]" title="[% loc('Up one') %]" class="item-list__item__shortlist-up" [% IF loop.first %]disabled[% END %]>
+ <input type="submit" name="shortlist-down" value="[% loc('Down one') %]" title="[% loc('Down one') %]" class="item-list__item__shortlist-down" [% IF loop.last %]disabled[% END %]>
+ [% END %]
+[% END %]
+
+<li class="item-list__item item-list--reports__item [% item_extra_class %]"
+ data-report-id="[% problem.id | html %]" data-lastupdate="[% problem.lastupdate %]" id="report-[% problem.id | html %]">
+<a href="[% c.cobrand.base_url_for_report( problem ) %][% problem.url %]">
+ [% IF problem.photo %]
+ <img class="img" height="60" width="90" src="[% problem.photos.first.url_fp %]" alt="">
+ [% END %]
+ <h3 class="item-list__heading">[% problem.category | html %]: [% problem.title | html %]</h3>
+ [% IF c.user.has_permission_to('report_inspect', problem.bodies_str_ids) %]
+ <div class="item-list__description">[% problem.detail | html %]</div>
+ [% END %]
+ <small>
+ [% IF NOT no_fixed AND problem.is_fixed %]
+ <span class="item-list__item__state">[% prettify_state('fixed') %]</span>
+ [% ELSIF NOT no_fixed AND problem.is_closed %]
+ <span class="item-list__item__state">[% prettify_state('closed') %]</span>
+ [% ELSIF (c.user.has_permission_to('report_edit_priority', problem.bodies_str_ids) OR c.user.has_permission_to('report_inspect', problem.bodies_str_ids)) AND problem.response_priority %]
+ <span class="item-list__item__state">[% problem.response_priority.name %]</span>
+ [% END %]
+ [%- IF c.cobrand.moniker != 'fixamingata' %] [%# Default: %]
+ [%- IF problem.days_ago > 0 AND problem.days_ago <= c.cobrand.display_days_ago_threshold %]
+ [% tprintf( nget('Reported %d day ago', 'Reported %d days ago', problem.days_ago), problem.days_ago ) %]
+ [%- ELSE %]
+ [% prettify_dt( problem.confirmed, 1 ) %]
+ [%- END %]
+ [%- ELSE %] [%# Swedish cobrand fixamingata: %]
+ [%- prettify_dt( problem.confirmed) %]
+ [%- END %]
+ [%- IF dist %], [% dist %]km[% END %]
+ [%- IF problem.confirmed != problem.lastupdate AND problem.whensent != problem.lastupdate %],
+ [%- IF problem.days_ago('lastupdate') > 0 AND problem.days_ago('lastupdate') <= c.cobrand.display_days_ago_threshold %]
+ [% tprintf( nget('last updated %d day ago', 'last updated %d days ago', problem.days_ago('lastupdate') ), problem.days_ago('lastupdate') ) %]
+ [%- ELSE %]
+ [% tprintf(loc('last updated %s'), prettify_dt( problem.lastupdate, 1 ) ) %]
+ [%- END %]
+ [%- END %]
+ [% IF include_sentinfo %]
+ [% IF c.cobrand.is_council && !c.cobrand.owns_problem( problem ) %]
+ (sent to [% problem.body %])
+ [% ELSIF problem.bodies_str_ids.size > 2 %] [% loc('(sent to all)') %]
+ [% ELSIF problem.bodies_str_ids.size == 2 %] [% loc('(sent to both)') %]
+ [% ELSIF problem.bodies_str_ids.size == 0 %] [% loc('(not sent to council)') %]
+ [% END %]
+ [% END %]
+ </small>
+
+ [% IF c.user.has_permission_to('report_inspect', problem.bodies_str_ids) %]
+ <div class="item-list__item__metadata">
+ <div>
+ <h4>[% loc('Report ID:') %]</h4>
+ <p>[% problem.id %]</p>
+ </div>
+ [% IF problem.local_coords %]
+ <div>
+ <h4>[% loc('Easting/Northing:') %]</h4>
+ <p>[% problem.local_coords.0 %], [% problem.local_coords.1 %]</p>
+ </div>
+ [% END %]
+ <div>
+ <h4>[% loc('Latitude/Longitude:') %]</h4>
+ <p>[% problem.latitude %], [% problem.longitude %]</p>
+ </div>
+ <div>
+ <h4>[% loc('Category') %]</h4>
+ <p>[% (problem.category_display OR '-') | html %]</p>
+ </div>
+ <div>
+ <h4>[% loc('State') %]</h4>
+ <p>[% prettify_state(problem.state, 1) %]</p>
+ </div>
+ <div>
+ <h4>[% loc('Priority') %]</h4>
+ <p>[% problem.response_priority.name OR '-' %]</p>
+ </div>
+ <div>
+ <h4>[% loc('Traffic management required?') %]</h4>
+ <p>[% problem.get_extra_metadata('traffic_information') %]</p>
+ </div>
+ <div>
+ <h4>[% loc('Extra details') %]</h4>
+ <p>[% problem.get_extra_metadata('detailed_information') | html %]</p>
+ </div>
+ [% SET fields = problem.get_extra_fields; IF fields.size %]
+ [% FOR f IN fields %]
+ <div>
+ <h4>[% f.name %]</h4>
+ <p>[% f.value %]</p>
+ </div>
+ [% END %]
+ [% END %]
+ </div>
+ [% END %]
+
+
+</a>
+[% IF item_action ~%]
+ [% IF page == 'report' ~%]
+ [%# We don't want to output shortlist on report page (in duplicate list) %]
+ [% ELSIF page == 'around' ~%]
+ [%# The around page list is already contained within the new report form %]
+ [% item_action.replace('("shortlist-[^"]*)', '$1-' _ problem.id) %]
+ [% ELSE ~%]
+ <form method="post" action="/my/planned/change">
+ <input type="hidden" name="id" value="[% problem.id %]">
+ <input type="hidden" name="token" value="[% csrf_token %]">
+ [% item_action %]
+ </form>
+ [% END ~%]
+[% END %]
+</li>
diff --git a/templates/web/buckinghamshire/report/_update-form-heading.html b/templates/web/buckinghamshire/report/_update-form-heading.html
new file mode 100644
index 000000000..60b09ce3e
--- /dev/null
+++ b/templates/web/buckinghamshire/report/_update-form-heading.html
@@ -0,0 +1 @@
+<h2[% IF two_column_sidebar %] class="hidden-js"[% END %]>[% loc( 'Provide additional information') %]</h2>
diff --git a/templates/web/buckinghamshire/report/new/_form_labels.html b/templates/web/buckinghamshire/report/new/_form_labels.html
new file mode 100644
index 000000000..1fb1201ce
--- /dev/null
+++ b/templates/web/buckinghamshire/report/new/_form_labels.html
@@ -0,0 +1,5 @@
+[%
+SET form_title = 'Location of the problem';
+SET form_title_placeholder = 'Exact location, including any landmarks';
+SET form_detail_placeholder = 'Dimensions, landmarks, direction of travel etc.';
+%] \ No newline at end of file
diff --git a/templates/web/buckinghamshire/report/new/councils_extra_text.html b/templates/web/buckinghamshire/report/new/councils_extra_text.html
new file mode 100644
index 000000000..16aed5154
--- /dev/null
+++ b/templates/web/buckinghamshire/report/new/councils_extra_text.html
@@ -0,0 +1 @@
+Please do not enter any personal information or private contact details.
diff --git a/templates/web/buckinghamshire/report/new/form_heading.html b/templates/web/buckinghamshire/report/new/form_heading.html
new file mode 100644
index 000000000..0b3246472
--- /dev/null
+++ b/templates/web/buckinghamshire/report/new/form_heading.html
@@ -0,0 +1,8 @@
+<p>
+<strong>IMPORTANT:</strong>
+If you consider this to be dangerous or an emergency, please call us
+on: <strong>01296 382416</strong> (09:00 – 17:30 Mon-Thurs, 09:00 – 17:00 Friday)
+or <strong>01296 486630</strong>
+(out of hours and weekends). Otherwise, by submitting the report online we will
+deal with it in line with our agreed timescales.
+</p>
diff --git a/templates/web/buckinghamshire/report/new/roads_message.html b/templates/web/buckinghamshire/report/new/roads_message.html
new file mode 100644
index 000000000..772f38df4
--- /dev/null
+++ b/templates/web/buckinghamshire/report/new/roads_message.html
@@ -0,0 +1,11 @@
+<div id="js-bucks-responsibility" class="box-warning hidden">
+ <strong>Invalid location</strong>
+ <div id="js-not-bucks-road" class="hidden js-responsibility-message">
+ <p>The selected road is not maintained by Buckinghamshire County Council.</p>
+ <p>Please select another road.</p>
+ </div>
+ <div id="js-not-a-road" class="hidden js-responsibility-message">
+ <p>The location you have selected doesn't appear to be on a road.</p>
+ <p>Please select a road on which to make a report.</p>
+ </div>
+</div>
diff --git a/templates/web/buckinghamshire/report/new/top_message.html b/templates/web/buckinghamshire/report/new/top_message.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/buckinghamshire/report/new/top_message.html
diff --git a/templates/web/buckinghamshire/tokens/confirm_problem.html b/templates/web/buckinghamshire/tokens/confirm_problem.html
new file mode 100644
index 000000000..9b3063b5e
--- /dev/null
+++ b/templates/web/buckinghamshire/tokens/confirm_problem.html
@@ -0,0 +1,44 @@
+[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Confirmation') %]
+
+<div class="confirmation-header">
+
+ <h1><a href="[% c.cobrand.base_url_for_report( report ) %][% report.url %]">[% report.title %]</a></h1>
+
+ [% IF c.cobrand.is_council %]
+ [% IF c.cobrand.owns_problem( report ) %]
+ <h2>Your issue is on its way to the council.</h2>
+ <p>You will receive an email with a reference number for this report soon, please quote it in any enquiries.</p>
+ [% ELSE %]
+ <h2>Thank you for your report.</h2>
+ <p>
+ We don&rsquo;t handle this type of problem, so have passed it on to:
+ </p>
+ <p>
+ <b>[% report.body %]</b>
+ </p>
+ <p>
+ You can follow this problem on <a href="[% c.cobrand.base_url_for_report( report ) %][% report.url %]">FixMyStreet.com</a>.
+ </p>
+ [% END %]
+
+ [% ELSE %]
+ <h2>[% loc('Thank you for reporting this issue!') %]</h2>
+ [% IF report.bodies_str %]
+ <p>[% loc('It’s on its way to the council right now.') %]</p>
+ [% END %]
+
+ [% END %]
+
+[% TRY %][% INCLUDE 'tokens/_extras_confirm.html' %][% CATCH file %][% END %]
+
+</div>
+
+[% INCLUDE
+ next_steps.html,
+ just_interacted = 1,
+ utm_content = 'problem confirmed',
+ share_url = c.cobrand.base_url_for_report(report) _ report.url,
+ twitter_comment = loc('I just reported a problem on @fixmystreet')
+%]
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/fiksgatami/front/footer-marketing.html b/templates/web/fiksgatami/front/footer-marketing.html
index da59fe6e6..c38b87de3 100644
--- a/templates/web/fiksgatami/front/footer-marketing.html
+++ b/templates/web/fiksgatami/front/footer-marketing.html
@@ -4,12 +4,12 @@
<div id="footer-help">
<p>
- Powered by <a class="platform-logo" href="http://fixmystreet.org/">FixMyStreet Platform</a>
+ Powered by <a class="platform-logo" href="https://fixmystreet.org/">FixMyStreet Platform</a>
</p>
<ul>
<li>
<h4>[% loc('Are you a developer?') %]</h4>
- <p>[% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="http://fixmystreet.org">available at fixmystreet.org</a>.') %]</p>
+ <p>[% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="https://fixmystreet.org">available at fixmystreet.org</a>.') %]</p>
</li>
</ul>
</div>
diff --git a/templates/web/fiksgatami/header.html b/templates/web/fiksgatami/header.html
index 7c73f6060..2d0f163e7 100644
--- a/templates/web/fiksgatami/header.html
+++ b/templates/web/fiksgatami/header.html
@@ -1,6 +1,5 @@
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8" lang="[% lang_code %]"><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8" lang="[% lang_code %]"><![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="[% lang_code %]"><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js" lang="[% lang_code %]"><!--<![endif]-->
<head>
diff --git a/templates/web/fixamingata/about/council.html b/templates/web/fixamingata/about/council.html
index 3019f79ff..94564c51f 100755
--- a/templates/web/fixamingata/about/council.html
+++ b/templates/web/fixamingata/about/council.html
@@ -15,113 +15,30 @@
</div>
<h1>Information för kommuner</h1>
-
-<p>
-FixaMinGata är en e-tjänst som drivs av
-<a href="http://sambruk.se/">Föreningen Sambruk</a> och är framtagen i
-samarbete med <a href="http://kivos.se/">KIVOS</a> och
-<a href="http://ffkp.se/">FFKP</a>. Invånare i medverkande kommuner kan
-använda e-tjänsten för att rapportera fel i sin lokala gatumiljö. I och
-med att tjänsten drivs som en molntjänst kan den snabbt driftsättas för
-en ny kommun. Fel som rapporteras skickas via e-post till berörd enhet
-på kommunen. För kommuner som har befintliga verksamhetssystem för
-rapportering och uppföljning finns flera möjligheter att integrera
-systemen med varandra.
-</p>
+<p>FixaMinGata är en e-tjänst som drivs av <a href="http://sambruk.se/">Föreningen Sambruk</a> och är framtagen i samarbete med <a href="http://kivos.se/">KIVOS</a> och <a href="http://ffkp.se/">FFKP</a>. ALLA kan använda e-tjänsten för att rapportera fel till kommuner. Tjänsten är en molntjänst och kan snabbt anpassas för en ny kommun. Fel som rapporteras skickas via e-post till berörd enhet på kommunen. För kommuner som har befintliga verksamhetssystem för rapportering och uppföljning finns flera möjligheter att integrera systemen.</p>
<h2><a name="kommuner"></a>Kommuner</h2>
-<p>
-FixaMinGata stödjer samtliga Svenska kommuner, men hur det ser ut hos
-varje kommun ser lite olika ut. En del kommuner väljer att inte ta emot
-rapporter via FixaMinGata utan hänvisar istället medborgarna till sin
-egen webbsida. I dessa fall ger FixaMinGata en länk till kommunens
-webbsida om en medborgare försöker rapportera ett fel.
-</p>
-<p>
-Andra kommuner har valt att vara med i styrgruppen för FixaMinGata
-vilket ger dem möjlighet att påverka utvecklingen och den framtida
-inriktningen, exempelvis för att bättre kunna integrera FixaMinGata
-i sina egna verksamhetssystem.
-</p>
-<p>
-De kommuner som var med i den ursprungliga
-referensgruppen var Alingsås, Falköping, Tidaholm, Vårgårda, Aneby,
-Eksjö, Gislaved, Gnosjö, Habo, Mullsjö, Nässjö, Sävsjö, Tranås,
-Vaggeryd, Vetlanda och Värnamo.
-</p>
+<p>FixaMinGata stödjer samtliga svenska kommuner. Kommuner som deltar i Förvaltningsrådet för FixaMinGata, ges möjlighet att påverka utveckling och framtida inriktning. Medlemskommuner har även säker och prioriterad tillgång till support, samt att vi är behjälpliga i dialogen med olika leverantör vid integration med verksamhetssystem.</p>
<h2><a name="nykommun"></a>Ny kommun</h2>
-<p>
- Här följer en checklista som kommuner kan använda sig av när de tittar på
- hur FixaMinGata kan användas i kommunen. Eventuella frågor eller hjälp
- i processen kan fås från FixaMinGatas <a href="#kontakt">kontaktpersoner</a>.
-</p>
-<p>
- <ul>
- <li>FixaMinGata använder
- <a href="http://www.openstreetmap.org/">OpenStreetMap</a> för sin
- kartinformation. Verifiera så att de kartor som finns för kommunen
- är relevanta. Om det finns fel i kartinformationen går detta att
- korrigera, av kommunen själva eller i samarbete med invånarna.</li>
- <li>FixaMinGata låter medborgarna välja position genom att ange postnummer.
- Dessvärre finns det ingen publik lista över postnummer och dess
- geografiska koordinater som är tillgänglig att använda för vem som helst
- och en del koordinater kan därför vara fel. Verifiera genom att välja
- ett par postnummer i kommunen och mata in dem i FixaMinGata för att
- se hur det ser ut i er kommun. Om något postnummer inte centrerar på
- rätt geografisk koordinat går detta att ändra. Kontakta FixaMinGatas
- <a href="#kontakt">kontaktpersoner</a> för mer information om detta.</li>
- <li>För kommuner som har ett eget verksamhetssystem finns möjlighet att
- integrera FixaMinGata med detta. Kontakta leverantören av
- verksamhetssystemet för att fråga om integration med FixaMinGata.
- Det finns flera sätt på vilket detta kan ske och du kan få mer
- information från FixaMinGatas <a href="#kontakt">kontaktpersoner</a>.
- </li>
- <li>Titta på den lista med <a href="#kategorier">kategorier</a> som finns
- i FixaMinGata och fundera över om några förändringar behövs i den
- listan. Det finns möjigheter att förändra den listan per kommun.</li>
- <li>Om felrapporter från invånarna ska skickas via epost till kommunen,
- bestäm vilka adresser som information ska skickas till och om det är
- samma adress för samtliga kategorier eller om olika kategorier ska
- skickas till olika adresser.</li>
- <li>Prata med och informera de anställda som kommer att ta emot och arbeta
- med felrapporter. Säkerställ att alla är på det klara med hur kommunen
- arbetar med inkomna felrapporer och vikten av att fel också rapporteras
- som åtgärdat när arbetet är klart.</li>
- <li>Bjud in de anställda att vara med i den första testen av systemet så att
- de som vill kan testa att rapportera fel och följa upp ärenden. Det kan
- ske under ett par veckor innan systemet driftsätts helt för att ge
- personalen möjlighet att bli komfortabel med systemet först.</li>
- <li>Prata med kommunens informationsansvarige eller motsvarande för att
- länka till FixaMinGata från kommunens hemsida. Logotyper för FixaMinGata
- kan hämtas från <a
- href="http://www.sambruk.se/projektnatverk/fixamingata/projektdokument.4.7b34e07a139d0d50e8b23cb.html?folder=19.7b34e07a139d0d50e8b23b1&sv.url=12.7b34e07a139d0d50e8b23d1">här</a>.</li>
- <li>Följ upp löpande under den första tiden med de personer som från
- kommunen tar emot felrapporter. Du kan också ta hjälp av den
- <a href="/reports">statistik</a> som publiceras i FixaMinGata för
- att se vilka problem som rapporteras samt om de markeras som åtgärdade.
- </li>
- </ul>
-</p>
-
+<p>Här följer en checklista som kommuner kan använda sig av när de tittar på hur FixaMinGata kan användas i kommunen. Eventuella frågor eller hjälp i processen ställs till FixaMinGatas <a href="#kontakt">kontaktpersoner</a>.</p>
+<ul>
+ <li>FixaMinGata använder <a href="http://www.openstreetmap.org/">OpenStreetMap</a> för sin kartinformation. Verifiera så att de kartor som finns för kommunen är relevanta. Om det finns fel i kartinformationen går det att korrigera, av kommunen själv eller i samarbete med invånarna.</li>
+ <li>FixaMinGata låter medborgare välja position genom att ange postnummer. Tyvärr finns idag det ingen publik lista över postnummer och dess geografiska koordinater att använda, helst och vilket innebär att en del koordinater kan därför vara fel. Verifiera genom att välja ett par postnummer i kommunen och mata in dem i FixaMinGata för att se hur det ser ut i er kommun. Om något postnummer inte centrerar på rätt geografisk koordinat går detta att ändra. För mer information kontakta FixaMinGatas <a href="#kontakt">kontaktpersoner</a>.</li>
+ <li>För kommuner som har ett eget verksamhetssystem finns möjlighet att integrera med FixaMinGata. Kontakta leverantören av verksamhetssystemet för att fråga om integration med FixaMinGata. Det finns flera alternativa sätt. För mer information kontakta FixaMinGatas <a href="#kontakt">kontaktpersoner</a>.</li>
+ <li>Varje kommun avgör vilka <a href="#kategorier">kategorier</a> som ska finnas för FixaMinGata.</li>
+ <li>Om felrapporter från invånarna ska skickas via epost till kommunen, meddela om det är samma adress för samtliga kategorier eller om olika kategorier ska skickas till olika adresser.</li>
+ <li>Prata med och informera de anställda som kommer att ta emot och arbeta med felrapporter. Säkerställ att alla är medvetna om hur kommunen arbetar med inkomna felrapporter och vikten av att inrapporterade fel också rapporteras som åtgärdade.</li>
+ <li>Bjud in de anställda att vara med i den första testen av systemet så att de som vill kan testa att rapportera fel och följa upp ärenden. Det kan ske under ett par veckor innan systemet driftsätts, för att ge personalen möjlighet att bli komfortabel med systemet.</li>
+ <li>Prata med kommunens informationsansvarige eller motsvarande för att länka till FixaMinGata från kommunens hemsida. Logotyper för FixaMinGata kan hämtas <a href="http://www.sambruk.se/projektnatverk/fixamingata/projektdokument.4.7b34e07a139d0d50e8b23cb.html?folder=19.7b34e07a139d0d50e8b23b1&sv.url=12.7b34e07a139d0d50e8b23d1">här</a>.</li>
+ <li>Följ upp löpande med de personer som tar emot felrapporter. Du kan också ta hjälp av den <a href="/reports">statistik</a> som publiceras i FixaMinGata för att se vilka problem som rapporteras, samt om de markeras som åtgärdade.</li>
+</ul>
<h2><a name="process"></a>Rapporteringprocess</h2>
-<p>
-
-FixaMinGata erbjuder ett enkelt sätt för en invånare att rapportera ett fel
-vilket sedan kommuniceras till kommunen. En visuell beskrivning av processen
-finns tillgänglig på <a
-href="http://www.sambruk.se/projektnatverk/fixamingata/projektdokument.4.7b34e07a139d0d50e8b23cb.html?folder=19.7b34e07a139d0d50e8b23b1&sv.url=12.7b34e07a139d0d50e8b23d1">
-Sambruks projeksida för FixaMinGata</a>.
-
-Nedanstående flöde beskriver hur FixaMinGata fungerar utifrån invånarens
-perspektiv.
-
-</p>
+<p>FixaMinGata erbjuder invånare att enkelt rapportera fel direkt till kommunen. Nedanstående flöde beskriver hur FixaMinGata fungerar utifrån invånarens perspektiv.</p>
<p>
<ol>
- <li>En invånare söker på postnummer eller gatuadress och får upp en karta
- över närområdet.</li>
+ <li>En invånare söker på postnummer eller gatuadress och får upp en karta över närområdet.</li>
<li>Invånaren kan se befintliga felrapporter inom området.</li>
<li>Om invånaren klickar på en position på kartan ges möjlighet att rapportera ett nytt fel.</li>
<li>Invånaren väljer en av de kategorier som finns, skriver in information om felet och bifogar eventuellt ett foto.</li>
@@ -134,79 +51,42 @@ perspektiv.
</p>
<h2><a name="kategorier"></a>Kategorier</h2>
-<p>
-Följande kategorier finns för alla kommuner i FixaMinGata.
-En del kommuner väljer andra kategorier beroende på vad som passar dem
-bäst.
-</p>
-<p>
- <ul>
- <li>Buss- och tågstopp
- <li>Cykelställ
- <li>Cykelväg
- <li>Dumpat skräp
- <li>Gatlyse
- <li>Gator och vägar
- <li>Grafitti/taggning
- <li>Hål i väg
- <li>Igensatt brunn
- <li>Nedskräpning
- <li>Offentlig toalett
- <li>Oljespill
- <li>Parkering
- <li>Park/landskap
- <li>Snöplogning
- <li>Trafiklyse
- <li>Trafikskylt
- <li>Träd
- <li>Trottoar/gångbana
- <li>Vattenförsörjning
- <li>Vägstädning
- <li>Vägnamnsskylt
- <li>Övergiven bil
- <li>Övrigt
- </ul>
+<p>Följande kategorier finns för alla kommuner i FixaMinGata. Kommunen väljer vilka kategorier som är relevanta.</p>
+<ul>
+ <li>Avfall och återvinning</li>
+ <li>Cykelställ</li>
+ <li>Gång- och cykelbana</li>
+ <li>Gatubelysning</li>
+ <li>Hållplats</li>
+ <li>Igensatt brunn</li>
+ <li>Klotter</li>
+ <li>Lekplatser</li>
+ <li>Nedskräpning</li>
+ <li>Offentlig toalett</li>
+ <li>Övrigt</li>
+ <li>Park</li>
+ <li>Parkering</li>
+ <li>Träd och buskage</li>
+ <li>Trafiksignaler</li>
+ <li>Vägar (Övriga)</li>
+ <li>Vägmärken och skyltar</li>
+ <li>Vatten och avlopp</li>
+ <li>Vinterväghållning</li>
+</ul>
+<p>Vidare tillkommer en kategori, Vägar (Riksvägar/Trafikverket), vars rapporter skickas till Trafikverket.</p>
<h2><a name="integration"></a>Integration med verksamhetssystem</h2>
-<p>
- För <strong>kommuner som har ett eget verksamhetssystem</strong>
- finns det flera olika sätt att integrera detta med FixaMinGata.
- Det enklaste, vilket stödjs av i princip samtliga verksamhetssystem, är
- att FixaMinGata skickar epost till verksamhetssystemet när någon
- lämnar en rapport vilket sedan görs till ett ärende i systemet. När
- rapporten är åtgärdad rapporterar kommunen detta i sitt verksamhetssystem
- <strong>samt</strong> i FixaMinGata.
-</p>
-<p>
- Det finns också möjlighet att på olika sätt integrera systemen så att en
- rapport som avslutas i verksamhetssystemet också markeras som åtgärdad
- i FixaMinGata. Beroende på verksamhetssystem kan en viss kostnad utgå
- för detta från leverantören. Ta kontakt med din leverantör av
- verksamhetssystem för att höra dig för.
-</p>
-<p>
- Kontakta gärna oss för teknisk information kring integration av FixaMinGata.
-</p>
+<p>För <strong>kommuner med ett eget verksamhetssystem</strong> finns det olika sätt att integrera med FixaMinGata.</p>
+<p>FixaMinGata kan integreras genom att kommunens verksamhetssystem tillhandahåller en webbtjänst (Webbtjänstintegration), genom att kommunens verksamhetssystem agerar webbklient (Webbklientsintegration) eller via e-post från FixaMinGata (E-postintegration).</p>
+<p>Det effektivaste för kommunen är att själva agera webbtjänst ("Alternativ 1: Webbtjänstintegration") vid integration med FixaMinGata, vilket är det sätt som tillåter utbyte av så kallade uppdateringar (kommentarer och statusändringar mellan de två systemen).</p>
+<p>Beroende på verksamhetssystem kan en viss kostnad utgå för detta från leverantören. Ta kontakt med din leverantör av verksamhetssystem för att höra dig för.</p>
+<p>Kontakta oss för teknisk information kring integration av FixaMinGata.</p>
<h2><a name="kostnader"></a>Kostnader för medverkan</h2>
-<p>
- Kommuner som är med i styrgruppen för FixaMinGata betalar en kostnad
- per invånare, vilket täcker kostnaden för drift och utveckling. För mer
- information
- om kostnader och deltagande, kontakta våra <a href="#kontakt">kontaktpersoner</a>.
+<p>Kommuner som deltar i Förvaltningsrådet för FixaMinGata betalar en kostnad per invånare, vilket täcker kostnaden för drift och utveckling. För mer information om kostnader och deltagande, kontakta våra <a href="#kontakt">kontaktpersoner</a>.</p>
<h2><a name="kontakt"></a>Kontaktpersoner</h2>
-<p>
- Du kan alltid kontakta oss genom <a
- href="mailto:info@fixamingata.se">info@fixamingata.se</a>. Vi ser då
- till att din fråga behandlas och kommer till rätt person.
-</p>
-<p>
- För frågor kring medverkan, villkor och kostnader, kontakta Claes-Olof Olsson, Sambruk via e-postadressen <a href="mailto:claes-olof.olsson@sambruk.se">claes-olof.olsson@sambruk.se</a> eller ledningen för styrgruppen på <a href="mailto:info@fixamingata.se">info@fixamingata.se</a>.
-</p>
-<p>
- För tekniska frågor om plattformen, integration med verksamhetssystem eller
- uppdaterade kontakt uppgifter, använda vårt <a href="/contact">kontaktformulär</a>.
-</p>
+<p>Du kan alltid kontakta oss genom <a href="mailto:info@fixamingata.se">info@fixamingata.se</a>. Vi ser då till att din fråga behandlas och kommer till rätt person.</p>
+<p>För tekniska frågor om plattformen, integration med verksamhetssystem eller uppdaterade kontaktuppgifter, använd vårt <a href="/contact">kontaktformulär</a>.</p>
[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/fixamingata/about/faq-sv.html b/templates/web/fixamingata/about/faq-sv.html
index 05ffdaddc..e120fcecf 100755
--- a/templates/web/fixamingata/about/faq-sv.html
+++ b/templates/web/fixamingata/about/faq-sv.html
@@ -13,108 +13,68 @@
</div>
<h1><a name="faq"></a>Vanliga frågor</h1>
- <dl>
- <dt>Vad är FixaMinGata?</dt>
- <dd>FixaMinGata är en e-tjänst som hjälper människor se, diskutera och
-till kommunen rapportera problem i deras närmiljö på ett enkelt sätt genom att
-markera problemen på en karta. Tjänsten bygger på en förlaga från Storbritannien
-där tjänsten lanserades i Februari 2007. I Norge lanserades den 2011 och i
-Sverige 2013.
-</dd>
- <dt>Hur kommer jag i kontakt med FixaMinGata?</dt>
- <dd>Använd vårt <a href="/contact">kontaktformulär</a>.</dd>
- <dt>Vilken typ av problem ska jag rapportera i FixaMinGata?</dt>
- <dd>FixaMinGata är främst anpassad för att rapportera fysiska
-problem i din närmiljö, exempelvis sådant som är <strong>trasigt eller
-smutsigt, sådant som behöver underhållas, lagas, städas eller rensas</strong>,
-till exempel:
-
- <ul><li>Övergivna bilar och cyklar
- <li>Graffiti
- <li>Nedskräpning
- <li>Gatustädning, exempelvis trasigt glas på en cykelbana
- <li>Trasiga gatulysen
- <li>Hål i vägar och gångbanor
- </ul>
+<dl>
+ <dt>Vad är FixaMinGata?</dt>
+ <dd>FixaMinGata är en e-tjänst som hjälper människor att se, diskutera och till kommunen rapportera problem i deras närmiljö på ett enkelt sätt genom att markera problemen på en karta. Tjänsten bygger på en förlaga från Storbritannien där tjänsten lanserades i februari 2007. I Norge lanserades den 2011 och i Sverige 2013.</dd>
+ <dt>Hur kommer jag i kontakt med FixaMinGata?</dt>
+ <dd>Använd vårt <a href="/contact">kontaktformulär</a>.</dd>
+ <dt>Vilken typ av problem ska jag rapportera i FixaMinGata?</dt>
+ <dd>
+ FixaMinGata är främst anpassad för att rapportera fysiska problem i din närmiljö, exempelvis sådant som är <strong>trasigt eller smutsigt, sådant som behöver underhållas, lagas, städas eller rensas</strong>, till exempel:
+ <ul>
+ <li>Övergivna bilar och cyklar</li>
+ <li>Graffiti</li>
+ <li>Nedskräpning</li>
+ <li>Gatustädning, exempelvis trasigt glas på en cykelbana</li>
+ <li>Trasiga gatulysen</li>
+ <li>Hål i vägar och gångbanor</li>
+ </ul>
</dd>
<dt>Vad är inte FixaMinGata till för?</dt>
- <dd>FixaMinGata är inte lämpligt för andra typer av problem än de som
- anges ovan. Du måste kontakta din kommun eller fastighetsägare direkt för problem i stil
- med:
-
- <ul>
- <li>Brådskande och akuta problem
- <li>Oljud i din närmiljö
- <li>Brand och rök
- <li>Förslag på nya vägar, farthinder, etc.
- <li>Klaga på dina grannar
- <li>Klaga på din kommun
- <li>Droger, djurplågeri, stöld, eller andra kriminella aktiviteter.
- </ul>
- </dd>
-
- <dt>Hur använder jag e-tjänsten?</dt>
- <dd>Efter att du angivit postnummer eller adress ser du en karta
-över närområdet. Du kan se de problem som redan har rapporterats, eller
-rapportera nya genom att klicka på kartan där problemet finns.
-</dd>
- <dt>Hur löses problem?</dt>
- <dd>Problem som rapporteras skickas till berörd kommun via epost
-eller direkt till deras datorsystem. Kommunen hanterar sedan problemet på
-det sättet de vanligen arbetar med problem, exempelvis genom att delegera
-det till rätt enhet inom kommunen som får i uppdrag att lösa problemet.
-</dd>
- <dt>Är det gratis?</dt>
- <dd>Den här e-tjänsten är gratis att använda. Tjänsten tillhandahålls
-av <a href="http://sambruk.se/">Föreningen Sambruk</a>, en förening för
-kommunal samverkan kring e-tjänster. Totalt ingår runt 100 kommuner och
-landsting i Sambruk.</dd>
-
- <dt>Kan jag använda FixaMinGata på min mobil?</dt>
<dd>
- <p>FixaMinGata ska fungera direkt på din mobiltelefon och anpassar
-storleken på skärmen automatiskt.</p>
+ FixaMinGata är inte lämpligt för andra typer av problem än de som anges ovan. Du måste kontakta din kommun eller fastighetsägare direkt för problem i stil med:
+ <ul>
+ <li>Brådskande och akuta problem</li>
+ <li>Oljud i din närmiljö</li>
+ <li>Brand och rök</li>
+ <li>Förslag på nya vägar, farthinder, etc.</li>
+ <li>Klaga på dina grannar</li>
+ <li>Klaga på din kommun</li>
+ <li>Droger, djurplågeri, stöld, eller andra kriminella aktiviteter.</li>
+ </ul>
</dd>
- </dl>
-
- <h2><a name="practical"></a>Praktiska frågor</h2>
- <dl>
- <dt>Jag arbetar på en kommun och är intresserad av att veta var ni skickar rapporter.</dt>
- <dd>Du får gärna <a href="/contact">kontakta oss</a> så kan vi ge
-information om var rapporter går idag. Du kan också kontakta oss för att
-uppdatera de adresser vi använder.</dd>
-
- <dt>Jag arbetar på en kommun och vill få in rapporter från FixaMinGata i vårt verksamhetssystem.</dt>
- <dd>FixaMinGata kan skicka rapporter till ert verksamhetssystem
-via epost eller via ett automatiskt gränssnitt som kallas Open 311. De
-flesta verksamhetssystem kan anpassas till detta för en mindre kostnad.
-Du får gärna <a href="/contact">kontakta oss</a> så kan vi ge mer information
-och hjälpa dig i kommunikationen med berörda parter.</dd>
- </dl>
-
- <h2><a name="organisation"></a>Organisation</h2>
- <dl>
- <dt>Vem tillhandahåller FixaMinGata?</dt>
-
- <dd>Den här e-tjänsten tillhandahålls
-av <a href="http://sambruk.se/">Föreningen Sambruk</a>, en förening för
-kommunal samverkan kring e-tjänster. Totalt ingår runt 100 kommuner och
-landsting i Sambruk. Tjänsten togs fram i samarbete med <a href="http://kivos.se/">KIVOS</a> och <a href="http://ffkp.se/">Föreningen fri kultur och programvara</a>.</dd>
-
- <dt>Finns källkoden tillgänglig?</dt>
- <dd>
-Programvaran bakom den här tjänsten är öppen programvara och tillgänglig
-under Affero GPL (AGPL). Du kan <a href="http://github.com/mysociety/fixmystreet">ladda ner</a> källkoden och hjälpa oss utveckla den. Du är också välkommen att använda den i dina egna projekt!
-</dd>
- </dl>
- <h2><a name="pul"></a>Personuppgiftsombud</h2>
- <dl>
- <dt>Vem är personuppgiftsombud för FixaMinGata?</dt>
-
- <dd>Personuppgiftsombud är Claes-Olof Olsson som du kan kontakta via vårt <a href="/contact">kontaktformulär.</a></dd>
- </dl>
-
+ <dt>Hur använder jag e-tjänsten?</dt>
+ <dd>Efter att du angivit postnummer eller adress ser du en karta över närområdet. Där får du en överblick över problem som redan har rapporterats, och nya rapporteras genom att klicka på kartan där problemet finns.</dd>
+ <dt>Hur löses problem?</dt>
+ <dd>Problem som rapporteras skickas till berörd kommun via e-post eller direkt till deras datorsystem. Kommunen hanterar sedan problemet enligt en intern process, exempelvis genom att delegera det till rätt enhet inom kommunen som får i uppdrag att lösa problemet.</dd>
+ <dt>Är det gratis?</dt>
+ <dd>Den här e-tjänsten används gratis för att rapportera problem. Tjänsten tillhandahålls av <a href="http://sambruk.se/">Föreningen Sambruk</a>, en förening för kommunal samverkan kring e-tjänster. Totalt ingår runt 100 kommuner och landsting i Sambruk.</dd>
+ <dt>Kan jag använda FixaMinGata på min mobil?</dt>
+ <dd>FixaMinGata fungerar både i din mobil (storleken på skärmen anpassas automatiskt) och dator. Alternativt laddas appen FixaMinGata ner på Google Play eller App Store.</dd>
+</dl>
+
+<h2><a name="practical"></a>Praktiska frågor</h2>
+<dl>
+ <dt>Jag arbetar på en kommun och är intresserad av att veta var ni skickar rapporter.</dt>
+ <dd>Du får gärna <a href="/contact">kontakta oss</a> så kan vi ge information om var rapporter skickas idag.</dd>
+ <dt>Jag arbetar på en kommun och vill få in rapporter från FixaMinGata i vårt verksamhetssystem.</dt>
+ <dd>FixaMinGata kan skicka rapporter till ert verksamhetssystem via epost eller via ett automatiskt gränssnitt som kallas Open 311. De flesta verksamhetssystem kan anpassas till detta för en mindre kostnad. Du får gärna <a href="/contact">kontakta oss</a> så kan vi ge mer information och hjälpa dig i kommunikationen med berörda parter.</dd>
+</dl>
+
+<h2><a name="organisation"></a>Organisation</h2>
+<dl>
+ <dt>Vem tillhandahåller FixaMinGata?</dt>
+ <dd>Den här e-tjänsten tillhandahålls av <a href="http://sambruk.se/">Föreningen Sambruk</a>, en förening för kommunal samverkan kring e-tjänster. Totalt ingår runt 100 kommuner och landsting i Sambruk. Tjänsten togs fram i samarbete med <a href="http://kivos.se/">KIVOS</a> och <a href="http://ffkp.se/">Föreningen fri kultur och programvara</a>.</dd>
+ <dt>Finns källkoden tillgänglig?</dt>
+ <dd>Programvaran bakom den här tjänsten är öppen programvara och tillgänglig under Affero GPL (AGPL). Du kan <a href="http://github.com/mysociety/fixmystreet">ladda ner</a> källkoden och hjälpa oss utveckla den. Du är också välkommen att använda den i dina egna projekt!</dd>
+</dl>
+
+<h2><a name="pul"></a>Personuppgiftsombud</h2>
+<dl>
+ <dt>Vem är personuppgiftsombud för FixaMinGata?</dt>
+ <dd>Personuppgiftsombud är Claes-Olof Olsson som du kan kontakta via vårt <a href="/contact">kontaktformulär.</a></dd>
+</dl>
[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/fixamingata/about/privacy.html b/templates/web/fixamingata/about/privacy.html
index 539386be6..88b0b90cd 100755
--- a/templates/web/fixamingata/about/privacy.html
+++ b/templates/web/fixamingata/about/privacy.html
@@ -13,70 +13,58 @@
</div>
<h1>Offentlighet, kakor och tredjepartstjänster</h1>
-
<p><strong>Vår användning av din information och vad du behöver veta.</strong></p>
-
-<p>Sammanfattning: Vi bryr oss om våra användares privatliv. Du kan läsa
-mer detaljer om det här nedan. Vi gör vårt bästa för säkra den privata
-information som vi har i vår databas. Precis som många andra webbplatser
-använder vi ibland kakor för att hjälpa oss göra
-tjänsten bättre. De här verktygen är väldigt vanliga och används av många
-andra tjänster, men det finns nackdelar med dem och vi är måna om att du
-förstår hur din data används.</p>
+<p>Offentlighetsprincipen är en viktig del i det demokratiska samhället. Genom tryckfrihetsförordningen och offentlighetslagen har du rätt att ta del av allmänna offentliga handlingar hos statliga och kommunala myndigheter. Det kan ge dig insyn i hur förtroendevalda (politiker) och tjänstemän handlägger ärenden, vilka handlingar som kommit in till kommunens olika förvaltningar och vilka som skickats ut.</p>
+<p>Fr.o.m. 2018-05-25 tillämpas ett nytt regelverk inom EU för behandling av personuppgifter &ndash; i Sverige kallad Dataskyddsfördordningen.</p>
+<p><strong>Laglig grund för behandling av personuppgifter</strong><br>FixaMinGata.se behandlar all data, inklusive personuppgifter, baserat på Dataskyddsförordningens Artikel 6.1f - Behandlingen är nödvändig för ändamål som rör den personuppgiftsansvariges eller en tredje parts berättigade intressen.</p>
+<p>&nbsp;</p>
+<p><a href="http://www.datainspektionen.se/dataskyddsreformen/dataskyddsforordningen/">Dataskyddsförordning</a>en</p>
+<p>Förordningen innehåller regler om hur personuppgifter får behandlas. Förordningen gäller i alla EU:s medlemsländer och ersätter nationella regler, som till exempel Personuppgiftslagen i Sverige.</p>
+<p>Dataskyddsförordningens syfte är dels att skydda enskildas grundläggande rättigheter och friheter, särskilt deras rätt till skydd av personuppgifter och dels att skapa en enhetlig och likvärdig nivå för skyddet av personuppgifter inom EU, så att det fria flödet av uppgifter inom unionen inte hindras.</p>
+<p>En tillsynsmyndighet i varje EU-land ska övervaka att de som behandlar personuppgifter följer dataskyddsförordningen. Tillsynsmyndigheten ska vara fullständigt oberoende i utförandet av sina uppgifter och utövandet av sina befogenheter. I Sverige föreslås <u>Datainspektionen</u> få det uppdraget.</p>
+<p>FixaMinGata använder s k kakor för att hjälpa oss att göra tjänsten bättre. Nedan beskrivs hur de data du rapporterar in via FixaMinGata &ndash; inklusive eventuella uppgifter om dig själv &ndash; används.</p>
<h2>Offentlighet och personuppgifter</h2>
- <dl>
- <dt>Hur hanteras mina personuppgifter?</dt>
- <dd>Dina personuppgifter hanteras med största försiktighet. Din
-epostadress och namn lagras i vår databas. Du har rätt att begära att få
-ta del av de uppgifter som finns registrerade om dig genom att kontakta vårt
-personuppgiftsombud.</dd>
-
- <dt>Hur hanteras min information hos FixaMinGata?</dt>
- <dd>Vi kommer att visa en rapports ärende och information publikt. Vi kommer dock inte att visa din e-postadress eller ditt namn, om du inte ger oss tillsånt att visa ditt namn.</dd>
-
- <dt>Hur hanteras min information hos kommunen?</dt>
- <dd>All information du anger kring ett problem kommer att skickas till berörd kommun. Alla handlingar som inkommer till en kommun betraktas som offentliga och därmed kommer också alla rapporter från FixaMinGata att vara offentliga via den berörda kommunen.</dd>
- </dl>
+<p>För att Du som rapportör ska kunna rapportera ärenden behandlas och lagras personuppgifter i samband med skapande av konto. Inrapporterade ärenden kommer avidentifieras tre månader efter den senaste aktiviteten i ärendet. Det innebär att eventuella personuppgifter i ärendet kommer att raderas, medan uppgifterna om ärendet kan vara av allmänt intresse och kommer att finnas kvar som underlag för forskning, statistik o dyl. Konton som inte använts på 12 månader kommer att raderas och när Du återigen ska rapportera behöver ett nytt konto skapas.</p>
+<dl>
+ <dt>Hur behandlas mina personuppgifter?</dt>
+ <dd>Din e-postadress och namn lagras i vår databas. Du har rätt att begära att få ta del av de uppgifter som finns registrerade om dig, begära rättning av uppgifter eller att uppgifter ska raderas genom att kontakta vårt personuppgiftsombud.<p>Konton som inte använts på 12 månader kommer att raderas.</p></dd>
+ <dt>Hur behandlas min information hos FixaMinGata?</dt>
+ <dd>Vi kommer att visa en rapports ärende och information publikt, dock inte visa din e-postadress eller ditt namn, om du inte samtycker till detta. Lösta ärenden kommer att avidentifieras tre månader efter den senaste aktiviteten i ärendet (se ovan).</dd>
+ <dt>Hur behandlas min information hos kommunen?</dt>
+ <dd>All information som du anger kring ett problem kommer att skickas till berörd kommun eller den part som behandlar en kommuns ärenden. Alla handlingar som inkommer till en kommun betraktas som offentliga och därmed kommer också alla rapporter från FixaMinGata att vara offentliga via den berörda kommunen.</dd>
+</dl>
<h2>Sekretess</h2>
-
- <dl>
- <dt>Vem ser min epostadress?</dt>
- <dd>Om du rapporterar ett problem kommer vi att skicka din
-information och information om problemet till den kommun som är ansvarig
-för det område där du lokaliserat problemet. Förutom kommunen, som
-givetvis får se din epostadress, kommer personer som är ansvariga för
-tjänsten FixaMinGata att kunna se din epostadress. Ingen kommer att
-använda din epostadress för något annat än för att kunna administrera
-FixaMinGata. Vi kommer inte ge ut eller sälja din epostadress till någon
-annan om vi inte blir tvingade till det av domstol. Ditt namn, som du
-anger det, kommer inte att publiceras om du inte vill att vi publicerar
-det. Observera dock att om du skriver ditt namn någon annan stans,
-exempelvis i informationen om en rapport, kommer det att bli publik
-synligt.</dd>
-
- <dt>Kommer ni att skicka spam?</dt>
- <dd>Aldrig. Vi kommer att skicka brev till dig om någon lämnar
-en uppdatering på ett problem som du rapporterat, och skicka dig ett
-frågeformulär fyra veckor efter din rapportering där vi frågar om
-uppdatering. Vi kommer endast att skicka brev i relation till ditt problem.</dd>
-
- </dl>
+<dl>
+ <dt>Vem ser min e-postadress?</dt>
+ <dd>Om du rapporterar ett problem kommer vi att skicka din information och upplysning om problemet till den kommun, eller den part som behandlar en kommuns ärende, som är ansvarig för det område där du lokaliserat problemet. Förutom kommun/partner, som ser din e-postadress, kommer personer som är ansvariga för tjänsten FixaMinGata att kunna se din e-postadress.<p>Din e-postadress kommer <strong><em>bara</em></strong> användas för att kunna administrera FixaMinGata. Vi kommer inte att ge ut eller sälja din e-postadress till någon annan om vi inte blir tvingade till det av domstol. Ditt namn, som du anger det, kommer inte att publiceras om du inte ger samtycke. Observera dock att om du skriver ditt namn någon annanstans, exempelvis i rapportens information, kommer det att vara synligt.</p></dd>
+ <dt>Kommer ni att skicka spam?</dt>
+ <dd>Aldrig. Vi kommer att skicka ett e-postmeddelande till dig om någon lämnar en uppdatering på ett problem som du rapporterat, och fyra veckor efter din rapportering skickas ett frågeformulär. Vi kommer endast att skicka e-postmeddelande som relaterar till ditt problem.</dd>
+ <dt>Borttag av information, bilder e dyl.</dt>
+ <dd>Om du laddar upp bilder och annan information kring ett problem, bör du vara försiktig så att inte personer, bilar eller andra uppgifter som kan identifiera en annan person följer med.<p>Begäran om radering av personuppgift sker genom att kontakta vårt personuppgiftsombud.</p></dd>
+</dl>
<h2>Kakor</h2>
-
-<p>För att göra våra tjänster lättare och mer användbara skickar vi
-ibland små datafiler till din dator eller mobiltelefon. Dessa kallas för
-kakor och de flesta webbplatser använder dem. Vi använder den här
-informationen för att, till exempel, komma ihåg när du har loggat in
-så att du slipper göra det på varje sida, och för att mäta hur
-tjänsten används så att vi kan förbättra den. Nedan ger vi en lista med
-de kakor som den här tjänsten använder.
-
-<table cellpadding=5>
-<tr align="left"><th scope="col">Namn</th><th scope="col">Innehåll</th><th scope="col">Giltighet</th></tr>
-<tr><td>fixmystreet_app_session</td><td nowrap>A slumpvis sträng</td><td>Raderas när webbläsaren stängs, eller efter fyra veckor om &ldquo;Håll mig inloggad&rdquo; är valt</td></tr>
+<p>S k kakor används för att ge en användare tillgång till olika funktioner. För att göra tjänsten lättare och mer användbara skickas små datafiler till din dator eller mobiltelefon. Dessa kallas för kakor och de flesta webbplatser använder dem. Informationen används för att, till exempel, komma ihåg tidigare inloggning, och för att mäta hur tjänsten används som underlag för förbättringar.</p>
+<p><a href="http://www.pts.se/sv/Bransch/Regler/Lagar/Lag-om-elektronisk-kommunikation/Cookies-kakor/">Läs mer om kakor och hur du kan hantera dem på Post- och telestyrelsens webbplats.</a></p>
+<p>Nedan visas en lista med kakor som tjänsten använder.</p>
+<table class="nicetable">
+ <tr>
+ <th scope="col">Namn</th>
+ <th scope="col">Innehåll</th>
+ <th scope="col">Giltighet</th>
+ </tr>
+ <tr>
+ <td>fixmystreet_app_session</td>
+ <td nowrap>A slumpvis sträng</td>
+ <td>Raderas när webbläsaren stängs, eller efter fyra veckor om &ldquo;Håll mig inloggad&rdquo; är valt</td>
+ </tr>
</table>
+<dl>
+ <dt>Vad är <em>INTE</em> FixaMinGata till för?</dt>
+ <dd>FixaMinGata är inte lämpligt för andra typer av problem än de som anges ovan. Du måste kontakta din kommun eller fastighetsägare direkt för problem i stil med:<ul><li>Brådskande och akuta problem</li><li>Oljud i din närmiljö</li><li>Brand och rök</li><li>Förslag på nya vägar, farthinder, etc.</li><li>Klaga på dina grannar</li><li>Klaga på din kommun</li><li>Droger, djurplågeri, stöld, eller andra kriminella aktiviteter.</li><li>Information kring brott/överträdelser eller misstanke om detsamma</li></ul></dd>
+</dl>
+
[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/fixamingata/front/footer-marketing.html b/templates/web/fixamingata/front/footer-marketing.html
index bc82aa5f1..587857f09 100644
--- a/templates/web/fixamingata/front/footer-marketing.html
+++ b/templates/web/fixamingata/front/footer-marketing.html
@@ -14,8 +14,8 @@
<p>Vill du veta mer om det juridiska? Läs vår information <a href="/privacy">om sekretess och kakor</a></p>
</li>
<li>
- <h4>[% loc('Are you a developer?') %]</h4>
- <p>[% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="http://fixmystreet.org">available at fixmystreet.org</a>.') %]</p>
+ <h4>Är du en utvecklare?</h4>
+ <p>[% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="https://fixmystreet.org">available at fixmystreet.org</a>.') %]</p>
</li>
<li>
<h4>Är du anställd i en kommun?</h4>
diff --git a/templates/web/fixamingata/front/recent.html b/templates/web/fixamingata/front/recent.html
index f3126c6c3..4cff9eba9 100644
--- a/templates/web/fixamingata/front/recent.html
+++ b/templates/web/fixamingata/front/recent.html
@@ -3,17 +3,7 @@
%]
<div id="front-recently">
- <div id="fb-root"></div>
- <script>(function(d, s, id) {
- var js, fjs = d.getElementsByTagName(s)[0];
- if (d.getElementById(id)) return;
- js = d.createElement(s); js.id = id;
- js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";
- fjs.parentNode.insertBefore(js, fjs);
- }(document, 'script', 'facebook-jssdk'));</script>
- <link rel="canonical" href="https://plus.google.com/105025269316032228481" />
- <div style="height: 50px; position: relative;"><div class="fb-like" data-href="https://www.facebook.com/fixamingata" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true" style="float: left;"></div>&nbsp;&nbsp;&nbsp;<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script><div style="float: left; padding-left: 20px; padding-top: 2px;"><g:plusone></g:plusone></div></div>
- <div style="padding-bottom: 14px;"><a href="https://play.google.com/store/apps/details?id=se.sambruk.fixamingata"><img alt="FixaMin Gata på Google Play" src="/cobrands/fixmystreet/images/google_play_logo.png" style="height: 45px; width: 129px;" /></a><a href="http://appstore.com/fixamingata"><img alt="FixaMin Gata på App Store" src="/cobrands/fixmystreet/images/itunes_store_logo.png" style="height: 40px; padding-left: 19px; padding-top: 1px; vertical-align: top; width: 135px;" /></a></div>
+ <div style="padding-bottom: 32px;"><a href="https://play.google.com/store/apps/details?id=se.sambruk.fixamingata"><img alt="FixaMinGata på Google Play" src="/cobrands/fixamingata/images/google_play_logo.png" style="height: 32px; width: 108px;"></a><a href="http://appstore.com/fixamingata"><img alt="FixaMinGata på App Store" src="/cobrands/fixamingata/images/itunes_store_logo.png" style="height: 32px; margin-left: 16px; width: 108px;"></a><a href="https://twitter.com/FixaMinGata"><img alt="FixaMinGata på Twitter" src="/cobrands/fixamingata/images/icon-twitter-black.png" style="height: 32px; margin-left: 16px; width: 32px;"></a><a href="https://www.facebook.com/FixaMinGata"><img alt="FixaMinGata på Facebook" src="/cobrands/fixamingata/images/icon-facebook-black.png" style="height: 32px; padding-left: 16px; width: 32px;"></a></div>
[% IF recent_photos.size %]
<h2>
[% loc('Recently reported problems') %]
diff --git a/templates/web/fixamingata/front/tips.html b/templates/web/fixamingata/front/tips.html
index 038343d90..11a9abfc2 100644
--- a/templates/web/fixamingata/front/tips.html
+++ b/templates/web/fixamingata/front/tips.html
@@ -1 +1,8 @@
-<div style="height: 329px; padding-top: 20px;"><iframe width="100%" height="329" src="//www.youtube.com/embed/uyiRyuIV0qY" frameborder="0" allowfullscreen></iframe></div>
+<div style="padding-top: 20px;">
+ <h2>Så här enkelt används FixaMinGata</h2>
+ <video controls poster="/cobrands/fixamingata/videos/poster.jpg" style="width: 100%;">
+ <source src="/cobrands/fixamingata/videos/fixamingata.webm" type="video/webm">
+ <source src="/cobrands/fixamingata/videos/fixamingata.mp4" type="video/mp4">
+ Din webbläsare kan tyvärr inte spela upp videoklippet.
+ </video>
+</div>
diff --git a/templates/web/fixamingata/report/new/form_user_loggedout.html b/templates/web/fixamingata/report/new/form_user_loggedout.html
index bbb9864a3..dd6ecf1e7 100644
--- a/templates/web/fixamingata/report/new/form_user_loggedout.html
+++ b/templates/web/fixamingata/report/new/form_user_loggedout.html
@@ -30,7 +30,7 @@
<input type="text" class="form-control" value="[% report.user.phone_display | 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>
+ <p>Vi visar inte din e-postadress eller ditt telefonnummer publikt.</p>
</div>
<label for="password_register">[% loc('Password (optional)') %]</label>
diff --git a/templates/web/fixamingata/report/new/top_message_none.html b/templates/web/fixamingata/report/new/top_message_none.html
index 9a9141b33..641c08f47 100644
--- a/templates/web/fixamingata/report/new/top_message_none.html
+++ b/templates/web/fixamingata/report/new/top_message_none.html
@@ -1,15 +1,15 @@
<p>
-[% IF bodies_to_list_names.size == 1 %]
+[% IF bodies_to_list.size == 1 %]
[%
tprintf(
"%s har valt att inte ta emot rapporter från FixaMinGata, utan hänvisar fel- &amp; synpunktsrapportering till <a href='%s'>kommunens egen webbplats</a>.",
- bodies_to_list_names.first, bodies_to_list_urls.first);
+ bodies_to_list.values.first.name, bodies_to_list.values.first.external_url);
%]
[% END %]
[%
loc("If you submit a problem here the problem will <strong>not</strong> be reported to the council.");
%]
-[% IF bodies_to_list_names.size != 1 %]
+[% IF bodies_to_list.size != 1 %]
[%
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>."),
diff --git a/templates/web/fixmystreet-uk-councils/about/privacy.html b/templates/web/fixmystreet-uk-councils/about/privacy.html
index 3b077d29e..8ed953cc9 100644
--- a/templates/web/fixmystreet-uk-councils/about/privacy.html
+++ b/templates/web/fixmystreet-uk-councils/about/privacy.html
@@ -2,88 +2,398 @@
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>
-<p><strong>Our use of your data, cookies, and external services: what you
-should know, and how to opt out if you want to.</strong></p>
-
-<p>Summary: We care a lot about our users’ privacy. We provide details below,
-and we try our hardest to look after the private data that we hold. Like many
-other websites, we sometimes use cookies and Google Analytics to help us make
-our websites better. These tools are very common and used by many other sites,
-but they do have privacy implications, and as a charity concerned with socially
-positive uses of the internet, we think it’s important to explain them in full.
-If you don’t want to share your browsing activities on mySociety’s sites with
-other companies, you can adjust your usage or install opt-out browser plugins.
-
-<h2>Privacy</h2>
-
- <dl>
- <dt>Who gets to see my email address?</dt>
- <dd>If you submit a problem, we pass on your details, and details of
-the problem, to the council contact or contacts responsible for the area where
-you located the problem, or other relevant body. Other than the council, who obviously get
-your email address, only people we authorise to view the FixMyStreet
-administration interface will be able to see your email address and they will
-never use it for anything other than to help administer FixMyStreet. Similarly
-with email addresses from updates. We will never give or sell your email
-address to anyone else, unless we are obliged to by law. Your name, given in
-the name field, will not be published anywhere unless you let us (if you give
-your name elsewhere, e.g. in the public details section, it will be publicly
-available).</dd>
- <dt>Will you send nasty, brutish spam to my email address?</dt>
- <dd>Never. We will email you if someone leaves an update on a
-problem you&rsquo;ve reported, and send you a questionnaire email four weeks
-after you submit a problem, asking for a status update; we&rsquo;ll only ever
-send you emails in relation to your problem.</dd>
-
- <dt>How do I stop receiving emails from you?</dt>
- <dd>Every alert email we send contains an unsubscribe link at the
-bottom for you to stop receiving that alert. After the first questionnaire
-email on a report, mentioned above, you have to opt in to receive any further
-questionnaire on that report.</dd>
-
- </dl>
+<h2>Privacy Policy</h2>
+
+<p>
+ FixMyStreet is run by the charity <a href="https://www.mysociety.org/">mySociety</a>.
+</p>
+
+<p>
+ Working in the fields of transparency and accountability, mySociety thinks hard and
+ cares very much about the privacy and security of our users: the length of this
+ privacy policy is one result of that. We know no-one goes through Privacy Policies for
+ fun though, so we’ve tried to keep it a clear and reasonably quick read.
+</p>
+
+<p>
+ We hope it covers everything you need to know, but if you still have any questions
+ please feel free to <a href="/contact">contact us</a>.
+</p>
+
+<h2>What information we collect and how we use it</h2>
+
+<p>
+ When you submit a report, <b>we pass on your details, and details of the issue, to the
+ council contact</b> or contacts responsible for the area where you located the issue, or
+ other relevant body such as TfL.
+</p>
+
+<h3>
+When you make a report
+</h3>
+
+<p>
+ When you use FixMyStreet to send a report, you provide us with personal information
+ including:
+</p>
+
+<ul>
+ <li>Your name</li>
+ <li>Contact details</li>
+</ul>
+
+<p>
+ We <b>send this information to the body responsible for fixing your issue</b>, as per your
+ choice of category and location.
+</p>
+
+<p>
+ At the same time, <b>your report appears on the FixMyStreet website</b>. Your email address
+ and phone number are not published, and your name is only published if you have opted
+ to do so.
+</p>
+
+<p>
+ Some councils use FixMyStreet on their own websites. If you make a report within the
+ boundaries of one of these councils (either through FixMyStreet.com or via the council
+ website), it will be published on both sites.
+</p>
+
+<p>
+ FixMyStreet provides RSS/JSON feeds which allow anyone to publish reports on their own
+ website or page. Typically these feeds consist of reports made within a specific local
+ area, and are published on community or local interest sites.
+</p>
+
+<p>
+ Note that anything you include in the body of your report will be published in one or
+ all of the places listed above, so please take care to keep personal information such
+ as your contact details to the correct fields.
+</p>
+
+<p>
+ We <b>store your personal details</b>, along with your password where used (passwords are
+ stored in a format that is unreadable to anyone — including us — known as a hash) and
+ any reports or updates you make, in our own database.
+</p>
+
+<p>
+ These are accessible only to FixMyStreet administrators who adhere to strict internal
+ data-handling policies, and, where a council is a <a href="https://www.fixmystreet.com/pro/">FixMyStreet Pro</a> client, to council
+ staff, whose own data-handling and security policies will apply.
+</p>
+
+<h3>
+ When you add an update or respond to our ‘has your problem been fixed?’ survey
+</h3>
+
+<p>
+ When you add an update to a report, or click through from our ‘has your problem been
+ fixed?’ survey, we record this along with the initial report and your user data.
+</p>
+
+<p>
+ <b>Updates are published on the website</b> but not routinely sent to the council except in
+ cases where a council has opted for full integration. You may opt to include your
+ name; your email address is not published.
+</p>
+
+<h3>
+ When you subscribe to an alert by email
+</h3>
+
+<p>
+ We collect your email address, which we store with the details of whichever alert/s
+ you have subscribed to.
+</p>
+
+<h3>
+ When you contact the support team
+</h3>
+
+<p>
+ Your message will be accessible to our small team of support staff, who adhere to
+ strict internal data-handling policies.
+</p>
+
+<p>
+ <b>Your personal information is never shared, or used for purposes other than those
+ listed above, unless we are obliged to by law.</b>
+</p>
+
+<h2>
+ Research
+</h2>
+
+<p>
+ We sometimes use data from FixMyStreet, or share it with trusted third parties, for
+ research. This data is completely anonymised and contains no identifying details such
+ as names, email addresses or the content of reports. Our Research Data Release policy
+ may be seen on request.
+</p>
+
+<h2>
+ FixMyStreet Pro
+</h2>
+
+<h3>
+ When you make an enquiry
+</h3>
+
+<p>
+ We collect the names, phone numbers and email addresses of council employees who make
+ an enquiry about FixMyStreet Pro, request a callback or join one of our webinars.
+</p>
+
+<p>
+ These details are stored in our internal CRM. In accordance with your request, you
+ will hear from us via the channel which you have selected (email, phone or by mail).
+</p>
+
+<h2>
+ What happens when you use FixMyStreet
+</h2>
+
+<h2>
+ Making a report
+</h2>
+
+<ul>
+ <li>
+ When your council responds to your report, if you have provided us with an email
+ address, in most cases <b>their reply will go directly to your email inbox</b>. This
+ response, and any subsequent correspondence, happens outside the FixMyStreet
+ system, except in the case of some councils which have integrated with FixMyStreet
+ so that their responses and auto-updates are published on the report page. If you
+ have submitted via phone verification, you may not receive any response from the
+ council, depending on how their systems are set up.
+ </li>
+ <li>
+ We <b>email you if someone leaves an update</b> on a report you’ve made.
+ </li>
+ <li>
+ We <b>send you a questionnaire email</b> four weeks after you submit a problem, asking
+ for a status update. You can then opt in or out of subsequent status update
+ questionnaires.
+ </li>
+ <li>
+ If your report is particularly interesting, our Communications Manager may get in
+ touch, as we like to feature notable requests on the
+ <a href="https://www.mysociety.org/blog/">mySociety blog</a> (or just
+ <a href="mailto:press@mysociety.org">let us know</a> directly!).
+ </li>
+ <li>
+ We only ever send you emails in relation to your reports or use of the site.
+ </li>
+</ul>
+
+<h3>
+ Subscribing to alerts
+</h3>
+
+<p>
+ We’ll send you an automated email every time someone makes a report within the area
+ you specify, or when updates are made to a report you’ve opted to follow. The
+ frequency of these emails will depend on how large your chosen area is and how many
+ reports are made within it, but you won’t get more than one an hour.
+</p>
+
+<h2>
+ Unsubscribing
+</h2>
+
+<h3>
+ How do I stop receiving emails from you?
+</h3>
+
+<p>
+ Every alert email we send contains an unsubscribe link at the bottom for you to stop
+ receiving that alert. After the first questionnaire email on a report, mentioned
+ above, you have to opt in to receive any further questionnaire on that report.
+</p>
+
+<h3>
+ Unsubscribing from FixMyStreet Pro marketing activity
+</h3>
+
+<p>
+ All contact will give you the option to opt out of future emails or calls. You may
+ also <a href="mailto:enquiries@mysociety.org">contact us</a> at any time to ask that
+ we remove your details from our CRM. Note that opting out may be a better solution
+ than having your details removed, as it allows us to keep a record that you do not
+ wish to be contacted, and prevents the accidental re-addition of your details.
+</p>
+
+<h2>
+ Legal basis for processing
+</h2>
+
+<p>
+ In using FixMyStreet for any of the functions listed above (sending a
+ report, leaving an update, email alerts or site registration), we are
+ processing your data under the legal basis 6(1)(f) – legitimate interests.
+ We assert that we have a legitimate charitable and commercial interest in
+ giving people an easy and public way to report street problems, even if they
+ don't know who the problems should go to, and in sending them updates or
+ alerts. The benefits of reporting problems publicly are that others can
+ quickly see what has already been reported, so it prevents the council from
+ having to deal with duplicates. It also creates a snapshot for local
+ communities, so it's easy to see what the common problems are in a given
+ area, and how quickly they get fixed. Other local residents can browse, read
+ and comment on problems – and perhaps even offer a solution.
+</p>
+
+<h2>
+ Retention periods and your right to removal
+</h2>
+
+<h3>
+ Reports and updates
+</h3>
+
+<p>
+ Except in exceptional circumstances, we do not delete reports or updates made through
+ FixMyStreet. Historic FixMyStreet reports provide an invaluable resource for
+ researchers into the quantity and type of street problems made across the UK during
+ the years the site has been running. This research can help inform civic planners,
+ developers, coders, historians and social scientists, among others.
+</p>
+
+<p>
+ Therefore, <b>if you ask for a report to be removed, in most cases we will instead invite
+ you to anonymise it</b>, so that there is no public connection between the content and
+ your name. You can anonymise reports singly, or in bulk, by logging in to your account
+ and clicking on the ‘“Hide your name” link beside the time and date of your report.
+ From here you may anonymise this report or all reports you have made.
+</p>
+
+<h3>
+ Your personal information
+</h3>
+
+<p>
+ As well as your report or update appearing on the FixMyStreet website, your details,
+ including name and email address, are stored in our admin system.
+</p>
+
+<p>
+ If you submit a report but do not click on the confirmation email, your report will
+ not be sent to the council; however, the report and your details remain in our system
+ and are accessible to site administrators.
+</p>
+
+<p>
+ Please <a href="/contact">contact us</a> if you would like your details to be removed from our admin
+ database.
+</p>
+
+<h3>
+ Support mail
+</h3>
+
+<p>
+ If you contact FixMyStreet via our support email address we keep your message for two
+ years at which point they will be automatically deleted.. This is to aid continuity
+ and so that we can view any historic context which may have bearing on subsequent
+ support mail, even if members of the support staff change. Support staff adhere to
+ internal privacy policies which may be viewed on request.
+</p>
+
+<h3>
+ FixMyStreet Pro
+</h3>
+
+<p>
+ If contact has not been made for a period of 18 months, we will mark your record as
+ inactive, and will not contact you for sales purposes unless you re-establish contact.
+</p>
+
+<h2>
+ Your right to object
+</h2>
+<p>
+ The General Data Protection Regulation gives you the right to object to our
+ processing of your personal information and to ask us to stop processing it.
+ However, it also gives us the right to continue to process it if we can demonstrate
+ compelling legitimate grounds for the processing that override your interests, rights
+ and freedoms. To exercise your right to object, you can <a href="/contact">
+ contact us</a>, giving specific reasons why you are objecting to the processing of
+ your personal data. These reasons should be based upon your particular situation.
+</p>
+<h2>
+ Your right to access
+</h2>
+
+<p>
+ You may <a href="/contact">contact us</a> at any time to ask to see what personal data we hold about you.
+</p>
+
+<h2>
+ Your right to complain
+</h2>
+
+<p>
+ If you believe that we have mishandled your data, you have the right to lodge a
+ complaint with the Information Commissioner’s Office.
+ <a href="https://ico.org.uk/concerns/handling/">You can report a concern here</a>
+ (but do contact us first, so that we can try and help).
+</p>
+
+<h3>
+ Who we are
+</h3>
+
+<p>
+ FixMyStreet is run by mySociety, a UK not-for-profit social enterprise. Our registered
+ address is:
+</p>
+
+<p>
+mySociety<br>
+483 Green Lanes<br>
+London<br>
+N13 4BS<br>
+United Kingdom<br>
+</p>
+
+<p>
+ …and we can also be <a href="/contact">contacted here</a>.
+</p>
+
<h2>Cookies</h2>
<p>To make our service easier or more useful, we sometimes place small data
files on your computer or mobile phone, known as cookies; many websites do
this. We use this information to, for example, remember you have logged in so
-you don't need to do that on every page, or to measure how people use the
+you don’t need to do that on every page, or to measure how people use the
website so we can improve it and make sure it works properly. Below, we list
the cookies and services that this site can use.
-<table cellpadding=5>
-<tr align="left">
- <th scope="col">Name</th>
- <th scope="col">Typical Content</th>
- <th scope="col">Expires</th>
-</tr>
-
-<tr>
- <td>fixmystreet_app_session</td>
- <td nowrap>A random unique identifier</td>
- <td>When browser is closed, or four weeks if &ldquo;Keep me signed in&rdquo; is ticked</td>
-</tr>
-
+<table class="nicetable">
+ <tr>
+ <th scope="col">Name</th>
+ <th scope="col">Typical Content</th>
+ <th scope="col">Expires</th>
+ </tr>
+ <tr>
+ <td>fixmystreet_app_session</td>
+ <td nowrap>A random unique identifier</td>
+ <td>When browser is closed, or four weeks if &ldquo;Keep me signed in&rdquo; is ticked</td>
+ </tr>
</table>
<h3>Measuring website usage (Google Analytics)</h3>
-<p>We use Google Analytics to collect information about how people use this
-site. We do this to make sure it’s meeting its users’ needs and to understand
-how we could do it better. Google Analytics stores information such as what
+<p>We use Google Analytics software to collect information about how you use
+this site. We do this to help make sure the site is meeting the needs of its
+users and to help us make improvements.
+
+<p>Google Analytics stores information such as what
pages you visit, how long you are on the site, how you got here, what you click
on, and information about your web browser. IP addresses are masked (only a
portion is stored) and personal information is only reported in aggregate. We
@@ -91,40 +401,20 @@ do not allow Google to use or share our analytics data for any purpose besides
providing us with analytics information, and we recommend that any user of
Google Analytics does the same.
-<p>If you’re unhappy with data about your visit to be used in this way, you can
-install the <a href="http://tools.google.com/dlpage/gaoptout">official browser
-plugin for blocking Google Analytics</a>.
+<h3>Opting out</h3>
+<p>You can <a href="https://tools.google.com/dlpage/gaoptout">opt out of Google
+Analytics cookies</a>.
-<p>The cookies set by Google Analytics are as follows:
-
-<table cellpadding=5>
-<tr align="left"><th scope="col">Name</th><th scope="col">Typical Content</th><th scope="col">Expires</th></tr>
-<tr><td>_ga</td><td>Used to distinguish users</td><td>2 years</td></tr>
-<tr><td>_gat</td><d>Used to throtle request rate</td><td>10 minutes</td></tr>
-<tr><td>__utmx / __utmxx</td><td>Which variation of a page you are seeing if we are testing different versions to see which is best</td><td>2&nbsp;years</td></tr>
-</table>
+<p>If you want to disable advertising-based tracking, you can
+<a href="https://www.google.com/settings/ads">adjust your Google Ads
+Settings</a>, or opt out of advertising-based tracking across a
+number of providers in one go using the
+<a href="http://www.networkadvertising.org/choices/">Network
+Advertising Initiative’s opt-out form</a>.
-<h4>Google’s Official Statement about Analytics Data</h4>
-
-<p>“This website uses Google Analytics, a web analytics service provided by
-Google, Inc. (“Google”). Google Analytics uses “cookies”, which are text files
-placed on your computer, to help the website analyze how users use the site.
-The information generated by the cookie about your use of the website
-(including your IP address) will be transmitted to and stored by Google on
-servers in the United States . Google will use this information for the purpose
-of evaluating your use of the website, compiling reports on website activity
-for website operators and providing other services relating to website activity
-and internet usage. Google may also transfer this information to third parties
-where required to do so by law, or where such third parties process the
-information on Google’s behalf. Google will not associate your IP address with
-any other data held by Google. You may refuse the use of cookies by selecting
-the appropriate settings on your browser, however please note that if you do
-this you may not be able to use the full functionality of this website. By
-using this website, you consent to the processing of data about you by Google
-in the manner and for the purposes set out above.”</p>
-
-<p><a href="https://www.mysociety.org/privacy-online/">More general information
-on how third party services work</a></p>
+<p>Rest assured, we only track usage data for one reason: to help us
+understand how we can make the site work better for you, our
+users.
<h2>Credits</h2>
diff --git a/templates/web/fixmystreet.com/about/council-dashboard.html b/templates/web/fixmystreet.com/about/council-dashboard.html
index c109b612f..1d4bca18d 100644
--- a/templates/web/fixmystreet.com/about/council-dashboard.html
+++ b/templates/web/fixmystreet.com/about/council-dashboard.html
@@ -1,60 +1,46 @@
-[% extra_css = BLOCK %]
- <link rel="stylesheet" href="[% version('/cobrands/fixmystreet.com/fmsforcouncils.css') %]">
- <link href="https://fonts.googleapis.com/css?family=Rubik:400,500" rel="stylesheet">
-[% END %]
-
-[% IF no_body_found %]
-
[% INCLUDE header.html
- title = 'FixMyStreet Pro', bodyclass = 'fullwidthpage'
+ title = 'Dashboard :: Request Access', bodyclass = 'fullwidthpage'
%]
-<div class="confirmation-header confirmation-header--inbox">
- <h1>Thanks!</h1>
- <p>We will be in touch with a confirmation link soon.</p>
-</div>
+<div class="council-dashboard-login">
-[% ELSE %]
+ <form method="post">
-[% INCLUDE header.html
- title = 'FixMyStreet Pro', bodyclass = 'fms-for-councils fullwidthpage'
-%]
+ <h1>Council stats</h1>
+
+ <p>
+ For council staff only. Access detailed statistics
+ on reports and performance in your area.
+ </p>
-<div class="fixed-container">
- <div class="council-header">
- <h1 class="councils-logo">FixMyStreet Pro</h1>
- </div>
- <div class="councils-hero">
- <div class="councils-hero__demo-access">
- <p>To access a council-specific version of our main dashboard page,
- please provide your name and email below and we'll send you a link.</p>
- <form method="post" class="councils-hero__demo-access__form">
<div class="form-group">
- <label for="demo-name">Name</label>
- <span class="required">required</span>
- <input type="text" name="name" id="demo-name" required value="[% form_name | html %]">
+ <label for="demo-name">Name</label>
+ <span class="required">required</span>
+ <input class="form-control" type="text" name="name" id="demo-name" required value="[% form_name | html %]">
</div>
<div class="form-group">
- <label for="demo-email">Contact email</label>
- <span class="required">required</span>
- <input type="email" name="username" id="demo-email" required value="[% email | html %]">
- <p class="form-note">Ending in .gov.uk, or other official council domain</p>
+ <label for="demo-email">Contact email</label>
+ <span class="required">required</span>
+ <input class="form-control" type="email" name="username" id="demo-email" required value="[% email | html %]">
+ <p class="form-note">
+ [% IF error == 'bad_email' %]<strong>[% END ~%]
+ Ending in .gov.uk, or other official council domain
+ [% IF error == 'bad_email' %]– please <a href="/contact?name=[% form_name | uri %]&amp;em=[% email | uri %]">contact us</a>
+ if we did not recognise your email</strong>[% END ~%]
+ </p>
</div>
<div class="form-group submit-group">
- <input type="hidden" name="r" value="about/council-dashboard">
- <input type="hidden" name="extra.referer" value="[% c.req.headers.referer | html %]">
- <input type="hidden" name="subject" value="Council dashboard request">
- <input type="hidden" name="message" value="Filled in the council dashboard form">
- <input type="hidden" name="recipient" value="bettercities">
- <input type="hidden" name="dest" value="from_council">
- <input type="submit" value="Let me in" class="btn">
+ <input type="hidden" name="r" value="about/council-dashboard">
+ <input type="hidden" name="extra.referer" value="[% c.req.headers.referer | html %]">
+ <input type="hidden" name="subject" value="Council dashboard request">
+ <input type="hidden" name="message" value="Filled in the council dashboard form">
+ <input type="hidden" name="recipient" value="business">
+ <input type="hidden" name="dest" value="from_council">
+ <input type="submit" value="Request access" class="btn">
</div>
- </form>
- </div>
- </div>
-</div>
+ </form>
-[% END %]
+</div>
[% INCLUDE footer.html %]
diff --git a/templates/web/fixmystreet.com/about/faq-en-gb.html b/templates/web/fixmystreet.com/about/faq-en-gb.html
index 0d6b95523..78b8065c3 100755
--- a/templates/web/fixmystreet.com/about/faq-en-gb.html
+++ b/templates/web/fixmystreet.com/about/faq-en-gb.html
@@ -61,7 +61,7 @@ browser – it should work well.
<dd>
<ol>
<li>Start at the <a href="/">homepage</a> and type in your postcode or a place
-name. Not sure where you are? Pick 'locate me automatically'.
+name. Not sure where you are? Pick ‘locate me automatically’.
<li>Put the pin in the map to show exactly where the problem is, and type in a
description of the issue. Then send.
<li>Check your email inbox for our confirmation mail, click on the link, and
@@ -124,9 +124,12 @@ full name is a mandatory field, and your report may be rejected without it.
<p>Finally, we find that when users are asked to provide contact details, the
tone of their correspondence tends to be more constructive and less abusive.
<p>We don't publish your email address, and you can opt to submit your report
-anonymously – just uncheck the 'show my name publicly' box on submission. This
+anonymously – just uncheck the ‘show my name publicly’ box on submission. This
will mean that your name is not displayed on the FixMyStreet website, although
it is still sent to the council.
+<p>If you want to anonymise a report you made in the past, sign in to your
+account (see below for how to register) and you'll see a ‘Hide your name?’
+option on the report.
</dd>
</dl>
@@ -146,7 +149,7 @@ account. Once you've signed in, your reports will be sent as soon as you click
<dt>How do I register?</dt>
<dd>
<p>Visit <a href="https://www.fixmystreet.com/auth">https://www.fixmystreet.com/auth</a>
-and choose 'No, let me sign in by email'. You can choose a password at that
+and choose ‘No, let me sign in by email’. You can choose a password at that
point.
</dd>
@@ -154,7 +157,7 @@ point.
<dd>
<p>Don't worry! Visit <a
href="https://www.fixmystreet.com/auth">https://www.fixmystreet.com/auth</a>
-and choose 'No, let me sign in by email' - then put a new password in the
+and choose ‘No, let me sign in by email' – then put a new password in the
box. You'll receive an email to confirm the change.
</dd>
@@ -221,17 +224,17 @@ Survey, Adanac Drive, Southampton, SO16 0AS or telephone 03456 05 05 05.
<dt>There are too many pins on the map; I can't make a report</dt>
<dd>
-<p>Use the buttons at the bottom right of the screen – 'hide pins', or 'hide
-old pins', to clear the map.
+<p>Use the ‘hide pins’ button at the top or bottom right of the screen to clear the map,
+or the state/category filters where available.
</dd>
<dt>There's no category for what I want to report</dt>
<dd>
<p>The categories on FixMyStreet are set by each individual council, and
reflect the problems that they are able to deal with.
-<p>There is almost always an 'other' option, but if your problem doesn't fit
+<p>There is almost always an ‘other’ option, but if your problem doesn't fit
neatly into any of the given categories, please consider whether FixMyStreet is
-the appropriate place to report it (see "What can I report?", above).
+the appropriate place to report it (see “What can I report?”, above).
</dd>
<dt>I haven't received a confirmation email</dt>
@@ -261,6 +264,7 @@ misrouted. Please include the URL (web address) of your FixMyStreet report.
<p>If you've already submitted your report, but now you need to send further
information to your council, you should wait until they reply to you, and then
respond to their communication directly.
+
<p>You can also leave an update on your FixMyStreet report page, but note that
updates are not forwarded to the council. They are intended as a place for
residents to discuss local problems and offer advice or support.
@@ -299,8 +303,8 @@ council directly, via the contact details given on their own website.
<dt>I've seen an inappropriate report/comment </dt>
<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>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
<a href="/about/house-rules">House Rules</a>, we'll take it down.
</dd>
@@ -325,8 +329,8 @@ to contact your local councillors and ask them to help.
<dt>Someone has marked my problem was fixed, but it isn't</dt>
<dd>
<p>As the owner of your report on FixMyStreet, you can change its status back
-to 'not fixed' at any time. Go to your report's web page and check the box
-under 'update'.
+to ‘not fixed’ at any time. Go to your report's web page and check the box
+under ‘update’.
</dd>
<dt>My report is old and my problem has been fixed. Can I now delete it?</dt>
@@ -357,8 +361,8 @@ categories if you wish.
<p>FixMyStreet reports usually come by email. If you reply to the email in your
normal way, your response will go directly into the user's inbox.
<p>Your reply is not published on the FixMyStreet website (unless you are a
-FixMyStreet Pro customer who has chosen this option – see 'Can
-FixMyStreet connect directly with council systems?', below).
+FixMyStreet Pro customer who has chosen this option – see ‘Can
+FixMyStreet connect directly with council systems?’, below).
</dd>
<dt>Our council already has its own reporting system – we don't also need to be on FixMyStreet</dt>
@@ -390,7 +394,7 @@ FixMyStreet about as easy to use as possible.
<dt>Can FixMyStreet connect directly with council systems?</dt>
<dd>
-<p>Yes – and we will do so for free, if you adhere to the Open 311 standard.
+<p>Yes – and we will do so for free, if you adhere to the Open311 standard.
<a href="/open311">Find out more here</a>.
</dd>
@@ -422,7 +426,7 @@ newspaper, put a message up in your library. It all helps.
<dt>I'd like to make a FixMyStreet for my own country or town</dt>
<dd>
<p>FixMyStreet runs on open-source code, so that's fine.
-<a href="http://fixmystreet.org/">Read more here</a>.
+<a href="https://fixmystreet.org/">Read more here</a>.
</dd>
<dt>I want to suggest an improvement</dt>
diff --git a/templates/web/fixmystreet.com/about/privacy.html b/templates/web/fixmystreet.com/about/privacy.html
index 8b06d8726..8ed953cc9 100755
--- a/templates/web/fixmystreet.com/about/privacy.html
+++ b/templates/web/fixmystreet.com/about/privacy.html
@@ -6,76 +6,392 @@
<h1>Privacy, cookies, and third party services</h1>
-<p><strong>Our use of your data, cookies, and external services: what you
-should know, and how to opt out if you want to.</strong></p>
-
-<p>Summary: We care a lot about our users’ privacy. We provide details below,
-and we try our hardest to look after the private data that we hold. Like many
-other websites, we sometimes use cookies and Google Analytics to help us make
-our websites better. These tools are very common and used by many other sites,
-but they do have privacy implications, and as a charity concerned with socially
-positive uses of the internet, we think it’s important to explain them in full.
-If you don’t want to share your browsing activities on mySociety’s sites with
-other companies, you can adjust your usage or install opt-out browser plugins.
-
-<h2>Privacy</h2>
-
- <dl>
- <dt>Who gets to see my email address?</dt>
- <dd>If you submit a problem, we pass on your details, and details of
-the problem, to the council contact or contacts responsible for the area where
-you located the problem, or other relevant body. Other than the council, who obviously get
-your email address, only people we authorise to view the FixMyStreet
-administration interface will be able to see your email address and they will
-never use it for anything other than to help administer FixMyStreet. Similarly
-with email addresses from updates. We will never give or sell your email
-address to anyone else, unless we are obliged to by law. Your name, given in
-the name field, will not be published anywhere unless you let us (if you give
-your name elsewhere, e.g. in the public details section, it will be publicly
-available).</dd>
- <dt>Will you send nasty, brutish spam to my email address?</dt>
- <dd>Never. We will email you if someone leaves an update on a
-problem you&rsquo;ve reported, and send you a questionnaire email four weeks
-after you submit a problem, asking for a status update; we&rsquo;ll only ever
-send you emails in relation to your problem.</dd>
-
- <dt>How do I stop receiving emails from you?</dt>
- <dd>Every alert email we send contains an unsubscribe link at the
-bottom for you to stop receiving that alert. After the first questionnaire
-email on a report, mentioned above, you have to opt in to receive any further
-questionnaire on that report.</dd>
-
- </dl>
+<h2>Privacy Policy</h2>
+
+<p>
+ FixMyStreet is run by the charity <a href="https://www.mysociety.org/">mySociety</a>.
+</p>
+
+<p>
+ Working in the fields of transparency and accountability, mySociety thinks hard and
+ cares very much about the privacy and security of our users: the length of this
+ privacy policy is one result of that. We know no-one goes through Privacy Policies for
+ fun though, so we’ve tried to keep it a clear and reasonably quick read.
+</p>
+
+<p>
+ We hope it covers everything you need to know, but if you still have any questions
+ please feel free to <a href="/contact">contact us</a>.
+</p>
+
+<h2>What information we collect and how we use it</h2>
+
+<p>
+ When you submit a report, <b>we pass on your details, and details of the issue, to the
+ council contact</b> or contacts responsible for the area where you located the issue, or
+ other relevant body such as TfL.
+</p>
+
+<h3>
+When you make a report
+</h3>
+
+<p>
+ When you use FixMyStreet to send a report, you provide us with personal information
+ including:
+</p>
+
+<ul>
+ <li>Your name</li>
+ <li>Contact details</li>
+</ul>
+
+<p>
+ We <b>send this information to the body responsible for fixing your issue</b>, as per your
+ choice of category and location.
+</p>
+
+<p>
+ At the same time, <b>your report appears on the FixMyStreet website</b>. Your email address
+ and phone number are not published, and your name is only published if you have opted
+ to do so.
+</p>
+
+<p>
+ Some councils use FixMyStreet on their own websites. If you make a report within the
+ boundaries of one of these councils (either through FixMyStreet.com or via the council
+ website), it will be published on both sites.
+</p>
+
+<p>
+ FixMyStreet provides RSS/JSON feeds which allow anyone to publish reports on their own
+ website or page. Typically these feeds consist of reports made within a specific local
+ area, and are published on community or local interest sites.
+</p>
+
+<p>
+ Note that anything you include in the body of your report will be published in one or
+ all of the places listed above, so please take care to keep personal information such
+ as your contact details to the correct fields.
+</p>
+
+<p>
+ We <b>store your personal details</b>, along with your password where used (passwords are
+ stored in a format that is unreadable to anyone — including us — known as a hash) and
+ any reports or updates you make, in our own database.
+</p>
+
+<p>
+ These are accessible only to FixMyStreet administrators who adhere to strict internal
+ data-handling policies, and, where a council is a <a href="https://www.fixmystreet.com/pro/">FixMyStreet Pro</a> client, to council
+ staff, whose own data-handling and security policies will apply.
+</p>
+
+<h3>
+ When you add an update or respond to our ‘has your problem been fixed?’ survey
+</h3>
+
+<p>
+ When you add an update to a report, or click through from our ‘has your problem been
+ fixed?’ survey, we record this along with the initial report and your user data.
+</p>
+
+<p>
+ <b>Updates are published on the website</b> but not routinely sent to the council except in
+ cases where a council has opted for full integration. You may opt to include your
+ name; your email address is not published.
+</p>
+
+<h3>
+ When you subscribe to an alert by email
+</h3>
+
+<p>
+ We collect your email address, which we store with the details of whichever alert/s
+ you have subscribed to.
+</p>
+
+<h3>
+ When you contact the support team
+</h3>
+
+<p>
+ Your message will be accessible to our small team of support staff, who adhere to
+ strict internal data-handling policies.
+</p>
+
+<p>
+ <b>Your personal information is never shared, or used for purposes other than those
+ listed above, unless we are obliged to by law.</b>
+</p>
+
+<h2>
+ Research
+</h2>
+
+<p>
+ We sometimes use data from FixMyStreet, or share it with trusted third parties, for
+ research. This data is completely anonymised and contains no identifying details such
+ as names, email addresses or the content of reports. Our Research Data Release policy
+ may be seen on request.
+</p>
+
+<h2>
+ FixMyStreet Pro
+</h2>
+
+<h3>
+ When you make an enquiry
+</h3>
+
+<p>
+ We collect the names, phone numbers and email addresses of council employees who make
+ an enquiry about FixMyStreet Pro, request a callback or join one of our webinars.
+</p>
+
+<p>
+ These details are stored in our internal CRM. In accordance with your request, you
+ will hear from us via the channel which you have selected (email, phone or by mail).
+</p>
+
+<h2>
+ What happens when you use FixMyStreet
+</h2>
+
+<h2>
+ Making a report
+</h2>
+
+<ul>
+ <li>
+ When your council responds to your report, if you have provided us with an email
+ address, in most cases <b>their reply will go directly to your email inbox</b>. This
+ response, and any subsequent correspondence, happens outside the FixMyStreet
+ system, except in the case of some councils which have integrated with FixMyStreet
+ so that their responses and auto-updates are published on the report page. If you
+ have submitted via phone verification, you may not receive any response from the
+ council, depending on how their systems are set up.
+ </li>
+ <li>
+ We <b>email you if someone leaves an update</b> on a report you’ve made.
+ </li>
+ <li>
+ We <b>send you a questionnaire email</b> four weeks after you submit a problem, asking
+ for a status update. You can then opt in or out of subsequent status update
+ questionnaires.
+ </li>
+ <li>
+ If your report is particularly interesting, our Communications Manager may get in
+ touch, as we like to feature notable requests on the
+ <a href="https://www.mysociety.org/blog/">mySociety blog</a> (or just
+ <a href="mailto:press@mysociety.org">let us know</a> directly!).
+ </li>
+ <li>
+ We only ever send you emails in relation to your reports or use of the site.
+ </li>
+</ul>
+
+<h3>
+ Subscribing to alerts
+</h3>
+
+<p>
+ We’ll send you an automated email every time someone makes a report within the area
+ you specify, or when updates are made to a report you’ve opted to follow. The
+ frequency of these emails will depend on how large your chosen area is and how many
+ reports are made within it, but you won’t get more than one an hour.
+</p>
+
+<h2>
+ Unsubscribing
+</h2>
+
+<h3>
+ How do I stop receiving emails from you?
+</h3>
+
+<p>
+ Every alert email we send contains an unsubscribe link at the bottom for you to stop
+ receiving that alert. After the first questionnaire email on a report, mentioned
+ above, you have to opt in to receive any further questionnaire on that report.
+</p>
+
+<h3>
+ Unsubscribing from FixMyStreet Pro marketing activity
+</h3>
+
+<p>
+ All contact will give you the option to opt out of future emails or calls. You may
+ also <a href="mailto:enquiries@mysociety.org">contact us</a> at any time to ask that
+ we remove your details from our CRM. Note that opting out may be a better solution
+ than having your details removed, as it allows us to keep a record that you do not
+ wish to be contacted, and prevents the accidental re-addition of your details.
+</p>
+
+<h2>
+ Legal basis for processing
+</h2>
+
+<p>
+ In using FixMyStreet for any of the functions listed above (sending a
+ report, leaving an update, email alerts or site registration), we are
+ processing your data under the legal basis 6(1)(f) – legitimate interests.
+ We assert that we have a legitimate charitable and commercial interest in
+ giving people an easy and public way to report street problems, even if they
+ don't know who the problems should go to, and in sending them updates or
+ alerts. The benefits of reporting problems publicly are that others can
+ quickly see what has already been reported, so it prevents the council from
+ having to deal with duplicates. It also creates a snapshot for local
+ communities, so it's easy to see what the common problems are in a given
+ area, and how quickly they get fixed. Other local residents can browse, read
+ and comment on problems – and perhaps even offer a solution.
+</p>
+
+<h2>
+ Retention periods and your right to removal
+</h2>
+
+<h3>
+ Reports and updates
+</h3>
+
+<p>
+ Except in exceptional circumstances, we do not delete reports or updates made through
+ FixMyStreet. Historic FixMyStreet reports provide an invaluable resource for
+ researchers into the quantity and type of street problems made across the UK during
+ the years the site has been running. This research can help inform civic planners,
+ developers, coders, historians and social scientists, among others.
+</p>
+
+<p>
+ Therefore, <b>if you ask for a report to be removed, in most cases we will instead invite
+ you to anonymise it</b>, so that there is no public connection between the content and
+ your name. You can anonymise reports singly, or in bulk, by logging in to your account
+ and clicking on the ‘“Hide your name” link beside the time and date of your report.
+ From here you may anonymise this report or all reports you have made.
+</p>
+
+<h3>
+ Your personal information
+</h3>
+
+<p>
+ As well as your report or update appearing on the FixMyStreet website, your details,
+ including name and email address, are stored in our admin system.
+</p>
+
+<p>
+ If you submit a report but do not click on the confirmation email, your report will
+ not be sent to the council; however, the report and your details remain in our system
+ and are accessible to site administrators.
+</p>
+
+<p>
+ Please <a href="/contact">contact us</a> if you would like your details to be removed from our admin
+ database.
+</p>
+
+<h3>
+ Support mail
+</h3>
+
+<p>
+ If you contact FixMyStreet via our support email address we keep your message for two
+ years at which point they will be automatically deleted.. This is to aid continuity
+ and so that we can view any historic context which may have bearing on subsequent
+ support mail, even if members of the support staff change. Support staff adhere to
+ internal privacy policies which may be viewed on request.
+</p>
+
+<h3>
+ FixMyStreet Pro
+</h3>
+
+<p>
+ If contact has not been made for a period of 18 months, we will mark your record as
+ inactive, and will not contact you for sales purposes unless you re-establish contact.
+</p>
+
+<h2>
+ Your right to object
+</h2>
+<p>
+ The General Data Protection Regulation gives you the right to object to our
+ processing of your personal information and to ask us to stop processing it.
+ However, it also gives us the right to continue to process it if we can demonstrate
+ compelling legitimate grounds for the processing that override your interests, rights
+ and freedoms. To exercise your right to object, you can <a href="/contact">
+ contact us</a>, giving specific reasons why you are objecting to the processing of
+ your personal data. These reasons should be based upon your particular situation.
+</p>
+<h2>
+ Your right to access
+</h2>
+
+<p>
+ You may <a href="/contact">contact us</a> at any time to ask to see what personal data we hold about you.
+</p>
+
+<h2>
+ Your right to complain
+</h2>
+
+<p>
+ If you believe that we have mishandled your data, you have the right to lodge a
+ complaint with the Information Commissioner’s Office.
+ <a href="https://ico.org.uk/concerns/handling/">You can report a concern here</a>
+ (but do contact us first, so that we can try and help).
+</p>
+
+<h3>
+ Who we are
+</h3>
+
+<p>
+ FixMyStreet is run by mySociety, a UK not-for-profit social enterprise. Our registered
+ address is:
+</p>
+
+<p>
+mySociety<br>
+483 Green Lanes<br>
+London<br>
+N13 4BS<br>
+United Kingdom<br>
+</p>
+
+<p>
+ …and we can also be <a href="/contact">contacted here</a>.
+</p>
+
<h2>Cookies</h2>
<p>To make our service easier or more useful, we sometimes place small data
files on your computer or mobile phone, known as cookies; many websites do
this. We use this information to, for example, remember you have logged in so
-you don't need to do that on every page, or to measure how people use the
+you don’t need to do that on every page, or to measure how people use the
website so we can improve it and make sure it works properly. Below, we list
the cookies and services that this site can use.
-<table cellpadding=5>
-<tr align="left">
- <th scope="col">Name</th>
- <th scope="col">Typical Content</th>
- <th scope="col">Expires</th>
-</tr>
-
-<tr>
- <td>fixmystreet_app_session</td>
- <td nowrap>A random unique identifier</td>
- <td>When browser is closed, or four weeks if &ldquo;Keep me signed in&rdquo; is ticked</td>
-</tr>
-
+<table class="nicetable">
+ <tr>
+ <th scope="col">Name</th>
+ <th scope="col">Typical Content</th>
+ <th scope="col">Expires</th>
+ </tr>
+ <tr>
+ <td>fixmystreet_app_session</td>
+ <td nowrap>A random unique identifier</td>
+ <td>When browser is closed, or four weeks if &ldquo;Keep me signed in&rdquo; is ticked</td>
+ </tr>
</table>
<h3>Measuring website usage (Google Analytics)</h3>
-<p>We use Google Analytics to collect information about how people use this
-site. We do this to make sure it’s meeting its users’ needs and to understand
-how we could do it better.
+<p>We use Google Analytics software to collect information about how you use
+this site. We do this to help make sure the site is meeting the needs of its
+users and to help us make improvements.
<p>Google Analytics stores information such as what
pages you visit, how long you are on the site, how you got here, what you click
@@ -85,50 +401,9 @@ do not allow Google to use or share our analytics data for any purpose besides
providing us with analytics information, and we recommend that any user of
Google Analytics does the same.
-<p>We have also enabled the Advertising Features of Google
-Analytics. In particular, we use <b>Demographics and Interest
-reporting</b> to identify trends in the types of users visiting our
-site, which may be used for internal reporting and improvement of
-the site content.
-
-<p>In technical speak, this allows Google to collect data about your
-traffic via Google
-<a href="https://www.google.com/policies/technologies/types/">advertising
-cookies</a> and
-<a href="https://www.google.com/policies/privacy/key-terms/#toc-terms-identifier">anonymous
-identifiers</a>, in addition to data collected through a standard
-Google Analytics implementation. Regardless of the source of the
-data, we strictly adhere to
-<a href="https://support.google.com/analytics/answer/2700409">Google&rsquo;s
-policy requirements</a> in our treatment of your data. We do not
-facilitate the merging of personally-identifiable information with
-non-personally identifiable information collected through any Google
-advertising product or feature.
-
-<h4>Google’s Official Statement about Analytics Data</h4>
-
-<p>“This website uses Google Analytics, a web analytics service provided by
-Google, Inc. (“Google”). Google Analytics uses “cookies”, which are text files
-placed on your computer, to help the website analyze how users use the site.
-The information generated by the cookie about your use of the website
-(including your IP address) will be transmitted to and stored by Google on
-servers in the United States . Google will use this information for the purpose
-of evaluating your use of the website, compiling reports on website activity
-for website operators and providing other services relating to website activity
-and internet usage. Google may also transfer this information to third parties
-where required to do so by law, or where such third parties process the
-information on Google’s behalf. Google will not associate your IP address with
-any other data held by Google. You may refuse the use of cookies by selecting
-the appropriate settings on your browser, however please note that if you do
-this you may not be able to use the full functionality of this website. By
-using this website, you consent to the processing of data about you by Google
-in the manner and for the purposes set out above.”</p>
-
<h3>Opting out</h3>
-<p>If you’re unhappy with the idea of sharing the fact you
-visited our site (and any other sites) with Google, you can
-<a href="https://tools.google.com/dlpage/gaoptout/">install the
-official browser plugin for blocking Google Analytics</a>.
+<p>You can <a href="https://tools.google.com/dlpage/gaoptout">opt out of Google
+Analytics cookies</a>.
<p>If you want to disable advertising-based tracking, you can
<a href="https://www.google.com/settings/ads">adjust your Google Ads
diff --git a/templates/web/fixmystreet.com/admin/stats/refused.html b/templates/web/fixmystreet.com/admin/stats/refused.html
new file mode 100644
index 000000000..513416cf5
--- /dev/null
+++ b/templates/web/fixmystreet.com/admin/stats/refused.html
@@ -0,0 +1,19 @@
+[% INCLUDE 'admin/header.html' title=loc('Refused bodies') -%]
+
+<ul>
+[%~ FOR data IN bodies;
+ SET body = data.body %]
+ <li>[% body.name %]
+ <ul>
+ [%~ IF data.all %]
+ <li>ALL</li>
+ [%~ END %]
+ [%~ IF data.contacts.size; FOR c IN data.contacts %]
+ <li>[% c.category %]</li>
+ [%~ END; END %]
+ </ul>
+ </li>
+[%~ END %]
+</ul>
+
+[% INCLUDE admin/footer.html %]
diff --git a/templates/web/fixmystreet.com/footer_extra.html b/templates/web/fixmystreet.com/footer_extra.html
index e958ca35c..699d7de8b 100644
--- a/templates/web/fixmystreet.com/footer_extra.html
+++ b/templates/web/fixmystreet.com/footer_extra.html
@@ -63,7 +63,7 @@
</p>
<p class="mysoc-footer__org">
Powered by
- <a href="http://fixmystreet.org" class="js-lazyload mysoc-footer__org__logo mysoc-footer__org__logo--fms-platform">FixMyStreet Platform</a>
+ <a href="https://fixmystreet.org" class="js-lazyload mysoc-footer__org__logo mysoc-footer__org__logo--fms-platform">FixMyStreet Platform</a>
</p>
</div>
</div>
diff --git a/templates/web/fixmystreet.com/front/footer-marketing.html b/templates/web/fixmystreet.com/front/footer-marketing.html
index 2d1acc084..c5812cccf 100644
--- a/templates/web/fixmystreet.com/front/footer-marketing.html
+++ b/templates/web/fixmystreet.com/front/footer-marketing.html
@@ -1,10 +1,18 @@
<div class="fms-pro-promo">
- <h2>FixMyStreet Pro</h2>
- <p class="lead">The one-stop street reporting service for councils.</p>
- <p>Integrate FixMyStreet with your council system for smooth, end-to-end report fullfilment.</p>
- <p><a href="/pro/" class="btn">Learn more</a></p>
+ <div class="fms-pro-promo__pro">
+ <h2>Go Pro</h2>
+ <p class="lead">Integrate FixMyStreet Pro with your council system for smooth, end-to-end report fullfilment.</p>
+ <p>How much could <em>you</em> save?</p>
+ <p><a href="/pro/" class="btn">Learn more</a></p>
+ </div>
+ <div class="fms-pro-promo__stats">
+ <h2>Free statistics for councils</h2>
+ <p class="lead">Explore detailed stats on the FixMyStreet councils dashboard — for free.</p>
+ <p>What do people report most? How’s your response rate? And how do you compare to other UK councils?</p>
+ <p><a href="/about/council-dashboard/" class="btn">Log in now</a></p>
+ </div>
</div>
<div class="footer-marketing">
- <p>[% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="http://fixmystreet.org">available at fixmystreet.org</a>.') %]</p>
+ <p>[% loc('Would you like to contribute to FixMyStreet? Our code is open source and <a href="https://fixmystreet.org">available at fixmystreet.org</a>.') %]</p>
</div>
diff --git a/templates/web/fixmystreet.com/header.html b/templates/web/fixmystreet.com/header.html
deleted file mode 100644
index a1f66945d..000000000
--- a/templates/web/fixmystreet.com/header.html
+++ /dev/null
@@ -1,43 +0,0 @@
-[%
- SET html_att = ' lang="' _ lang_code _ '"';
- # For a right-to-left language, use the following line in your own header:
- # SET html_att = html_att _ ' dir="rtl"';
--%]
-<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8"[% html_att %]><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8"[% html_att %]><![endif]-->
-<!--[if IE 9]> <html class="no-js ie9"[% html_att %]><![endif]-->
-<!--[if gt IE 9]><!--><html class="no-js"[% html_att %]
-[% IF appcache ~%]
- manifest="/offline/appcache.manifest"
-[%~ END %]><!--<![endif]-->
- <head>
- <meta name="viewport" content="initial-scale=1.0">
-
- <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
- <meta name="HandHeldFriendly" content="true">
- <meta name="mobileoptimized" content="0">
-
- [% INCLUDE 'header_opengraph.html' %]
- [% INCLUDE 'header/css.html' %]
- [% INCLUDE 'common_header_tags.html' %]
- [% TRY %][% PROCESS 'header_extra.html' %][% CATCH file %][% END %]
-
- </head>
- [% TRY %][% PROCESS 'set_body_class.html' %][% CATCH file %][% END %]
- <body class="[% bodyclass | html IF bodyclass %]">
- <div class="top_banner top_banner--donate"><p>
- <strong>Help keep our sites running in 2018.</strong>
- <a href="https://www.mysociety.org/donate/">Please&nbsp;donate&nbsp;today</a>.
- </p></div>
-
- <div class="wrapper">
- <div class="table-cell">
- [% INCLUDE 'header_site.html' %]
-
- [% pre_container_extra %]
-
- <div class="container">
- <div class="content[% " $mainclass" | html IF mainclass %]" role="main">
-
- <!-- [% INCLUDE 'debug_header.html' %] -->
diff --git a/templates/web/fixmystreet.com/header/css.html b/templates/web/fixmystreet.com/header/css.html
index f0fe37200..00ec6befa 100644
--- a/templates/web/fixmystreet.com/header/css.html
+++ b/templates/web/fixmystreet.com/header/css.html
@@ -5,6 +5,11 @@
[% TRY %][% critical = INSERT "header/critical.auto.min.css" %][% CATCH file %][% END %]
[% IF inline_css AND critical %]
+<!--[if lt IE 9]>
+<link rel="stylesheet" href="[% ol_css %]">
+<link rel="stylesheet" href="[% base_css %]">
+<![endif]-->
+<!--[if gte IE 9]><!-->
<style id="critical">
[% critical %]
</style>
@@ -14,13 +19,12 @@
<link id="preload_base_css" rel="preload" href="[% base_css %]" as="style">
<script nonce="[% csp_nonce %]">
/* If browser *does* support preload, use stylesheets when loaded */
-document.getElementById('preload_base_css').onload = function(){this.rel='stylesheet'};
-/*! loadCSS & rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
-(function(a){var b=function(b,h,e){function c(a){if(f.body)return a();setTimeout(function(){c(a)})}function k(){d.addEventListener&&d.removeEventListener("load",k);d.media=e||"all"}var f=a.document,d=f.createElement("link");var p=f.styleSheets;d.rel="stylesheet";d.href=b;d.media="only x";c(function(){h.parentNode.insertBefore(d,h)});var l=function(a){for(var b=d.href,c=p.length;c--;)if(p[c].href===
-b)return a();setTimeout(function(){l(a)})};d.addEventListener&&d.addEventListener("load",k);l(k)};a.loadCSS=b})(this);
-(function(a){var b={};b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}};b.poly=function(){for(var b=a.document.getElementsByTagName("link"),e=0;e<b.length;e++){var c=b[e];"preload"===c.rel&&"style"===c.getAttribute("as")&&(a.loadCSS(c.href,c,c.getAttribute("media")),c.rel=null)}};if(!b.support()){b.poly()}})(this);
+document.getElementById('preload_base_css').onload = function(){this.onload=null;this.rel='stylesheet'};
+/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
+(function(){var e=function(a){function b(){a.removeEventListener("load",b);a.setAttribute("onload",null);a.media=c}var c=a.media||"all";a.addEventListener("load",b);setTimeout(function(){a.rel="stylesheet";a.media="only x"});setTimeout(b,3E3)};try{var d=document.createElement("link").relList.supports("preload")}catch(a){d=!1}d||function(){for(var a=document.getElementsByTagName("link"),b=0;b<a.length;b++){var c=a[b];"preload"===c.rel&&"style"===c.getAttribute("as")&&e(c)}}()})();
</script>
<link rel="stylesheet" href="[% base_css %]" media="(min-width:48em)">
+<!--<![endif]-->
[% ELSE %]
<link rel="stylesheet" href="[% ol_css %]">
<link rel="stylesheet" href="[% base_css %]">
diff --git a/templates/web/fixmystreet.com/header_extra.html b/templates/web/fixmystreet.com/header_extra.html
index 74280a6f9..5292d4804 100644
--- a/templates/web/fixmystreet.com/header_extra.html
+++ b/templates/web/fixmystreet.com/header_extra.html
@@ -13,19 +13,4 @@
<meta name='theme-color' content='#ffd000'>
<link rel="Shortcut Icon" type="image/x-icon" href="/cobrands/fixmystreet.com/favicon.ico">
-[%# Code for flex box usage on councils page %]
-<script nonce="[% csp_nonce %]">
-(function(d){
- var c = " ", f = "flex", fw = "-webkit-"+f, g = d.createElement('b');
- try {
- g.style.display = fw;
- g.style.display = f;
- c += (g.style.display == f || g.style.display == fw) ? f : "no-"+f;
- } catch(e) {
- c += "no-"+f;
- }
- d.documentElement.className += c;
-})(document);
-</script>
-
[% INCLUDE 'tracking_code.html' %]
diff --git a/templates/web/fixmystreet.com/reports/cobrand_stats.html b/templates/web/fixmystreet.com/reports/cobrand_stats.html
new file mode 100644
index 000000000..8b9e57c05
--- /dev/null
+++ b/templates/web/fixmystreet.com/reports/cobrand_stats.html
@@ -0,0 +1,6 @@
+[% UNLESS c.req.params.show_wards %]
+<div class="full-width area-reports-dashboard-cta">
+ <strong>New for council staff</strong>
+ <p>Don’t miss our stats dashboard, only available to council staff. Access detailed reports and statistics — for free. <a href="/about/council-dashboard/">Log in here.</a></p>
+</div>
+[% END %]
diff --git a/templates/web/fixmystreet.com/reports/summary.html b/templates/web/fixmystreet.com/reports/summary.html
index 11ee5df28..1b48d68b4 100644
--- a/templates/web/fixmystreet.com/reports/summary.html
+++ b/templates/web/fixmystreet.com/reports/summary.html
@@ -9,11 +9,60 @@
[% INCLUDE 'header.html', title = loc('Dashboard'), bodyclass => 'dashboard fullwidthpage' %]
<div class="dashboard-header">
- <h1>FMS [% loc('Dashboard') %]
- [% IF body %] – [% body.name %] [% END %]
- </h1>
+ <h1>[% loc('Dashboard') %] – [% body.name %]</h1>
</div>
+[% IF body.send_method == 'Email' OR body.send_method == '' %]
+<div class="dashboard-row">
+ <div class="dashboard-item dashboard-item--12">
+ <div class="healthcheck-unit healthcheck-unit--good">
+ <h3>Email delivery</h3>
+ <p>
+ Along with most UK councils, [% body.name %] receives reports
+ from FixMyStreet.com via email; you can see a full list of
+ the email addresses we send reports to at the bottom of this page.
+ </p>
+ </div>
+ <div class="healthcheck-unit healthcheck-unit--bad">
+ <h3>Integration with back end systems</h3>
+ <p>
+ [% body.name %] is not currently taking advantage of
+ <a href="https://www.fixmystreet.com/pro">FixMyStreet Pro</a>,
+ to create efficiencies and make savings. By submitting reports
+ directly into your asset management system or CRM, FixMyStreet
+ Pro can reduce duplication and re-keying costs.
+ </p>
+ <p>
+ The <a href="https://www.fixmystreet.com/pro">FixMyStreet Pro</a>
+ integration will create a two way flow of information and
+ significantly improve the customer journey whilst encouraging
+ citizens to engage with you digitally.
+ </p>
+ <div class="healthcheck-cta-trio">
+ <div class="dashboard-item dashboard-item--4">
+ <h3 style="margin-top: 0;">Join one of our regular&nbsp;webinars</h3>
+ <a href="https://www.fixmystreet.com/pro/webinar-schedule/" class="btn">
+ Show webinar schedule
+ </a>
+ </div>
+ <div class="dashboard-item dashboard-item--4">
+ <h3 style="margin-top: 0;">Schedule a<br>one-to-one demo</h3>
+ <a href="https://www.fixmystreet.com/pro/contact/" class="btn">
+ Request a callback
+ </a>
+ </div>
+ <div class="dashboard-item dashboard-item--4">
+ <h3 style="margin-top: 0;">See FixMyStreet Pro for&nbsp;yourself</h3>
+ <a href="https://demo.fixmystreet.com/" class="btn">
+ Try our live demo
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+[% END %]
+
<form method="GET">
<div class="filters">
<p>
@@ -122,6 +171,26 @@
</div>
</div>
+[% IF body.send_method == 'Email' OR body.send_method == '' %]
+<div class="dashboard-row dashboard-row--yellow">
+ <div class="dashboard-item dashboard-item--12 dashboard-fms-case-studies">
+ <h2 style="margin-bottom: 1em">How FixMyStreet Pro helps other councils</h2>
+ <div>
+ <a href="https://www.fixmystreet.com/pro/take-a-tour/oxfordshire/">
+ <small>Case study</small>
+ <h3>East Herts District Council</h3>
+ <p>FixMyStreet Pro plays beautifully with Yotta’s Mayrise system, with two-way integration extending the power of both services.</p>
+ </a>
+ <a href="https://www.fixmystreet.com/pro/take-a-tour/bristol/">
+ <small>Case study</small>
+ <h3>Bristol City Council</h3>
+ <p>Bristol have put FixMyStreet at the heart of their anti-litter campaign, and are involving many citizens in their work.</p>
+ </a>
+ </div>
+ </div>
+</div>
+[% END %]
+
<div class="dashboard-row">
<div class="dashboard-item dashboard-item--12">
<h2 class="dashboard-subheading">[% tprintf( loc('Where we send %s reports'), body.name ) %]</h2>
@@ -171,4 +240,25 @@
</div>
</div>
-[% INCLUDE 'footer.html' pagefooter = 'yes' %]
+<div class="dashboard-row dashboard-row--yellow" style="text-align: center; margin-bottom: -1em;">
+ <div class="dashboard-item dashboard-item--4">
+ <h3 style="margin-top: 0;">Join one of our regular&nbsp;webinars</h3>
+ <a href="https://www.fixmystreet.com/pro/webinar-schedule/" class="btn">
+ Show webinar schedule
+ </a>
+ </div>
+ <div class="dashboard-item dashboard-item--4">
+ <h3 style="margin-top: 0;">Schedule a one-to-one demo</h3>
+ <a href="https://www.fixmystreet.com/pro/contact/" class="btn">
+ Request a callback
+ </a>
+ </div>
+ <div class="dashboard-item dashboard-item--4">
+ <h3 style="margin-top: 0;">See FixMyStreet Pro for&nbsp;yourself</h3>
+ <a href="https://demo.fixmystreet.com/" class="btn">
+ Try our live demo
+ </a>
+ </div>
+</div>
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/hart/header.html b/templates/web/hart/header.html
index 0aae5568b..a375fdb7d 100644
--- a/templates/web/hart/header.html
+++ b/templates/web/hart/header.html
@@ -1,6 +1,5 @@
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8" lang="[% lang_code %]"><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8" lang="[% lang_code %]"><![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="[% lang_code %]"><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js" lang="[% lang_code %]"><!--<![endif]-->
<head>
diff --git a/templates/web/oxfordshire/header.html b/templates/web/oxfordshire/header.html
index a1d42a777..b157bb976 100644
--- a/templates/web/oxfordshire/header.html
+++ b/templates/web/oxfordshire/header.html
@@ -1,6 +1,5 @@
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8" lang="[% lang_code %]"><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8" lang="[% lang_code %]"><![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="[% lang_code %]"><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js" lang="[% lang_code %]"
[% IF appcache ~%]
@@ -54,6 +53,16 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
</div>
</header>
+[% IF c.req.uri.path == '/' %]
+<p class="oxfordshire-preamble">
+The weather over the winter period this year has caused widespread damage to
+Oxfordshire’s roads. This has significantly increased the number of issues being
+reported, and we are of course dealing with the most dangerous issues first.
+Please do carry on alerting us to new ones so that we can continue to prioritise
+this work efficiently and repair the roads.
+</p>
+[% END %]
+
[% pre_container_extra %]
<div class="container">
diff --git a/templates/web/oxfordshire/report/new/form_heading.html b/templates/web/oxfordshire/report/new/form_heading.html
new file mode 100644
index 000000000..a561c7efb
--- /dev/null
+++ b/templates/web/oxfordshire/report/new/form_heading.html
@@ -0,0 +1,3 @@
+<div class="extra-text mob-only">
+ <p>Please do not use this form for reporting <a href="/faq#pothole" target="_blank">emergencies and urgent problems</a>.</p>
+</div>
diff --git a/templates/web/rutland/about/faq-en-gb.html b/templates/web/rutland/about/faq-en-gb.html
new file mode 100644
index 000000000..cfe1d9153
--- /dev/null
+++ b/templates/web/rutland/about/faq-en-gb.html
@@ -0,0 +1,172 @@
+[% 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="/privacy">Privacy and cookies</a></li>
+ <li><a href="https://www.rutland.gov.uk/my-council/contact-us/">Contact Rutland County Council</a></li>
+ </ul>
+ </aside>
+</div>
+
+<h1><a name="faq"></a>Frequently Asked Questions</h1>
+<dl>
+ <dt>How can I report a pothole, street or road problem?</dt>
+ <dd>
+ <p>
+ This easy to use web site is designed to help Rutland residents to report,
+ view, or discuss local highway faults, including potholes, directly and quickly
+ to us by simply locating them on a map. You can do this by using your computer
+ or your mobile phone.
+ </p>
+ <p>
+ Please report one problem at a time; you will be given an opportunity at the end
+ to report another problem using the personal details previously entered.
+ </p>
+ </dd>
+
+ <dt>What sort of problems can I report?</dt>
+ <dd>
+ <p>
+ You can report faults linked to amenities or problems that are broken or dirty,
+ damaged or dumped, or need fixing, cleaning or clearing such as:
+ </p>
+ <ul>
+ <li>Abandoned vehicles
+ <li>Dog Fouling
+ <li>Flyposting or graffiti
+ <li>Flytipping or litter
+ <li>Streetcleaning, such as broken glass in a cycle lane
+ <li>Unlit lampposts
+ <li>Potholes
+ </ul>
+ </dd>
+ <dt>What isn&rsquo;t it for?</dt>
+ <dd>
+ <p>
+ The web site is not a way of getting in touch with the council for all issues
+ — please use it only for problems highlighted above.
+ </p>
+ <p>
+ As we often route problems via our cleansing services or highways departments,
+ using the site for other matters may result in a delay in your report getting
+ to the right people.
+ </p>
+ <div style="margin-left:1.5em;">
+ <p>
+ <strong>You will need to contact the county council directly for</strong>:
+ </p>
+ <ul>
+ <li>Any urgent or emergency problems
+ <li>Complaining about the council
+ <li>Proposals for speed bumps/ CCTV/ pedestrian crossings/ new road layouts/ etc.
+ </ul>
+ </div>
+ </dd>
+
+ <dt>How do I use the reporting tool on the site?</dt>
+ <dd>
+ <p>
+ After entering a postcode or location, you will then be presented with a map of
+ that area. You can then view problems already reported in that area, or report new
+ ones of your own simply by clicking on the map at the location of the problem.
+ </p>
+ </dd>
+
+ <dt>How are the problems solved?</dt>
+ <dd>
+ <p>
+ They are reported to us automatically. We then resolve the problem the way we
+ normally would and update the fault on the map.
+ </p>
+ </dd>
+
+ <dt>What does the map show?</dt>
+ <dd>
+ <p>
+ The map shows all faults submitted online. You can view the exact location of
+ each fault and see its current status.
+ </p>
+ </dd>
+
+ <dt>What updates will I receive?</dt>
+ <dd>
+ <p>
+ When you record a fault you can sign up to receive updates and you will
+ receive an initial email to acknowledge the report.
+ </p>
+ <p>
+ You will then receive an email every time that fault is updated. This could be when
+ a member of the public posts an update onto the fault or when we post a status update.
+ </p>
+ <p>
+ Road problems that are the responsibility of our Highways department, such as potholes,
+ will receive automatic updates at different stages. You will receive an email when the
+ problem has been inspected and another one when the fault is fixed.
+ </p>
+ <p>
+ Some faults may be marked as referred when they are not the responsibility of Rutland County Council.
+ </p>
+ <p>
+ All of these updates will also be posted on the mapped fault so that anyone can see the status of any
+ fault recorded by clicking on it on the map.
+ </p>
+ </dd>
+
+ <dt>How can I get an update on a fault?</dt>
+ <dd>
+ <p>
+ When you record a fault you can sign up to receive updates. You will then receive an initial
+ email to acknowledge the report. In time, you will receive a further email when the problem is
+ assigned for inspection, one if the problem needs to be referred to another department or
+ organisation, and a final email when it is fixed or requires no further work.
+ </p>
+ <p>
+ These updates will also be posted on the mapped fault so that anyone can see the status of
+ any fault recorded by clicking on it on the map.
+ </p>
+ </dd>
+
+ <dt>Can I report a fault on my mobile?</dt>
+ <dd>
+ <p>
+ Yes, you can view our website on your phone or tablet and it will automatically adapt to the
+ size of your screen.
+ </p>
+ </dd>
+</dl>
+
+<dl>
+ <dt>Inappropriate use</dt>
+ <dd>
+ <p>
+ Rutland County Council is not responsible for the content and
+ accuracy of material submitted by its users. Rutland County Council will monitor
+ this website for instances of inappropriate use, and reserves the right to moderate
+ comments if such instances occur.
+ </p>
+ </dd>
+
+ <dt>Why does the site use kilometres for measurements?</dt>
+ <dd>
+ <p>
+ The maps are from Ordnance Survey who based their grid reference
+ system on measurements in metres and kilometres.
+ </p>
+ </dd>
+
+ <dt>How do I report a fault outside of Rutland?</dt>
+ <dd>
+ <p>
+ The map only shows locations within Rutland to keep it locally focussed.
+ </p>
+ </dd>
+</dl>
+
+<p>
+ You can find out more about FixMyStreet at <a href="https://www.fixmystreet.com">www.fixmystreet.com</a>.
+</p>
+<p>&nbsp;<p>
+
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/rutland/front/footer-marketing.html b/templates/web/rutland/front/footer-marketing.html
new file mode 100755
index 000000000..f6418e54d
--- /dev/null
+++ b/templates/web/rutland/front/footer-marketing.html
@@ -0,0 +1,8 @@
+ <div class="tablewrapper bordered footer-marketing">
+ <p>
+ [% loc('') %]
+ </p>
+ <p>
+ [% loc('Powered by <a class="platform-logo" href="https://fixmystreet.org/">FixMyStreet Platform</a>') %]
+ </p>
+ </div>
diff --git a/templates/web/rutland/site-name.html b/templates/web/rutland/site-name.html
new file mode 100755
index 000000000..62188c84a
--- /dev/null
+++ b/templates/web/rutland/site-name.html
@@ -0,0 +1 @@
+Rutland County Council FixMyStreet
diff --git a/templates/web/stevenage/header.html b/templates/web/stevenage/header.html
index 219486a9e..0fe6dfed1 100644
--- a/templates/web/stevenage/header.html
+++ b/templates/web/stevenage/header.html
@@ -1,6 +1,5 @@
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8" lang="[% lang_code %]"><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8" lang="[% lang_code %]"><![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="[% lang_code %]"><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js" lang="[% lang_code %]"><!--<![endif]-->
<head>
diff --git a/templates/web/warwickshire/header.html b/templates/web/warwickshire/header.html
index 6ad06f69a..5470d401a 100644
--- a/templates/web/warwickshire/header.html
+++ b/templates/web/warwickshire/header.html
@@ -1,6 +1,5 @@
<!DOCTYPE html><!-- 3P header begins -->
-<!--[if IE 7]> <html class="no-js iel8 lt-ie9 lt-ie8" ie7 lang="[% lang_code %]"> <![endif]-->
-<!--[if IE 8]> <html class="no-js iel8 lt-ie9 ie8" lang="[% lang_code %]"> <![endif]-->
+<!--[if IE 8]> <html class="no-js lt-ie9 ie8" lang="[% lang_code %]"> <![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="[% lang_code %]"><![endif]-->
<!--[if gt IE 9]><!--> <html class="no-js" lang="[% lang_code %]"> <!--<![endif]-->
diff --git a/templates/web/zurich/admin/body.html b/templates/web/zurich/admin/body.html
index 468f7adff..11be6eef7 100644
--- a/templates/web/zurich/admin/body.html
+++ b/templates/web/zurich/admin/body.html
@@ -16,14 +16,16 @@
<th>[% loc('Last editor') %]</th>
<th>[% loc('Note') %]</th>
<th>[% loc('When edited') %]</th>
+ <th>Kürzel</th>
</tr>
[% WHILE ( cat = contacts.next ) %]
- <tr[% IF cat.deleted %] class="is-deleted"[% END %]>
+ <tr[% IF cat.state == 'deleted' %] class="is-deleted"[% END %]>
<td><a href="[% c.uri_for( 'body', body_id, cat.category ) %]">[% cat.category_display %]</a></td>
<td>[% cat.email | html %]</td>
<td>[% cat.editor %]</td>
<td>[% cat.note | html %]</td>
<td>[% PROCESS format_date this_date=cat.whenedited %]</td>
+ <td>[% cat.get_extra_metadata('abbreviation') %]</td>
</tr>
[% END %]
</table>
@@ -37,31 +39,7 @@
</div>
[% END %]
- <form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
-
- <p>
- <strong>[% loc('Category:') %] </strong>
- <input type="text" class="form-control" name="category" size="30" value="[% contact.category | html %]">
- </p>
-
- <p>
- <strong>[% loc('Email:') %] </strong>
- <input type="text" class="form-control" name="email" size="30" value="[% contact.email | html %]">
- </p>
-
- <input type="hidden" name="confirmed" value="1" id="confirmed">
-
- <p>
- <strong>[% loc('Note:') %] </strong>
- <textarea class="form-control" name="note" rows="3" cols="40"></textarea>
- </p>
-
- <p>
- <input type="hidden" name="posted" value="new" >
- <input type="hidden" name="token" value="[% csrf_token %]" >
- <input type="submit" class="btn" name="Create category" value="[% errors ? loc('Save changes') : loc('Create category') %]">
- </p>
- </form>
+ [% INCLUDE 'admin/contact-form.html' %]
[% END %]
diff --git a/templates/web/zurich/admin/contact-form.html b/templates/web/zurich/admin/contact-form.html
index 236b169d0..3840d46a4 100644
--- a/templates/web/zurich/admin/contact-form.html
+++ b/templates/web/zurich/admin/contact-form.html
@@ -1,17 +1,43 @@
<form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8" id="category_edit">
- <p><strong>[% loc('Category:') %] </strong>[% contact.category_display | html %]
+
+ [% IF contact.in_storage %]
+ <h1>[% contact.category_display | html %]</h1>
<input type="hidden" name="category" value="[% contact.category | html %]" >
- <input type="hidden" name="token" value="[% csrf_token %]" >
+ [% ELSE %]
+ <p>
+ <strong>[% loc('Category:') %] </strong>
+ <input type="text" class="form-control" name="category" size="30" value="[% contact.category | html %]" required>
+ </p>
+ [% END %]
+
+ <p>
+ <strong>Kürzel</strong>
+ <input type="text" class="form-control" name="extra[abbreviation]" id="abbreviation" size="30" value="[% contact.get_extra_metadata('abbreviation') | html %]">
+ </p>
<p><strong>[% loc('Email:') %] </strong>
<input type="text" class="form-control" name="email" value="[% contact.email | html %]" size="30">
<p>
+ <strong>[% loc('Extra fields:') %]</strong>
+ [% IF contact.in_storage %]
+ <a href="#" class="js-show-extra-fields hidden-nojs">([% loc('show') %])</a>
+ [% END %]
+ </p>
+ <div class="js-extra-fields-ui[% IF contact.in_storage %] hidden-js[% END %]">
+ [% INCLUDE 'admin/extra-metadata-form.html' metas=(contact.get_metadata_for_input OR []) %]
+ </div>
+
+ <p>
+ [% IF contact.in_storage %]
<label for="state">[% loc('State') %]</label>
<select name="state" id="state">
<option value="confirmed"[% ' selected' IF contact.state == 'confirmed' %]>[% loc('Confirmed') %]
<option value="deleted"[% ' selected' IF contact.state == 'deleted' %]>[% loc('Deleted') %]
</select>
+ [% ELSE %]
+ <input type="hidden" name="state" value="confirmed" id="confirmed">
+ [% END %]
<input type="checkbox" name="photo_required" value="1" id="photo_required"[% ' checked' IF contact.get_extra_metadata('photo_required') %]>
<label class="inline" for="photo_required">[% loc('Photo required') %]</label>
</p>
@@ -19,5 +45,8 @@
<p><strong>[% loc('Note:') %] </strong><textarea class="form-control" name="note" rows="3" cols="40"></textarea>
<input type="hidden" name="posted" value="new">
- <p><input type="submit" class="btn" name="Save changes" value="[% loc('Save changes') %]">
+ <input type="hidden" name="token" value="[% csrf_token %]" >
+ <p><input type="submit" class="btn" name="Create category" value="[% contact.in_storage ? loc('Save changes') : loc('Create category') %]">
+ </p>
+
</form>
diff --git a/templates/web/zurich/admin/header.html b/templates/web/zurich/admin/header.html
index 40847f190..91ac24faa 100644
--- a/templates/web/zurich/admin/header.html
+++ b/templates/web/zurich/admin/header.html
@@ -1,20 +1,6 @@
[%
SET bodyclass = bodyclass || 'fullwidthpage';
INCLUDE 'header.html' admin = 1, bodyclass = bodyclass _ ' admin';
-
- states = {
- 'unconfirmed' = loc('Submitted'),
- 'confirmed' = loc('Open'),
- 'in progress' = loc('In progress'),
- 'planned' = loc('Planned'),
- 'fixed - council' = loc('Closed'),
- 'hidden' = loc('Hidden'),
- 'closed' = loc('Extern'),
- 'partial' = loc('Not contactable'),
- 'investigating' = loc('Wish'),
- 'unable to fix' = loc('Jurisdiction unknown'),
- 'fixed - council' = loc('Closed'),
- }
%]
<style type="text/css">
.adminhidden { color: #666666; }
diff --git a/templates/web/zurich/admin/index-dm.html b/templates/web/zurich/admin/index-dm.html
index e0b62d5d2..4d77cf264 100644
--- a/templates/web/zurich/admin/index-dm.html
+++ b/templates/web/zurich/admin/index-dm.html
@@ -4,10 +4,10 @@
[% status_message %]
<h2 id="submitted">[% loc('Submitted') %]</h2>
-[% INCLUDE list, problems = unconfirmed.all, hash = 'submitted' %]
+[% INCLUDE list, problems = submitted.all, hash = 'submitted' %]
-<h2 id="planned">[% loc('Planned') %]</h2>
-[% INCLUDE list, problems = approval.all, hash = 'planned' %]
+<h2 id="feedback_pending">Rückmeldung ausstehend</h2>
+[% INCLUDE list, problems = approval.all, hash = 'feedback_pending' %]
<h2 id="alle">[% loc('All reports') %]</h2>
[% INCLUDE list, problems = other.all, include_subdiv = 1, hash = 'alle' %]
diff --git a/templates/web/zurich/admin/index-sdm.html b/templates/web/zurich/admin/index-sdm.html
index 707bb2d9d..68a2fcf62 100644
--- a/templates/web/zurich/admin/index-sdm.html
+++ b/templates/web/zurich/admin/index-sdm.html
@@ -5,7 +5,7 @@
[% INCLUDE list, problems = reports_new.all, hash = 'new' %]
<h2 id="wait">[% loc('Reports awaiting approval') %]</h2>
-[% INCLUDE list, problems = reports_unpublished.all, no_edit = 1, hash = 'wait' %]
+[% INCLUDE list, problems = reports_unpublished.all, hash = 'wait' %]
<h2 id="alle">[% loc('Reports published') %]</h2>
[% INCLUDE list, problems = reports_published.all, no_edit = 1, hash = 'alle' %]
diff --git a/templates/web/zurich/admin/index.html b/templates/web/zurich/admin/index.html
index fb3609bb3..62cd1a52c 100644
--- a/templates/web/zurich/admin/index.html
+++ b/templates/web/zurich/admin/index.html
@@ -9,8 +9,7 @@
<h2>[% loc('Problem breakdown by state') %]</h2>
<ul>
[% FOREACH state IN problems.keys.sort %]
- [% NEXT IF NOT states.$state %]
- <li>[% problems.$state %] [% states.$state %]</li>
+ <li>[% problems.$state %] [% prettify_state(state) %]</li>
[% END %]
</ul>
diff --git a/templates/web/zurich/admin/problem_row.html b/templates/web/zurich/admin/problem_row.html
index a83e22b27..973d9f651 100644
--- a/templates/web/zurich/admin/problem_row.html
+++ b/templates/web/zurich/admin/problem_row.html
@@ -18,9 +18,10 @@
<td>[% PROCESS value_or_nbsp value=problem.category_display %]</td>
<td>[% PROCESS format_date this_date=problem.created %]</td>
<td>[% PROCESS format_date this_date=problem.lastupdate %]</td>
- <td> [% states.${problem.state} %][% IF problem.state == 'planned';
+ <td>[% prettify_state(problem.state) %]
+ [% IF problem.state == 'feedback pending';
SET cs=problem.get_extra_metadata('closure_status');
- IF cs %] ([% states.$cs %]) [% END; END %]</td>
+ IF cs %] ([% prettify_state(cs) %]) [% END; END %]</td>
[% IF include_subdiv %]
<td>
diff --git a/templates/web/zurich/admin/report_edit-sdm.html b/templates/web/zurich/admin/report_edit-sdm.html
index 0319fc565..d07629d01 100644
--- a/templates/web/zurich/admin/report_edit-sdm.html
+++ b/templates/web/zurich/admin/report_edit-sdm.html
@@ -73,7 +73,7 @@
<dd>[% problem.category_display | html %]</dd>
<dt class="print-only">[% loc('State:') %] <!-- Status --></dt>
- <dd class="print-only">[% states.${problem.state} %]</dd>
+ <dd class="print-only">[% prettify_state(problem.state) %]</dd>
<dt>[% loc('Time spent (in minutes):') %]</dt>
<dd>[% problem.get_time_spent %]</dd>
@@ -101,28 +101,28 @@
<div class="admin-report-edit admin-report-edit--interact">
-<p align="right" class="screen-only"><input type="submit" class="btn" name="send_back" value="[% loc('Not for my subdivision') %]"></p>
-<p align="right" class="screen-only"><input type="submit" class="btn" name="not_contactable" value="[% loc('Customer not contactable') %]"></p>
+<p align="right" class="screen-only"><input [% sdm_disabled %] type="submit" class="btn" name="send_back" value="[% loc('Not for my subdivision') %]"></p>
+<p align="right" class="screen-only"><input [% sdm_disabled %] type="submit" class="btn" name="not_contactable" value="[% loc('Customer not contactable') %]"></p>
<ul class="no-bullets screen-only">
<li>
<label for="new_internal_note">[% loc('New internal note:') %]</label>
- <textarea class="form-control" name='new_internal_note' id='new_internal_note' cols=60 rows=4></textarea>
+ <textarea [% sdm_disabled %] class="form-control" name='new_internal_note' id='new_internal_note' cols=60 rows=4></textarea>
</li>
<li>
<label for="status_update">[% loc('New note to DM:') %]</label>
- <textarea class="form-control" name='status_update' id='status_update' cols=60 rows=4></textarea>
+ <textarea [% sdm_disabled %] class="form-control" name='status_update' id='status_update' cols=60 rows=4></textarea>
</li>
</ul>
<p class="screen-only">
<label for="time_spent">[% loc('Time spent (in minutes):') %]</label>
- <input type="text" class="form-control" name="time_spent" id="form_time_spent" style="width: 4em" value="0">
+ <input [% sdm_disabled %] type="text" class="form-control" name="time_spent" id="form_time_spent" style="width: 4em" value="0">
</p>
<p class="clearfix screen-only">
- <input style="float:left" type="submit" class="btn" name="Submit changes" value="[% loc('Submit changes') %]" >
- <input style="float:right" type="submit" class="btn" name="no_more_updates" value="[% loc('No further updates') %]">
+ <input [% sdm_disabled %] style="float:left" type="submit" class="btn" name="Submit changes" value="[% loc('Submit changes') %]" >
+ <input [% sdm_disabled %] style="float:right" type="submit" class="btn" name="no_more_updates" value="[% loc('No further updates') %]">
</p>
[% INCLUDE 'admin/list_updates.html' %]
diff --git a/templates/web/zurich/admin/report_edit.html b/templates/web/zurich/admin/report_edit.html
index fd03fb044..58cf9d2a4 100644
--- a/templates/web/zurich/admin/report_edit.html
+++ b/templates/web/zurich/admin/report_edit.html
@@ -27,7 +27,7 @@
<dd class="screen-only">&raquo; <a href="http://webgis.intra.stzh.ch/stapo/GoogleStreetView.asp?lat=[% problem.latitude %]&amp;lon=[% problem.longitude %]" target="_blank">[% loc('Street View') %]</a></dd>
- [% IF c.cobrand.problem_is_closed(problem) %]
+ [% IF problem.is_fixed || problem.is_closed || problem.is_hidden %]
<dt><span class="mock-label">[% loc('Details:') %]</span></dt>
<dd>[% problem.detail | html %]</dd>
[% IF problem.extra.original_detail %]
@@ -101,7 +101,7 @@
<dd>[% problem.category_display | html %]</dd>
<dt class="print-only">[% loc('State:') %] <!-- Status --></dt>
- <dd class="print-only">[% states_trans.${problem.state} %]</dd>
+ <dd class="print-only">[% prettify_state(problem.state) %]</dd>
<dt>[% loc('Time spent (in minutes):') %]</dt>
<dd>[% problem.get_time_spent %]</dd>
@@ -154,7 +154,8 @@
<select class="form-control" name="state" id="state" data-pstate="[% pstate %]">
<option value="">--</option>
[% FOREACH s IN states %]
- <option [% 'selected ' IF s.state == pstate %] value="[% s.state %]">[% s.trans %]</option>
+ <option [% 'selected ' IF s.state == pstate %] value="[% s.state %]">
+ [% IF s.trans; s.trans; ELSE; prettify_state(s.state); END %]</option>
[% END %]
</select>
</dd>
@@ -170,7 +171,8 @@
<select class="form-control" name="category" id="category">
<option value="">--</option>
[% FOREACH cat IN category_options %]
- <option value="[% cat.name %]">[% cat.value %]</option>
+ <option value="[% cat.category %]">[% cat.category_display ~%]
+ [% ' (' _ cat.abbreviation _ ')' IF cat.abbreviation %]</option>
[% END %]
</select>
</div>
@@ -195,15 +197,15 @@
</ul>
-[% IF problem.state == 'planned' %]
+[% IF problem.state == 'feedback pending' %]
[%# 3rd party messages sent for Extern/Wunsch states %]
[% SWITCH pstate %]
- [% CASE ['closed','investigating'] %]
+ [% CASE ['external','wish'] %]
<ul class="no-bullets screen-only">
<li class="assignation" id="assignation__external">
<span class="error hidden">[% loc('Please select a body.') %]</span>
<label for="body_external">
- [% IF pstate == 'closed' %]
+ [% IF pstate == 'external' %]
[% loc('Assign to external body:') %]
[% ELSE %]
[% loc('Assign to competent body:') %]
@@ -218,7 +220,7 @@
</select>
</li>
<li>
- [% IF pstate == 'closed' %]
+ [% IF pstate == 'external' %]
<input type="checkbox" name="third_personal" id="third_personal" value="1"[% ' checked' IF problem.extra.third_personal %]>
<label for="third_personal" class="inline">[% loc('Include reporter personal details') %]</label>
[% END %]
@@ -234,12 +236,11 @@
# (e.g. various pstates) %]
<ul class="no-bullets screen-only">
<li id="status_update_container"><label for="status_update">
- [% SWITCH pstate %]
- [% CASE ['hidden', 'investigating', 'partial'] %][%# Hidden/Wish/Not contactable %]
- [% loc('Reply to user:') %]
- [% CASE DEFAULT %]
- [% loc('Public response:') %]
- [% END %]
+ [% IF c.cobrand.zurich_user_response_states.$pstate %]
+ [% loc('Reply to user:') %]
+ [% ELSE %]
+ [% loc('Public response:') %]
+ [% END %]
</label>
[% INCLUDE 'admin/response_templates_select.html' for='status_update' %]
<textarea class="form-control" name='status_update' id='status_update' cols=60 rows=5>
@@ -252,7 +253,7 @@
<p align="right" class="screen-only">
[% IF show_publish_response %]
[%# While we call this 'publish_response', the response will not actually
- # be "published" for these cases: Wish / Hidden / Not contactable (for these,
+ # be "published" for these cases: Hidden / Not contactable (for these,
# only a private email will be sent to the user. However, in all cases,
# this is the end of processing, so we mark this with the same text used
# for 'No further updates %]
@@ -272,9 +273,9 @@
[% END %]
[% SWITCH problem.state %]
- [% CASE ['closed','investigating'] %]
+ [% CASE ['external','wish'] %]
<h2>
- [% IF problem.state == 'closed' %]
+ [% IF problem.state == 'external' %]
[% loc('Message to external body:') %]
[% ELSE %]
[% loc('Message to competent body:') %]
diff --git a/templates/web/zurich/admin/stats/index.html b/templates/web/zurich/admin/stats/index.html
index ce8e238f7..4e2c568a0 100644
--- a/templates/web/zurich/admin/stats/index.html
+++ b/templates/web/zurich/admin/stats/index.html
@@ -2,14 +2,12 @@
[% PROCESS 'admin/report_blocks.html' %]
[% USE date %]
-<p style="float:right"><a href="[% c.uri_with( { export=1 } ) %]">[% loc('All Reports as CSV') %]</a></p>
+<form method="get" action="[% c.uri_for('/admin/stats') %]">
+<div class="filters">
-[% IF start_date AND end_date %]
-<p><strong>[% tprintf( loc( 'All reports between %s and %s' ), start_date.ymd, end_date.ymd ) | html %]</strong></p>
-[% END %]
-
-<form method="get" action="[% c.uri_for('stats') %]">
-<p><select class="form-control" name="ym">
+<p>
+ <label for="ym">[% loc('Month') %]</label>
+ <select class="form-control" name="ym" id="ym">
<option value="">[% loc('All reports') %]</option>
[% FOR y IN [ 2013 .. date.format(date.now, '%Y') ];
SET max = 12;
@@ -21,11 +19,34 @@
<option[% ' selected' IF v == ym %]>[% v %]</option>
[% END %]
[% END %]
-</select>
+ </select>
+</p>
+
+<p>
+ <label for="category">[% loc('Category') %]</label>
+ <select class="form-control" name="category" id="category">
+ <option value="">--</option>
+ [% FOREACH cat IN category_options %]
+ <option value="[% cat.category %]"[% ' selected' IF cat.category == category %]>[% cat.category_display ~%]
+ [% ' (' _ cat.abbreviation _ ')' IF cat.abbreviation %]</option>
+ [% END %]
+ </select>
+</p>
+
+<p class="no-label">
+ <input type="submit" class="btn" value="[% loc('Go') %]">
+</p>
-<input type="submit" class="btn" value="[% loc('Go') %]">
+</div>
</form>
+<ul class="dashboard-options-tabs">
+ [% IF start_date AND end_date %]
+ <li><strong>[% tprintf( loc( 'All reports between %s and %s' ), start_date.ymd, end_date.ymd ) | html %]</strong></li>
+ [% END %]
+ <li class="pull-right"><a href="[% c.uri_with( { export=1 } ) %]">[% loc('All Reports as CSV') %]</a></li>
+</ul>
+
<ul>
<li>[% loc('Total') %]: [% reports_total || 0 %]
<li>[% loc('Closed') %]: [% reports_solved || 0 %]
diff --git a/templates/web/zurich/header.html b/templates/web/zurich/header.html
index 117e44449..b453465f7 100644
--- a/templates/web/zurich/header.html
+++ b/templates/web/zurich/header.html
@@ -1,6 +1,5 @@
<!doctype html>
-<!--[if IE 7]> <html class="no-js ie7 iel8" lang="[% lang_code %]"><![endif]-->
-<!--[if IE 8]> <html class="no-js ie8 iel8" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8" lang="[% lang_code %]"><![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="[% lang_code %]"><![endif]-->
<!--[if gt IE 9]><!--><html class="no-js" lang="[% lang_code %]"><!--<![endif]-->
<head>
diff --git a/templates/web/zurich/maps/zurich.html b/templates/web/zurich/maps/zurich.html
index 4000e1e52..33c70bb0f 100644
--- a/templates/web/zurich/maps/zurich.html
+++ b/templates/web/zurich/maps/zurich.html
@@ -6,7 +6,7 @@
[% INCLUDE maps/openlayers.html %]
[% INCLUDE maps/wmts_config.html %]
[% UNLESS around_page %]
-<p id="sub_map_links">
+<p class="sub-map-links" id="sub_map_links">
[% map_sub_links %]
</p>
[% END %]
diff --git a/templates/web/zurich/report/_item.html b/templates/web/zurich/report/_item.html
index ccae84271..f20b2021d 100644
--- a/templates/web/zurich/report/_item.html
+++ b/templates/web/zurich/report/_item.html
@@ -1,11 +1,11 @@
<li class="item-list__item item-list--reports__item">
<a href="[% c.uri_for('/report', problem.id ) %]">
[% photo_to_display = c.cobrand.allow_photo_display(problem) %]
- [% IF problem.state != 'unconfirmed' AND problem.photo AND photo_to_display %]
+ [% IF problem.state != 'submitted' AND problem.photo AND photo_to_display %]
[% photo_idx = photo_to_display - 1 ~%]
<img class="img" height="60" width="90" src="[% problem.photos.${photo_idx}.url_fp %]" alt="">
[% END %]
- [% IF problem.state != 'unconfirmed' %]
+ [% IF problem.state != 'submitted' %]
<h3 class="item-list__heading">[% problem.title | html %]</h3>
[% ELSE %]
<h3 class="item-list__heading"><em>[% loc('Awaiting moderation') %]</em></h3>
diff --git a/templates/web/zurich/report/_main.html b/templates/web/zurich/report/_main.html
index 912e8b0c9..c9225b4aa 100644
--- a/templates/web/zurich/report/_main.html
+++ b/templates/web/zurich/report/_main.html
@@ -5,7 +5,7 @@
[%- IF !problem.used_map %]<br>[% loc('there is no pin shown as the user did not use the map') %][% END %]
</p>
- [% IF problem.state != 'unconfirmed' %]
+ [% IF problem.state != 'submitted' %]
[% INCLUDE 'report/photo.html' object=problem %]
[% problem.detail | add_links | html_para %]
[% ELSE %]
diff --git a/templates/web/zurich/report/updates.html b/templates/web/zurich/report/updates.html
index 4489fea34..8a09d0bc7 100644
--- a/templates/web/zurich/report/updates.html
+++ b/templates/web/zurich/report/updates.html
@@ -1,15 +1,11 @@
-[% IF problem.state == 'fixed - council' OR problem.state == 'closed' %]
+[% IF c.cobrand.problem_has_public_response(problem) %]
<h4 class="static-with-rule">[% loc('Updates') %]</h4>
<ul class="item-list item-list--updates">
<li class="item-list__item item-list__item--updates">
<div class="item-list__update-wrap">
<div class="item-list__update-text">
<p class="meta-2">[% prettify_dt( problem.lastupdate, 'zurich' ) %]</p>
- [%# XXX following should honour zurich_closed_states instead? %]
- [% IF problem.state == 'fixed - council'
- || ( problem.external_body AND problem.state == 'closed' ) %]
[% problem.extra.public_response | add_links | html_para %]
- [% END %]
</div>
</div>
</li>