aboutsummaryrefslogtreecommitdiffstats
path: root/templates/web
diff options
context:
space:
mode:
Diffstat (limited to 'templates/web')
-rw-r--r--templates/web/angus/footer.html4
-rw-r--r--templates/web/angus/maps/fms.html2
-rw-r--r--templates/web/angus/post_header_extra.html4
-rwxr-xr-xtemplates/web/base/about/faq-en-gb.html1
-rw-r--r--templates/web/base/admin/_translations.html19
-rw-r--r--templates/web/base/admin/body-form.html2
-rw-r--r--templates/web/base/admin/body.html31
-rw-r--r--templates/web/base/admin/category_edit.html31
-rw-r--r--templates/web/base/admin/config_page.html3
-rw-r--r--templates/web/base/admin/contact-form.html41
-rw-r--r--templates/web/base/admin/council_contacts.txt4
-rw-r--r--templates/web/base/admin/defecttypes/list.html2
-rw-r--r--templates/web/base/admin/extra-metadata-form.html81
-rw-r--r--templates/web/base/admin/list_updates.html2
-rw-r--r--templates/web/base/admin/problem_row.html8
-rw-r--r--templates/web/base/admin/report-category.html8
-rw-r--r--templates/web/base/admin/report_blocks.html27
-rw-r--r--templates/web/base/admin/reportextrafields/edit.html68
-rw-r--r--templates/web/base/admin/reportextrafields/index.html26
-rw-r--r--templates/web/base/admin/responsepriorities/edit.html12
-rw-r--r--templates/web/base/admin/responsepriorities/list.html4
-rw-r--r--templates/web/base/admin/state_groups_select.html2
-rw-r--r--templates/web/base/admin/states/index.html118
-rw-r--r--templates/web/base/admin/stats.html2
-rw-r--r--templates/web/base/admin/stats_by_state.html2
-rw-r--r--templates/web/base/alert/_list.html125
-rw-r--r--templates/web/base/alert/index.html2
-rw-r--r--templates/web/base/around/postcode_form.html2
-rwxr-xr-xtemplates/web/base/around/tabbed_lists.html2
-rw-r--r--templates/web/base/auth/general.html2
-rw-r--r--templates/web/base/auth/sign_out.html2
-rw-r--r--templates/web/base/auth/token.html10
-rw-r--r--templates/web/base/common_footer_tags.html2
-rw-r--r--templates/web/base/common_header_tags.html10
-rw-r--r--templates/web/base/common_scripts.html8
-rw-r--r--templates/web/base/contact/blurb.html6
-rw-r--r--templates/web/base/contact/index.html8
-rw-r--r--templates/web/base/contact/submit.html2
-rw-r--r--templates/web/base/dashboard/index.html13
-rw-r--r--templates/web/base/email_sent.html2
-rw-r--r--templates/web/base/footer.html2
-rw-r--r--templates/web/base/front/footer-marketing.html27
-rw-r--r--templates/web/base/front/javascript.html4
-rw-r--r--templates/web/base/front/recent.html2
-rw-r--r--templates/web/base/front/stats.html2
-rw-r--r--templates/web/base/js/translation_strings.html5
-rw-r--r--templates/web/base/main_nav.html6
-rw-r--r--templates/web/base/main_nav_items.html2
-rw-r--r--templates/web/base/maps/bing.html2
-rw-r--r--templates/web/base/maps/fms.html2
-rw-r--r--templates/web/base/maps/google-ol.html2
-rw-r--r--templates/web/base/maps/mapquest-attribution.html2
-rw-r--r--templates/web/base/maps/openlayers.html7
-rw-r--r--templates/web/base/maps/osm-streetview.html2
-rw-r--r--templates/web/base/maps/osm-toner-lite.html2
-rw-r--r--templates/web/base/maps/osm.html2
-rw-r--r--templates/web/base/my/anonymize.html26
-rw-r--r--templates/web/base/my/my.html2
-rw-r--r--templates/web/base/open311/index.html4
-rw-r--r--templates/web/base/pagination.html2
-rw-r--r--templates/web/base/questionnaire/completed.html2
-rw-r--r--templates/web/base/questionnaire/index.html4
-rw-r--r--templates/web/base/report/_inspect.html66
-rw-r--r--templates/web/base/report/_item.html16
-rw-r--r--templates/web/base/report/_main.html4
-rw-r--r--templates/web/base/report/_report_meta_info.html3
-rw-r--r--templates/web/base/report/_state_select_field.html11
-rw-r--r--templates/web/base/report/banner.html6
-rw-r--r--templates/web/base/report/display_tools.html2
-rw-r--r--templates/web/base/report/duplicate-no-updates.html2
-rw-r--r--templates/web/base/report/inspect/state_groups_select.html21
-rw-r--r--templates/web/base/report/new/category.html8
-rw-r--r--templates/web/base/report/new/category_extras.html9
-rw-r--r--templates/web/base/report/new/category_extras_fields.html2
-rw-r--r--templates/web/base/report/new/category_wrapper.html4
-rw-r--r--templates/web/base/report/new/form_report.html2
-rw-r--r--templates/web/base/report/new/form_user_loggedin.html16
-rw-r--r--templates/web/base/report/photo-js.html4
-rw-r--r--templates/web/base/report/update-form.html2
-rw-r--r--templates/web/base/report/update.html11
-rw-r--r--templates/web/base/report/update/form_name.html6
-rw-r--r--templates/web/base/report/update/form_update.html16
-rw-r--r--templates/web/base/reports/_list-filters.html25
-rwxr-xr-xtemplates/web/base/reports/body.html21
-rwxr-xr-xtemplates/web/base/reports/index.html147
-rw-r--r--templates/web/base/status/stats.html6
-rw-r--r--templates/web/base/tokens/confirm_alert.html2
-rw-r--r--templates/web/base/tokens/confirm_problem.html1
-rw-r--r--templates/web/base/tokens/confirm_update.html6
-rw-r--r--templates/web/borsetshire/around/postcode_form.html26
-rw-r--r--templates/web/borsetshire/auth/_general_top.html28
-rw-r--r--templates/web/borsetshire/footer_extra_js.html5
-rw-r--r--templates/web/borsetshire/header_site.html20
-rw-r--r--templates/web/bristol/footer.html4
-rw-r--r--templates/web/bristol/footer_extra_js.html2
-rw-r--r--templates/web/bristol/header_logo.html2
-rw-r--r--templates/web/bristol/maps/bristol.html2
-rw-r--r--templates/web/bromley/footer.html4
-rw-r--r--templates/web/bromley/front/footer-marketing.html2
-rw-r--r--templates/web/bromley/maps/bromley.html2
-rw-r--r--templates/web/bromley/report/new/after_photo.html8
-rw-r--r--templates/web/bromley/report/update-form.html29
-rw-r--r--templates/web/eastherts/footer.html51
-rw-r--r--templates/web/eastherts/header_extra.html2
-rw-r--r--templates/web/eastherts/header_logo.html25
-rw-r--r--templates/web/eastherts/header_site.html114
-rw-r--r--templates/web/fiksgatami/footer.html2
-rw-r--r--templates/web/fiksgatami/nn/footer.html2
-rwxr-xr-xtemplates/web/fixamingata/about/faq-sv.html2
-rw-r--r--templates/web/fixamingata/footer.html12
-rw-r--r--templates/web/fixamingata/front/tips.html2
-rw-r--r--templates/web/fixamingata/header_opengraph_image.html2
-rw-r--r--templates/web/fixamingata/report/new/after_title.html8
-rw-r--r--templates/web/fixamingata/report/new/inline-tips.html1
-rw-r--r--templates/web/fixamingata/report/new/notes.html8
-rw-r--r--templates/web/fixamingata/report/new/sidebar.html5
-rw-r--r--templates/web/fixmystreet-uk-councils/footer_extra_js.html2
-rw-r--r--templates/web/fixmystreet.com/about/council.html280
-rwxr-xr-xtemplates/web/fixmystreet.com/about/faq-en-gb.html6
-rw-r--r--templates/web/fixmystreet.com/about/professional.html720
-rw-r--r--templates/web/fixmystreet.com/contact/blurb.html18
-rw-r--r--templates/web/fixmystreet.com/contact/who.html2
-rw-r--r--templates/web/fixmystreet.com/footer_extra.html8
-rw-r--r--templates/web/fixmystreet.com/footer_extra_js.html4
-rw-r--r--templates/web/fixmystreet.com/front/footer-marketing.html24
-rw-r--r--templates/web/fixmystreet.com/front/javascript.html4
-rw-r--r--templates/web/fixmystreet.com/next_steps.html24
-rw-r--r--templates/web/fixmystreet.com/questionnaire/completed-open.html2
-rw-r--r--templates/web/fixmystreet.com/report/_report_meta_info.html5
-rw-r--r--templates/web/fixmystreet.com/report/banner.html2
-rw-r--r--templates/web/fixmystreet.com/report/new/unresponsive_body.html2
-rw-r--r--templates/web/fixmystreet.com/report/updates-sidebar-notes.html2
-rwxr-xr-xtemplates/web/fixmystreet.com/reports/_extras.html31
-rw-r--r--templates/web/fixmystreet.com/static/unresponsive.html2
-rw-r--r--templates/web/greenwich/footer.html4
-rw-r--r--templates/web/greenwich/front/footer-marketing.html2
-rw-r--r--templates/web/greenwich/header_logo.html2
-rw-r--r--templates/web/hart/footer.html118
-rw-r--r--templates/web/oxfordshire/_email_sent_extra.html1
-rw-r--r--templates/web/oxfordshire/_response_time.html14
-rw-r--r--templates/web/oxfordshire/footer.html9
-rw-r--r--templates/web/oxfordshire/footer_extra_js.html3
-rwxr-xr-xtemplates/web/oxfordshire/front/_list-entry.html5
-rw-r--r--templates/web/oxfordshire/header.html8
-rw-r--r--templates/web/oxfordshire/report/_council_sent_info.html15
-rw-r--r--templates/web/oxfordshire/report/_inspect_extra_info.html8
-rw-r--r--templates/web/oxfordshire/report/inspect/state_groups_select.html21
-rw-r--r--templates/web/oxfordshire/tokens/_extras_confirm.html1
-rw-r--r--templates/web/stevenage/footer.html12
-rw-r--r--templates/web/warwickshire/header.html41
-rw-r--r--templates/web/whitelabel/footer_extra.html0
-rw-r--r--templates/web/whitelabel/front/footer-marketing.html0
-rw-r--r--templates/web/whitelabel/next_steps.html0
-rw-r--r--templates/web/zurich/admin/body.html2
-rw-r--r--templates/web/zurich/admin/contact-form.html10
-rw-r--r--templates/web/zurich/admin/index.html2
-rw-r--r--templates/web/zurich/admin/problem_row.html2
-rw-r--r--templates/web/zurich/admin/report_edit-sdm.html2
-rw-r--r--templates/web/zurich/admin/report_edit.html6
-rw-r--r--templates/web/zurich/footer.html4
-rw-r--r--templates/web/zurich/header.html2
-rw-r--r--templates/web/zurich/maps/zurich.html2
-rw-r--r--templates/web/zurich/report/_main.html2
-rwxr-xr-xtemplates/web/zurich/reports/index.html18
164 files changed, 1960 insertions, 1094 deletions
diff --git a/templates/web/angus/footer.html b/templates/web/angus/footer.html
index ec91aaa71..f9e1f3a99 100644
--- a/templates/web/angus/footer.html
+++ b/templates/web/angus/footer.html
@@ -3,8 +3,8 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 %]
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area %]
</div>
</div>
</div> <!-- .wrapper -->
diff --git a/templates/web/angus/maps/fms.html b/templates/web/angus/maps/fms.html
index 1516ae05e..61c56f121 100644
--- a/templates/web/angus/maps/fms.html
+++ b/templates/web/angus/maps/fms.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.angus.js'),
+ version('/vendor/OpenLayers/OpenLayers.angus.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-bing-ol.js'),
version('/js/map-fms.js'),
diff --git a/templates/web/angus/post_header_extra.html b/templates/web/angus/post_header_extra.html
index 43ba8af92..0c30e1a45 100644
--- a/templates/web/angus/post_header_extra.html
+++ b/templates/web/angus/post_header_extra.html
@@ -7,8 +7,8 @@
</div>
</div>
-<div class="wrapper wrapper__main_menu">
+<div class="clearfix wrapper__main_menu">
<div class="container">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 ul_class="nav-menu nav-menu--breadcrumb" omit_wrapper=1 %]
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area ul_class="nav-menu nav-menu--breadcrumb" omit_wrapper=1 %]
</div>
</div>
diff --git a/templates/web/base/about/faq-en-gb.html b/templates/web/base/about/faq-en-gb.html
index fc087a0e6..0ddc1b73d 100755
--- a/templates/web/base/about/faq-en-gb.html
+++ b/templates/web/base/about/faq-en-gb.html
@@ -99,6 +99,7 @@ to update the address or addresses we use.</dd>
you&rsquo;re from the authority then the emailed version of the problem
report might also contain the closest road or postcode to the pin on the
map.</dd>
+</dl>
<h2><a name="organisation"></a>Organisation Questions</h2>
diff --git a/templates/web/base/admin/_translations.html b/templates/web/base/admin/_translations.html
new file mode 100644
index 000000000..d8f7d52fb
--- /dev/null
+++ b/templates/web/base/admin/_translations.html
@@ -0,0 +1,19 @@
+[% IF languages.size > 1 %]
+<h2>[% loc('Translations') %]</h2>
+ <input type="hidden" name="token" value="[% csrf_token %]" >
+<table>
+ <tr>
+ <th>[% loc('Language') %]</th>
+ <th>[% loc('Translation') %]</th>
+ </tr>
+ [% FOREACH language IN languages.keys.sort %]
+ <tr>
+ <td>
+ <label for="translation_[% language %]">[% languages.$language.name %] ([% language %])</label>
+ <input type="hidden" name="translation_id_[% language %]" value="[% translations.$language.id %]">
+ </td>
+ <td><input type="text" name="translation_[% language %]" id="translation_[% language %]" value="[% translations.$language.msgstr %]"></td>
+ </tr>
+ [% END %]
+</table>
+[% END %]
diff --git a/templates/web/base/admin/body-form.html b/templates/web/base/admin/body-form.html
index 6c750bcaf..55d0e500c 100644
--- a/templates/web/base/admin/body-form.html
+++ b/templates/web/base/admin/body-form.html
@@ -25,6 +25,8 @@
<input type="text" class="form-control" name="name" id="name" value="[% body.name | html %]" size="50">
</p>
+ [% INCLUDE 'admin/_translations.html' %]
+
<div class="admin-hint">
<p>
[% loc(
diff --git a/templates/web/base/admin/body.html b/templates/web/base/admin/body.html
index 5e8c6a164..7fa446f44 100644
--- a/templates/web/base/admin/body.html
+++ b/templates/web/base/admin/body.html
@@ -70,7 +70,7 @@
<table cellspacing="0" cellpadding="2" border="1">
<tr>
<th>[% loc('Category') %]</th>
- <th colspan=2>[% loc('State') %]</th>
+ <th>[% loc('State') %]</th>
<th>[% loc('Last editor') %]</th>
<th>[% loc('Note') %]</th>
[% IF any_not_confirmed %]
@@ -78,20 +78,20 @@
[% END %]
</tr>
[% WHILE ( cat = contacts.next ) %]
- <tr [% IF cat.deleted %]class="is-deleted"[% END %]>
- <td class="contact-category"><a href="[% c.uri_for( 'body', body_id, cat.category ) %]">[% cat.category | html %]</a>
+ <tr [% IF cat.state == 'deleted' %]class="is-deleted"[% END %]>
+ <td class="contact-category"><a href="[% c.uri_for( 'body', body_id, cat.category ) %]">[% cat.category_display | html %]</a>
<br>[% cat.email | html %]</td>
<td>
- [% loc('Confirmed') %]:&nbsp;
- [%- IF cat.confirmed %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]
- <br>[% loc('Deleted') %]:&nbsp;
- [%- IF cat.deleted %]<strong>[% loc('Yes') %]</strong>[% ELSE %][% loc('No') %][% END %]
- </td>
- <td>
- [% loc('Private') %]:&nbsp;
- [%- cat.non_public ? loc('Yes') : loc('No') %]
- <br>[% loc('Devolved') %]:&nbsp;
- [%- IF body.can_be_devolved AND cat.send_method %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]
+ [% cat.state %]
+ [% IF cat.non_public OR (body.can_be_devolved AND cat.send_method) %]
+ <br><small>
+ [% IF cat.non_public %][% loc('Private') %][% END %]
+ [% IF cat.non_public AND (body.can_be_devolved AND cat.send_method) %]
+ /
+ [% END %]
+ [% IF body.can_be_devolved AND cat.send_method %][% loc('Devolved') %][% END %]
+ </small>
+ [% END %]
</td>
<td>[% cat.editor | html %]
<br><small>[% PROCESS format_time time=cat.whenedited %]</small></td>
@@ -130,9 +130,10 @@
<div class="fms-admin-warning">
[% errors.values.join('<br>') %]
</div>
+ [% INCLUDE 'admin/contact-form.html' translations=contact_translations %]
+ [% ELSE %]
+ [% INCLUDE 'admin/contact-form.html' translations={} %]
[% END %]
-
- [% INCLUDE 'admin/contact-form.html' %]
</div>
[% IF NOT errors and c.user.is_superuser %]
diff --git a/templates/web/base/admin/category_edit.html b/templates/web/base/admin/category_edit.html
index 5eb3c943e..7ae4e59b4 100644
--- a/templates/web/base/admin/category_edit.html
+++ b/templates/web/base/admin/category_edit.html
@@ -21,38 +21,12 @@
[% INCLUDE 'admin/contact-form.html' %]
-[% IF contact.extra %]
-<h2>[% loc('Extra data:') %] </h2>
-<dl>
- [% FOR pair IN contact.get_extra_metadata %]
- <dt>[% pair.key %]</dt> <dd>[% pair.value %]</dd>
- [% END %]
-</dl>
-<ul>
- [% FOR meta IN contact.get_metadata_for_input %]
- <li>
- [% meta.order %], <code>[% meta.code %]</code>, [% meta.datatype %],
- [% meta.required == 'true' ? loc('required') : loc('optional') %]
- <br><small>[% meta.description %]</small>
- [% IF meta.variable != 'false' AND meta.exists('values') %]
- <ul>
- [% FOR option IN meta.values %]
- <li>[% option.name %] <small>([% option.key %])</small></li>
- [% END %]
- </ul>
- [%- END %]
- </li>
- [%- END %]
-</ul>
-[% END %]
-
<h2>[% loc('History') %]</h2>
<table border="1">
<tr>
<th>[% loc('When edited') %]</th>
<th>[% loc('Email') %]</th>
- <th>[% loc('Confirmed') %]</th>
- <th>[% loc('Deleted') %]</th>
+ <th>[% loc('State') %]</th>
<th>[% loc('Editor') %]</th>
<th>[% loc('Note') %]</th>
</tr>
@@ -61,8 +35,7 @@
<tr>
<td>[% contact.whenedited.ymd _ ' ' _ contact.whenedited.hms %]</td>
<td>[% PROCESS highlightchanged old=prev new=contact value='email' %]</td>
- <td>[% PROCESS highlightchanged_yesno old=prev new=contact value='confirmed' %]</td>
- <td>[% PROCESS highlightchanged_yesno old=prev new=contact value='deleted' %]</td>
+ <td>[% PROCESS highlightchanged old=prev new=contact value='state' %]</td>
<td>[% contact.editor | html %]</td>
<td>[% contact.note | html %]</td>
</tr>
diff --git a/templates/web/base/admin/config_page.html b/templates/web/base/admin/config_page.html
index f35cd6adb..87032b0b6 100644
--- a/templates/web/base/admin/config_page.html
+++ b/templates/web/base/admin/config_page.html
@@ -88,6 +88,9 @@ running version <strong>[% git_version || 'unknown' %]</strong>.
[% INCLUDE subsection heading="MapIt" %]
[% INCLUDE just_value value="MAPIT_URL"
conf = "<a href='" _ c.config.MAPIT_URL _ "'>" _ c.config.MAPIT_URL _ "</a>" %]
+[% IF c.config.MAPIT_API_KEY %]
+ [% INCLUDE just_value value="MAPIT_API_KEY" %]
+[% END %]
[% INCLUDE with_cobrand value="MAPIT_TYPES"
cob = c.cobrand.area_types %]
<tr>
diff --git a/templates/web/base/admin/contact-form.html b/templates/web/base/admin/contact-form.html
index 493d8020f..1157e781e 100644
--- a/templates/web/base/admin/contact-form.html
+++ b/templates/web/base/admin/contact-form.html
@@ -2,7 +2,7 @@
[% IF contact.in_storage %]
<p>
- <h1>[% contact.category | html %]</h2>
+ <h1>[% contact.category_display | html %]</h1>
<input type="hidden" name="category" value="[% contact.category | html %]" >
</p>
[% ELSE %]
@@ -20,6 +20,8 @@
</p>
[% END %]
+ [% INCLUDE 'admin/_translations.html' %]
+
<div class="admin-hint">
<p>
[% loc("The <strong>email address</strong> is the destination to which reports about this category will be sent.
@@ -38,24 +40,23 @@
<div class="admin-hint">
<p>
- [% loc("Check <strong>confirmed</strong> to indicate that this contact has been confirmed as correct.
- If you are not sure of the origin or validity of the contact, leave this unchecked.") %]
+ [%
+loc("Use <strong>confirmed</strong> to indicate that this contact has been
+confirmed as correct. If you are not sure of the origin or validity of the
+contact, use <strong>unconfirmed</strong>. <strong>inactive</strong> will
+remove the category from use when reporting problems, but keep it available in
+map filters, and <strong>deleted</strong> will remove the category from there
+as well.") %]
</p>
</div>
<p>
- <input type="checkbox" name="confirmed" value="1" id="confirmed"[% ' checked' IF contact.confirmed OR contact.confirmed == "" %]>
- <label for="confirmed" class="inline">[% loc('Confirmed') %]</label>
- </p>
-
- <div class="admin-hint">
- <p>
- [% loc("Check <strong>deleted</strong> to remove the category from use.
- It will not appear as an available category in the drop-down menu on the report-a-problem page.") %]
- </p>
- </div>
- <p>
- <input type="checkbox" name="deleted" value="1" id="deleted"[% ' checked' IF contact.deleted %]>
- <label for="deleted" class="inline">[% loc('Deleted') %]</label>
+ <label for="state">[% loc('State') %]</label>
+ <select name="state" id="state">
+ <option value="unconfirmed"[% ' selected' IF contact.state == 'unconfirmed' %]>[% loc('Unconfirmed') %]
+ <option value="confirmed"[% ' selected' IF contact.state == 'confirmed' || contact.state == "" %]>[% loc('Confirmed') %]
+ <option value="inactive"[% ' selected' IF contact.state == 'inactive' %]>[% loc('Inactive') %]
+ <option value="deleted"[% ' selected' IF contact.state == 'deleted' %]>[% loc('Deleted') %]
+ </select>
</p>
<div class="admin-hint">
@@ -136,4 +137,12 @@
<input type="hidden" name="token" value="[% csrf_token %]" >
<input type="submit" class="btn" name="Create category" value="[% contact.in_storage ? loc('Save changes') : loc('Create category') %]" >
</p>
+
+ <h2>[% loc('Extra data:') %] </h2>
+ <dl>
+ [% FOR pair IN contact.get_extra_metadata %]
+ <dt>[% pair.key %]</dt> <dd>[% pair.value %]</dd>
+ [% END %]
+ </dl>
+ [% INCLUDE 'admin/extra-metadata-form.html' metas=(contact.get_metadata_for_input OR []) %]
</form>
diff --git a/templates/web/base/admin/council_contacts.txt b/templates/web/base/admin/council_contacts.txt
index 2d1e04bfa..f11615789 100644
--- a/templates/web/base/admin/council_contacts.txt
+++ b/templates/web/base/admin/council_contacts.txt
@@ -1,4 +1,4 @@
[% WHILE ( contact = contacts.next ) -%]
-[%- NEXT IF contact.deleted || ! contact.confirmed %]
-[% contact.category %] [% contact.email %]
+[%- NEXT IF contact.state != 'confirmed' %]
+[% contact.category_display %] [% contact.email %]
[%- END %]
diff --git a/templates/web/base/admin/defecttypes/list.html b/templates/web/base/admin/defecttypes/list.html
index 783bd085c..ffff89eff 100644
--- a/templates/web/base/admin/defecttypes/list.html
+++ b/templates/web/base/admin/defecttypes/list.html
@@ -20,7 +20,7 @@
<em>[% ('All categories') %]</em>
[% ELSE %]
[% FOR contact IN d.contacts %]
- [% contact.category %][% ',' UNLESS loop.last %]
+ [% contact.category_display %][% ',' UNLESS loop.last %]
[% END %]
[% END %]
</td>
diff --git a/templates/web/base/admin/extra-metadata-form.html b/templates/web/base/admin/extra-metadata-form.html
new file mode 100644
index 000000000..6a88a3c1e
--- /dev/null
+++ b/templates/web/base/admin/extra-metadata-form.html
@@ -0,0 +1,81 @@
+<ul class="js-metadata-items">
+ [% FOR meta IN metas.merge([{}]) %]
+ <li class="js-metadata-item [% IF loop.last %]hidden-js js-metadata-item-template[% END %]" data-index="[% loop.index %]">
+ <button class="btn btn--small js-metadata-item-remove hidden-nojs">[% loc('Remove field') %]</button>
+
+ <div class="admin-hint"><p>[% loc('The ordering of this field on the report page. Fields are shown in ascending order according to this value.') %]</p></div>
+ <label>
+ [% loc('Order') %]
+ <input name="metadata[[% loop.index %]].order" data-field-name="order" type=text value="[% meta.order | html %]">
+ </label>
+
+ <div class="admin-hint"><p>[% loc('The code used to store this field value in the database. e.g. <code>address</code> would be available as <code>problem.extra.address</code> in the templates.') %]</p></div>
+ <label>
+ [% loc('Code') %]
+ <input name="metadata[[% loop.index %]].code" data-field-name="code" type=text value="[% meta.code | html %]">
+ </label>
+
+ <div class="admin-hint"><p>[% loc('Whether the user is required to provide a value for this field.') %]</p></div>
+ <label>
+ [% loc('Required') %]
+ <input name="metadata[[% loop.index %]].required" data-field-name="required" type=checkbox [% meta.required == 'true' ? 'checked' : '' %]>
+ </label>
+
+ <div class="admin-hint"><p>[% loc('If ticked the user won’t see an input field, just the ‘Description’ text.') %]</p></div>
+ <label>
+ [% loc('Notice') %]
+ <input name="metadata[[% loop.index %]].notice" data-field-name="notice" type=checkbox [% meta.variable == 'false' ? 'checked' : '' %]>
+ </label>
+
+ <div class="admin-hint"><p>[% loc('The field name as shown to the user on the report form.') %]</p></div>
+ <label>
+ [% loc('Description') %]
+ <input name="metadata[[% loop.index %]].description" data-field-name="description" type=text value="[% meta.description | html %]">
+ </label>
+
+ <div class="admin-hint"><p>[% loc('Can be used to display extra text to the user alongside the field. The default template does not show this (<code>meta.datatype_description</code>), you must add it in <code>category_extras_fields.html</code>') %]</p></div>
+ <label>
+ [% loc('Hint') %]
+ <input name="metadata[[% loop.index %]].datatype_description" data-field-name="datatype_description" type=text value="[% meta.datatype_description | html %]">
+ </label>
+
+ <div class="admin-hint"><p>[% loc('The type of input field to show to the user. <strong>Text</strong> is a simple text field, <strong>List</strong> is a drop-down selection.') %]</p></div>
+ <label>
+ [% loc('Type') %]
+ <select name="metadata[[% loop.index %]].datatype" data-field-name="datatype" class="js-metadata-item-type">
+ <option value="string" [% meta.datatype == 'string' ? 'selected' : '' %]>[% loc('String') %]</option>
+ <option value="singlevaluelist" [% meta.datatype == 'singlevaluelist' ? 'selected' : '' %]>[% loc('List') %]</option>
+ </select>
+ </label>
+
+ <div class="js-metadata-options">
+ <div class="admin-hint"><p>[% loc('For each option, <strong>Key</strong> is the value which is stored in the database for that option and <strong>Name</strong> is the value displayed to the user.') %]</p></div>
+ [% loc('Options') %]<span class="hidden-js"> [% loc('(ignored if type is "String")') %]</span>
+ <ul>
+ [% outer_loop = loop %]
+ [% values = meta.values OR [] %]
+ [% FOREACH option IN values.merge([{}]) %]
+ [%# the .merge() call is so there's an empty one on the end %]
+ <li class="js-metadata-option [% IF loop.last %]hidden-js js-metadata-option-template[% END %]">
+ <label>
+ [% loc('Key') %]
+ <input class="js-metadata-option-key" name="metadata[[% outer_loop.index %]].values[[% loop.index %]].key" type="text" value="[% option.key | html %]">
+ </label>
+ <label>
+ [% loc('Name') %]
+ <input class="js-metadata-option-name" name="metadata[[% outer_loop.index %]].values[[% loop.index %]].name" type="text" value="[% option.name | html %]">
+ </label>
+ <button class="btn btn--small js-metadata-option-remove hidden-nojs">[% loc('Remove') %]</button>
+ </li>
+ [% END %]
+ <li class="hidden-nojs">
+ <button class="btn btn--small js-metadata-option-add">[% loc('Add option') %]</button>
+ </li>
+ </ul>
+ </div>
+ </li>
+ [%- END %]
+ <li class="hidden-nojs">
+ <button class="btn btn--small js-metadata-item-add">[% loc('Add field') %]</button>
+ </li>
+</ul>
diff --git a/templates/web/base/admin/list_updates.html b/templates/web/base/admin/list_updates.html
index 35f7adf66..d759a2354 100644
--- a/templates/web/base/admin/list_updates.html
+++ b/templates/web/base/admin/list_updates.html
@@ -34,7 +34,7 @@
<td>[% IF update.user.id == update.problem.user_id %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% IF update.user.belongs_to_body( update.problem.bodies_str ) %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% update.cobrand %]<br>[% update.cobrand_data | html %]</td>
- <td>[% state_pretty.${update.state} %]<br><small>
+ <td>[% prettify_state(update.state) %]<br><small>
[% loc('Created:') %] [% PROCESS format_time time=update.created %]
<br>[% loc('Confirmed:') %] [% PROCESS format_time time=update.confirmed %]
</small></td>
diff --git a/templates/web/base/admin/problem_row.html b/templates/web/base/admin/problem_row.html
index 577e36992..446e94d66 100644
--- a/templates/web/base/admin/problem_row.html
+++ b/templates/web/base/admin/problem_row.html
@@ -20,7 +20,7 @@
<br>[% loc('Anonymous') %]: [% IF problem.anonymous %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]
</td>
<td>
- [% PROCESS value_or_nbsp value=problem.category %]
+ [% PROCESS value_or_nbsp value=problem.category_display %]
<br>[%- IF edit_body_contacts -%]
[% FOR body IN problem.bodies.values %]
<a href="[% c.uri_for('body', body.id ) %]">[% PROCESS value_or_nbsp value=body.name %]</a>
@@ -30,12 +30,12 @@
[%- END -%]
<br>[% problem.cobrand %]<br>[% problem.cobrand_data | html %]
</td>
- <td>[% state_pretty.${problem.state} %]<br><small>
+ <td>[% prettify_state(problem.state, 1) %]<br><small>
[% loc('Created') %]:&nbsp;[% PROCESS format_time time=problem.created %]
<br>[% loc('When sent') %]:&nbsp;[% PROCESS format_time time=problem.whensent %]
[%- IF problem.is_visible %]<br>[% loc('Confirmed:' ) %]&nbsp;[% PROCESS format_time time=problem.confirmed %][% END -%]
- [%- IF problem.is_fixed %]<br>[% loc('Fixed:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%]
- [%- IF problem.is_closed %]<br>[% loc('Closed:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%]
+ [%- IF problem.is_fixed %]<br>[% prettify_state('fixed') %]: [% PROCESS format_time time=problem.lastupdate %][% END -%]
+ [%- 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>
diff --git a/templates/web/base/admin/report-category.html b/templates/web/base/admin/report-category.html
index 1e39236d7..a2290089b 100644
--- a/templates/web/base/admin/report-category.html
+++ b/templates/web/base/admin/report-category.html
@@ -1,13 +1,13 @@
<select class="form-control" name="category" id="category">
[% IF NOT problem.category OR NOT categories_hash.${problem.category} %]
<optgroup label="[% loc('Existing category') %]">
- <option selected value="[% problem.category | html %]">[% (problem.category OR '-') | html %]</option>
+ <option selected value="[% problem.category | html %]">[% (problem.category_display OR '-') | html %]</option>
</optgroup>
[% END %]
- [% IF categories.size %]
+ [% IF category_options_copy.size %]
<optgroup label="[% loc('Available categories') %]">
- [% FOREACH cat IN categories %]
- <option[% ' selected' IF problem.category == cat %]>[% cat | html %]</option>
+ [% FOREACH cat IN category_options_copy %]
+ <option value="[% cat.name | html %]"[% ' selected' IF problem.category == cat.name %]>[% cat.value | html %]</option>
[% END %]
</optgroup>
[% END %]
diff --git a/templates/web/base/admin/report_blocks.html b/templates/web/base/admin/report_blocks.html
index 9231dd1c2..f5896b88f 100644
--- a/templates/web/base/admin/report_blocks.html
+++ b/templates/web/base/admin/report_blocks.html
@@ -1,32 +1,7 @@
[%
SET report_blocks_included = 1;
-
-SET state_pretty = {
- 'confirmed' = loc('Open')
- 'investigating' = loc('Investigating')
- 'planned' = loc('Planned')
- 'in progress' = loc('In progress')
- 'action scheduled' = loc('Action Scheduled')
- 'fixed' = loc('Fixed')
- 'fixed - user' = loc('Fixed - User')
- 'fixed - council' = loc('Fixed - Council')
- 'unable to fix' = loc('No further action')
- 'not responsible' = loc('Not Responsible')
- 'duplicate' = loc('Duplicate')
- 'closed' = loc('Closed')
- 'internal referral' = loc('Internal referral')
- 'hidden' = loc('Hidden')
- 'partial' = loc('Partial')
- 'unconfirmed' = loc('Unconfirmed')
-};
-
-SET state_groups = [
- [ loc('Open'), [ 'confirmed', 'investigating', 'planned', 'in progress', 'action scheduled' ] ],
- [ loc('Fixed'), [ 'fixed', 'fixed - user', 'fixed - council' ] ],
- [ loc('Closed'), [ 'unable to fix', 'not responsible', 'duplicate', 'closed', 'internal referral' ] ],
- [ loc('Hidden'), [ 'hidden', 'partial', 'unconfirmed' ] ]
-];
+SET state_groups = c.cobrand.state_groups_admin;
%]
diff --git a/templates/web/base/admin/reportextrafields/edit.html b/templates/web/base/admin/reportextrafields/edit.html
new file mode 100644
index 000000000..bc2f60ab3
--- /dev/null
+++ b/templates/web/base/admin/reportextrafields/edit.html
@@ -0,0 +1,68 @@
+[% INCLUDE 'admin/header.html' title=loc('Extra Fields') -%]
+
+<form method=post action="[% c.uri_for('', extra.id || 'new' ) %]">
+ <div class="admin-hint">
+ <p>
+ [% loc('Give this collection of fields a name. It is not shown publicly, just here in the admin.') %]
+ </p>
+ </div>
+ <p>
+ <label>
+ [% loc('Name') %]
+ <input type=text name="name" value="[% extra.name | html %]" />
+ </label>
+ </p>
+
+ [% IF cobrands.size > 1 %]
+ <div class="admin-hint">
+ <p>
+ [% loc('To limit this collection of fields to a single cobrand, select it here.') %]
+ </p>
+ </div>
+ <p>
+ <label>
+ [% loc('Cobrand') %]
+ <select name="cobrand">
+ <option value="">[% loc('All cobrands') %]</option>
+ [% FOREACH cobrand IN cobrands %]
+ <option value="[% cobrand | html %]" [% IF cobrand == extra.cobrand %]selected[% END %]>[% cobrand | html %]</option>
+ [% END %]
+ </select>
+ </label>
+ </p>
+ [% ELSE %]
+ <input type=hidden name=cobrand value="[% extra.cobrand | html %]" />
+ [% END %]
+
+ [% IF languages.size > 1 %]
+ <div class="admin-hint">
+ <p>
+ [% loc('To limit this collection of fields to a single language, select it here.') %]
+ </p>
+ </div>
+ <p>
+ <label>
+ [% loc('Language') %]
+ <select name="language">
+ <option value="">[% loc('All languages') %]</option>
+ [% FOREACH lang IN languages.pairs %]
+ <option value="[% lang.key | html %]" [% IF lang.key == extra.language %]selected[% END %]>[% lang.value.name | html %]</option>
+ [% END %]
+ </select>
+ </label>
+ </p>
+ [% ELSE %]
+ <input type=hidden name=language value="[% extra.language | html %]" />
+ [% END %]
+ <p>
+ <label>[% loc('Fields') %]</label>
+ [% INCLUDE 'admin/extra-metadata-form.html' metas=extra.get_extra_fields %]
+ </p>
+
+ <p>
+ <input type="hidden" name="token" value="[% csrf_token %]" >
+ <input type="submit" class="btn" name="save" value="[% extra.in_storage ? loc('Save changes') : loc('Save new fields') %]">
+ </p>
+</form>
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/base/admin/reportextrafields/index.html b/templates/web/base/admin/reportextrafields/index.html
new file mode 100644
index 000000000..14d6f60d4
--- /dev/null
+++ b/templates/web/base/admin/reportextrafields/index.html
@@ -0,0 +1,26 @@
+[% INCLUDE 'admin/header.html' title=loc('Extra Fields') -%]
+
+<table>
+ <thead>
+ <tr>
+ <th>[% loc('Name') %]</th>
+ <th>[% loc('Cobrand') %]</th>
+ <th>[% loc('Languages') %]</th>
+ <th>[% loc('Fields') %]</th>
+ </tr>
+ </thead>
+ <tbody>
+ [% FOR f IN extra_fields %]
+ <tr>
+ <td><a href="[% c.uri_for('', f.id) %]">[% f.name | html %]</a></td>
+ <td>[% f.cobrand | html %]</td>
+ <td>[% f.language | html %]</td>
+ <td>[% f.get_extra_fields.size %]</td>
+ </tr>
+ [% END %]
+ </tbody>
+</table>
+
+<a href="[% c.uri_for('', 'new') %]" class="btn">[% loc('Add extra fields') %]</a>
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/base/admin/responsepriorities/edit.html b/templates/web/base/admin/responsepriorities/edit.html
index 07d6906ba..608f19e74 100644
--- a/templates/web/base/admin/responsepriorities/edit.html
+++ b/templates/web/base/admin/responsepriorities/edit.html
@@ -30,6 +30,18 @@
<div class="admin-hint">
<p>
+ [% loc('Select if this is the default priority') %]
+ </p>
+ </div>
+ <p>
+ <label>
+ <input type="checkbox" name="is_default" is="is_deleted" value="1"[% ' checked' IF rp.is_default %]>
+ [% loc('Default priority') %]
+ </label>
+ </p>
+
+ <div class="admin-hint">
+ <p>
[% loc('If you only want this priority to be an option for specific categories, pick them here. By default they will show for all categories.') %]
</p>
</div>
diff --git a/templates/web/base/admin/responsepriorities/list.html b/templates/web/base/admin/responsepriorities/list.html
index 4c05ca14d..eedaccfdb 100644
--- a/templates/web/base/admin/responsepriorities/list.html
+++ b/templates/web/base/admin/responsepriorities/list.html
@@ -6,6 +6,7 @@
<th> [% loc('Name') %] </th>
<th> [% loc('Description') %] </th>
<th> [% loc('Categories') %] </th>
+ <th> [% loc('Default') %] </th>
<th> &nbsp; </th>
</tr>
</thead>
@@ -19,10 +20,11 @@
<em>[% loc('All categories') %]</em>
[% ELSE %]
[% FOR contact IN p.contacts %]
- [% contact.category %][% ',' UNLESS loop.last %]
+ [% contact.category_display %][% ',' UNLESS loop.last %]
[% END %]
[% END %]
</td>
+ <td> [% IF p.is_default %]X[% END %]</td>
<td> <a href="[% c.uri_for('', body.id, p.id) %]" class="btn">[% loc('Edit') %]</a> </td>
</tr>
[% END %]
diff --git a/templates/web/base/admin/state_groups_select.html b/templates/web/base/admin/state_groups_select.html
index 9a70cd2c9..87674c47d 100644
--- a/templates/web/base/admin/state_groups_select.html
+++ b/templates/web/base/admin/state_groups_select.html
@@ -1,3 +1,3 @@
[% PROCESS 'admin/report_blocks.html'; # For state_groups %]
[% DEFAULT current_state = problem.state %]
-[% INCLUDE 'report/_state_select_field.html' %]
+[% INCLUDE 'report/_state_select_field.html' single_fixed=0 %]
diff --git a/templates/web/base/admin/states/index.html b/templates/web/base/admin/states/index.html
new file mode 100644
index 000000000..1b68d4aea
--- /dev/null
+++ b/templates/web/base/admin/states/index.html
@@ -0,0 +1,118 @@
+[% INCLUDE 'admin/header.html' title=loc('States') ~%]
+
+[% SET rows = languages.size + 1 IF languages.size > 1 ~%]
+
+<form method="post" accept-charset="utf-8">
+
+<table>
+ <tr>
+ <th>[% loc('Label') %]</th>
+ <th>[% loc('Type') %]</th>
+ <th colspan="2">[% loc('Name') %]</th>
+ <th>&nbsp;</th>
+ </tr>
+ [% FOREACH state IN open_states.merge(closed_states).merge(fixed_states) %]
+ <tr>
+ <td rowspan="[% rows %]">
+ [% IF state.label == 'confirmed' %]
+ open
+ [% ELSE %]
+ [% state.label %]
+ [% END %]
+ </td>
+ <td rowspan="[% rows %]">
+ [% IF state.label == 'confirmed' %]
+ [% loc('Open') %]<input type="hidden" name="type:confirmed" value="open">
+ [% ELSIF state.label == 'closed' %]
+ [% loc('Closed') %]<input type="hidden" name="type:closed" value="closed">
+ [% ELSIF state.label == 'fixed' %]
+ [% loc('Fixed') %]<input type="hidden" name="type:fixed" value="fixed">
+ [% ELSE %]
+ <select name="type:[% state.label %]">
+ <option value="open"[% ' selected' IF state.type == 'open' %]>[% loc('Open') %]</option>
+ <option value="closed"[% ' selected' IF state.type == 'closed' %]>[% loc('Closed') %]</option>
+ </select>
+ [% END %]
+ </td>
+ <td colspan="2">
+ [% IF state.label != 'confirmed' AND state.label != 'closed' %]
+ <input type="text" name="name:[% state.label %]" value="[% state.name %]">
+ [% ELSIF languages.size == 1 %]
+ <input type="text" name="name:[% state.label %]" value="[% state.msgstr %]">
+ [% ELSE %]
+ [% state.name %]
+ [% END %]
+ </td>
+ <td style="text-align:center;vertical-align:middle" rowspan="[% rows %]">
+ [% IF state.label != 'confirmed' AND state.label != 'closed' %]
+ <input class="btn btn--small" type="submit" name="delete:[% state.label %]" value="Delete">
+ [% END %]
+ </td>
+ </tr>
+ [% IF languages.size > 1 %]
+ [% FOREACH language IN languages.keys.sort %]
+ <tr>
+ <td style="vertical-align:middle; text-align:right;">
+ <label style="margin:0" for="translation:[% state.label %]:[% language %]">
+ [% languages.$language.name %] ([% language %])
+ </label>
+ </td>
+ <td>
+ <input type="hidden" name="translation_id:[% state.label %]:[% language %]"
+ value="[% state.translated.name.$language.id %]">
+ <input type="text" name="translation:[% state.label %]:[% language %]"
+ id="translation:[% state.label %]:[% language %]" value="[% state.translated.name.$language.msgstr %]">
+ </td>
+ </tr>
+ [% END %]
+ [% END %]
+ </td>
+ </tr>
+ [% END %]
+</table>
+
+ <p>
+ <input type="hidden" name="token" value="[% csrf_token %]">
+ <input type="submit" class="btn" value="[% loc('Update') %]">
+ </p>
+
+</form>
+
+[% IF fixed_states.size == 0 %]
+<form method="post" accept-charset="utf-8">
+ <p>
+ <input type="hidden" name="token" value="[% csrf_token %]">
+ <input type="submit" class="btn" name="new_fixed" value="[% loc('Add fixed state') %]">
+ </p>
+</form>
+
+[% END %]
+
+<h2>[% loc('New state') %]</h2>
+
+<form method="post" accept-charset="utf-8">
+ <p>
+ <label for="label">[% loc('Label') %] <small>[% loc('(a-z and space only)') %]</small></label>
+ <input type="text" class="form-control" name="label" id="label" value="" size="20" pattern="[a-z ]+">
+ </p>
+
+ <p>
+ <label for="type">[% loc('Type') %]</label>
+ <select name="type" id="type">
+ <option value="open">[% loc('Open') %]</option>
+ <option value="closed">[% loc('Closed') %]</option>
+ </select>
+ </p>
+
+ <p>
+ <label for="name">[% loc('Name') %]</label>
+ <input type="text" class="form-control" name="name" id="name" value="" size="20">
+ </p>
+
+ <p>
+ <input type="hidden" name="token" value="[% csrf_token %]">
+ <input type="submit" class="btn" name="new" value="[% loc('Create') %]">
+ </p>
+</form>
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/base/admin/stats.html b/templates/web/base/admin/stats.html
index 535f04d18..150afd619 100644
--- a/templates/web/base/admin/stats.html
+++ b/templates/web/base/admin/stats.html
@@ -99,7 +99,7 @@
[% END %]
<p>
- <input type="submit" class="btn" name="getcounts" size="30" id="getcounts" value="Get Count" />
+ <input type="submit" class="btn" name="getcounts" size="30" id="getcounts" value="[% loc('Get Count') %]" />
</p>
</form>
diff --git a/templates/web/base/admin/stats_by_state.html b/templates/web/base/admin/stats_by_state.html
index b003d934e..6bcd35f88 100644
--- a/templates/web/base/admin/stats_by_state.html
+++ b/templates/web/base/admin/stats_by_state.html
@@ -4,7 +4,7 @@
[%- BLOCK states -%]
[%- FOREACH state IN list %]
[%- '<ul>' IF loop.first %]
- <li>[% object.$state %] [% state_pretty.$state %]</li>
+ <li>[% object.$state %] [% prettify_state(state) %]</li>
[%- "\n</ul>" IF loop.last %]
[%- END %]
[% END -%]
diff --git a/templates/web/base/alert/_list.html b/templates/web/base/alert/_list.html
index 388e0e9bc..d997a5abb 100644
--- a/templates/web/base/alert/_list.html
+++ b/templates/web/base/alert/_list.html
@@ -1,94 +1,85 @@
+ [% SET name_of_location = pretty_pc || loc('this location') %]
+
<input type="hidden" name="token" value="[% csrf_token %]">
<input type="hidden" name="type" value="local">
<input type="hidden" name="pc" value="[% pc | html %]">
<input type="hidden" name="latitude" value="[% latitude | html %]">
<input type="hidden" name="longitude" value="[% longitude | html %]">
- <p>
- [% IF pretty_pc %]
- [% tprintf( loc('Here are the types of local problem alerts for &lsquo;%s&rsquo;.'), pretty_pc ) %]
- [% END %]
- [% loc('Select which type of alert you’d like and click the button for an RSS feed, or enter your email address to subscribe to an email alert.') %]
- </p>
+ <h2>[% loc('Which problems do you want alerts about?') %]</h2>
[% INCLUDE 'errors.html' %]
- <p>
- [% loc('The simplest alert is our geographic one:') %]
- </p>
+ [% IF reported_to_options %]
+ <p>
+ [% tprintf(loc('Reports near %s are sent to different councils, depending on the type of problem.'), name_of_location) %]
+ </p>
+ <p>
+ [% loc('You can choose to subscribe to all problems reported in an area, or reports based on their destination.') %]
+ </p>
+ <div class="alerts__columns">
+ <div>
+ <h3>[% loc('Problems in an area') %]</h3>
+ [% END %]
<p id="rss_local">
- <input type="radio" name="feed" id="[% rss_feed_id %]" value="[% rss_feed_id %]"[% IF rss_feed_id == selected_feed || selected_feed == '' %] checked[% END %]>
- <label class="inline" for="[% rss_feed_id %]">[% tprintf( loc('Problems within %.1fkm of this location'), population_radius ) %]</label>
<a href="[% rss_feed_uri %]"><img src='/i/feed.png' width='16' height='16' title='[% loc('RSS feed of nearby problems') %]' alt='[% loc('RSS feed') %]' border='0'></a>
- <br />
- [% loc('(a default distance which covers roughly 200,000 people)') %]
+ <label class="label-containing-checkbox" for="[% rss_feed_id %]">
+ <input type="radio" name="feed" id="[% rss_feed_id %]" value="[% rss_feed_id %]"[% IF rss_feed_id == selected_feed || selected_feed == '' %] checked[% END %]>
+ [% tprintf( loc('Problems within %.1fkm of %s'), population_radius, name_of_location ) %]
+ [% loc('(covers roughly 200,000 people)') %]
+ </label>
</p>
<p id="rss_local_alt">
[% SET distance_options = '<a href="' _ rss_feed_2k _ ' ">2km</a> / <a href="' _ rss_feed_5k _ ' ">5km</a> / <a href="' _ rss_feed_10k _ '">10km</a> / <a href="' _ rss_feed_20k _ '">20km</a>' %]
- [% tprintf(loc('(alternatively the RSS feed can be customised, within %s)', "%s is a list of distance links, e.g. [2km] / [5km] / [10km] / [20km]"), distance_options) %]
+ [% tprintf(loc('(we also have RSS feeds for problems within %s)', "%s is a list of distance links, e.g. [2km] / [5km] / [10km] / [20km]"), distance_options) %]
</p>
- <p>
- [% IF c.cobrand.is_council %]
- Or you can subscribe to an alert for all council problems or one based upon what ward you&rsquo;re in:
- [% ELSE %]
- [% loc("Or you can subscribe to an alert based upon what ward or council you&rsquo;re in:") %]
- [% END %]
- </p>
-
- [% IF reported_to_options %]
- <p><strong>
- [% loc('Problems within the boundary of:') %]
- </strong></p>
- <ul class="plain-list">
- [% ELSE %]
- <ul id="rss_feed" class="plain-list">
- [% END %]
-
[% FOREACH option IN options %]
- <li[% IF ! (loop.count % 2) %] class="a"[% END %]>
- <input type="radio" name="feed" id="[% option.id %]" value="[% option.id %]"[% IF option.id == selected_feed %] checked[% END %]>
- <a href="[% option.uri %]"><img src="/i/feed.png" width="16" height="16"
+ <p>
+ <a href="[% option.uri %]"><img src="/i/feed.png" width="16" height="16"
title="[% option.rss_text %]" alt="RSS feed" border="0"></a>
- <label class="inline" for="[% option.id %]">[% option.text %]</label>
- </li>
- [% END %]
-</ul>
- [% IF reported_to_options %]
- <p><strong>
- [% loc('Or problems reported to:') %]
- </strong></p>
- <ul class="plain-list">
- [% FOREACH option IN reported_to_options %]
- <li[% IF ! (loop.count % 2) %] class="a"[% END %]>
+ <label class="label-containing-checkbox" for="[% option.id %]">
<input type="radio" name="feed" id="[% option.id %]" value="[% option.id %]"[% IF option.id == selected_feed %] checked[% END %]>
+ [% option.text %]
+ </label>
+ </p>
+ [% END %]
+
+ [% IF reported_to_options %]
+ </div>
+ <div>
+
+ <h3>[% loc('Reports by destination') %]</h3>
+
+ [% FOREACH option IN reported_to_options %]
+ <p>
<a href="[% option.uri %]"><img src="/i/feed.png" width="16" height="16"
title="[% option.rss_text %]" alt="RSS feed" border="0"></a>
- <label class="inline" for="[% option.id %]">[% option.text %]</label>
- </li>
- [% END %]
- </ul>
- <p><small>
- [% tprintf(loc('%s sends different categories of problem
-to the appropriate council, so problems within the boundary of a particular council
-might not match the problems sent to that council. For example, a graffiti report
-will be sent to the district council, so will appear in both of the district
-council&rsquo;s alerts, but will only appear in the "Within the boundary" alert
-for the county council.', "%s is the site name"), site_name) %]
- </small></p>
+ <label class="label-containing-checkbox" for="[% option.id %]">
+ <input type="radio" name="feed" id="[% option.id %]" value="[% option.id %]"[% IF option.id == selected_feed %] checked[% END %]>
+ [% option.text %]
+ </label>
+ </p>
[% END %]
+ </div>
+ </div>
+ [% END %]
- <input id="alert_rss_button" class="green-btn" type="submit" name="rss" value="[% loc('Give me an RSS feed') %]">
-
- <p id="alert_or">
- [% loc('or') %]
- </p>
- [% UNLESS c.user_exists %]
- <label for="rznvy">[% loc('Your email') %]</label>
- <input class="form-control" type="text" id="rznvy" name="rznvy" value="[% rznvy | html %]">
- [% END %]
- <input id="alert_email_button" style="margin-top:1em;" class="green-btn" type="submit" name="alert" value="[% loc('Subscribe me to an email alert') %]">
+ <div class="alerts__cta-box">
+ <h3>[% loc('Subscribe by email') %]</h3>
+ [% UNLESS c.user_exists %]
+ <label for="rznvy">[% loc('Email address') %]</label>
+ <div class="form-txt-submit-box">
+ <input class="form-control" type="text" id="rznvy" name="rznvy" value="[% rznvy | html %]">
+ <input id="alert_email_button" class="btn-primary" type="submit" name="alert" value="[% loc('Subscribe') %]">
+ </div>
+ [% ELSE %]
+ <input id="alert_email_button" class="btn-primary" type="submit" name="alert" value="[% loc('Subscribe') %]">
+ [% END %]
+ </div>
+ <h3>[% loc('Or subscribe by RSS') %]</h3>
+ <input id="alert_rss_button" class="btn" type="submit" name="rss" value="[% loc('Give me an RSS feed') %]">
diff --git a/templates/web/base/alert/index.html b/templates/web/base/alert/index.html
index 5c61e93d9..acef89a78 100644
--- a/templates/web/base/alert/index.html
+++ b/templates/web/base/alert/index.html
@@ -27,7 +27,7 @@ within a certain distance of a particular location.', "%s is the site name"), si
[% loc('To find out what local alerts we have for you, please enter your postcode or street name and area' ) %]
[% END %]
</p>
-<form method="get" action="/alert/list" class="form-box">
+<form method="get" action="/alert/list" class="form-box js-geolocate">
<fieldset>
<div class="form-txt-submit-box">
<input class="form-control" type="text" name="pc" value="[% pc | html %]" placeholder="[% tprintf(loc('e.g. ‘%s’ or ‘%s’'), c.cobrand.example_places) %]">
diff --git a/templates/web/base/around/postcode_form.html b/templates/web/base/around/postcode_form.html
index 135a70294..69c95d311 100644
--- a/templates/web/base/around/postcode_form.html
+++ b/templates/web/base/around/postcode_form.html
@@ -6,7 +6,7 @@
question = c.cobrand.enter_postcode_text || loc('Enter a nearby street name and area');
%]
- <form action="[% c.uri_for('/around') %]" method="get" name="postcodeForm" id="postcodeForm">
+ <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) %]">
diff --git a/templates/web/base/around/tabbed_lists.html b/templates/web/base/around/tabbed_lists.html
index b0d46444d..5418ef914 100755
--- a/templates/web/base/around/tabbed_lists.html
+++ b/templates/web/base/around/tabbed_lists.html
@@ -1,5 +1,5 @@
[% INCLUDE "reports/_list-filters.html" %]
-<ul id="current" class="item-list item-list--reports">
+<ul id="js-reports-list" class="item-list item-list--reports">
[% INCLUDE "around/on_map_list_items.html" %]
</ul>
diff --git a/templates/web/base/auth/general.html b/templates/web/base/auth/general.html
index 41ff3a2e1..2a8bea402 100644
--- a/templates/web/base/auth/general.html
+++ b/templates/web/base/auth/general.html
@@ -2,6 +2,8 @@
<h1>[% loc('Sign in') %]</h1>
+[% TRY %][% INCLUDE 'auth/_general_top.html' %][% CATCH file %][% END %]
+
[% IF oauth_need_email %]
<p class="form-error">[% loc('We need your email address, please give it below.') %]</p>
[% END %]
diff --git a/templates/web/base/auth/sign_out.html b/templates/web/base/auth/sign_out.html
index c95efacf5..1a468b278 100644
--- a/templates/web/base/auth/sign_out.html
+++ b/templates/web/base/auth/sign_out.html
@@ -5,6 +5,6 @@
<p>[% tprintf( loc('Please feel free to <a href="%s">sign in again</a>, or go back to the <a href="/">front page</a>.'), c.uri_for('/auth') ) %]</p>
</div>
-[% INCLUDE next_steps.html %]
+[% INCLUDE next_steps.html utm_content='signed out' %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/auth/token.html b/templates/web/base/auth/token.html
index a4dedcec3..9a79a5e67 100644
--- a/templates/web/base/auth/token.html
+++ b/templates/web/base/auth/token.html
@@ -14,8 +14,14 @@
<div class="confirmation-header confirmation-header--inbox">
- <h1>[% loc("Nearly done! Now check your email&hellip;") %]</h1>
- <p>[% loc("Click the link in our confirmation email to sign in.") %]</p>
+ [% IF c.config.SIGNUPS_DISABLED %]
+ <h1>[% loc("Nearly done!") %]</h1>
+ <p>[% loc("If there's a user associated with the address you entered, we've sent a confirmation email.") %]</p>
+ <p>[% loc("Click the link in that email to sign in.") %]</p>
+ [% ELSE %]
+ <h1>[% loc("Nearly done! Now check your email&hellip;") %]</h1>
+ <p>[% loc("Click the link in our confirmation email to sign in.") %]</p>
+ [% END %]
<p>
[% loc("Can&rsquo;t find our email? Check your spam folder&nbsp;&ndash; that&rsquo;s the solution 99% of the time.") %]
diff --git a/templates/web/base/common_footer_tags.html b/templates/web/base/common_footer_tags.html
index 01420c37d..915751802 100644
--- a/templates/web/base/common_footer_tags.html
+++ b/templates/web/base/common_footer_tags.html
@@ -3,7 +3,7 @@
[% PROCESS 'common_scripts.html' %]
<!--[if lte IE 9]>
- <script src="[% version('/js/history.polyfill.min.js') %]"></script>
+ <script src="[% version('/vendor/history.polyfill.min.js') %]"></script>
<![endif]-->
[% FOR script IN scripts ~%]
[% script = script.0 ? script : [ script ] ~%]
diff --git a/templates/web/base/common_header_tags.html b/templates/web/base/common_header_tags.html
index e64722f01..e5a4d25f2 100644
--- a/templates/web/base/common_header_tags.html
+++ b/templates/web/base/common_header_tags.html
@@ -1,13 +1,17 @@
[% SET start = c.config.ADMIN_BASE_URL IF admin %]
-<link rel="stylesheet" href="[% version('/js/OpenLayers/theme/default/style.css') %]">
+<link rel="stylesheet" href="[% version('/vendor/OpenLayers/theme/default/style.css') %]">
<meta http-equiv="content-type" content="text/html; charset=utf-8"
id="js-meta-data" data-page="[% page %]"
data-cobrand="[% c.cobrand.moniker %]">
+[% IF csrf_token %]
+ <meta content="[% csrf_token %]" name="csrf-token" />
+[% END %]
+
<!--[if (lt IE 9)]>
- <script src="[% version('/js/html5shiv.js') %]""></script>
+ <script src="[% version('/vendor/html5shiv.js') %]"></script>
<![endif]-->
<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);
@@ -16,7 +20,7 @@
</script>
[% IF admin %]
- <link rel="stylesheet" href="[% version('/js/jquery-ui/css/smoothness/jquery-ui-1.10.3.custom.min.css') %]">
+ <link rel="stylesheet" href="[% version('/vendor/jquery-ui/css/smoothness/jquery-ui-1.10.3.custom.min.css') %]">
[% END %]
[% IF robots %]
diff --git a/templates/web/base/common_scripts.html b/templates/web/base/common_scripts.html
index 42c04f11f..474edc46e 100644
--- a/templates/web/base/common_scripts.html
+++ b/templates/web/base/common_scripts.html
@@ -9,10 +9,10 @@ scripts.push(
start _ "/js/translation_strings." _ lang_code _ ".js?" _ Math.int( date.now / 3600 ),
version('/jslib/jquery-1.7.2.min.js'),
version('/js/validation_rules.js'),
- version('/js/jquery.validate.min.js'),
- version('/js/dropzone.min.js'),
+ version('/vendor/jquery.validate.min.js'),
+ version('/vendor/dropzone.min.js'),
version('/js/jquery.multi-select.js'),
- version('/js/geo.min.js'),
+ version('/vendor/geo.min.js'),
version('/cobrands/fixmystreet/fixmystreet.js'),
);
@@ -33,7 +33,7 @@ scripts.push(
IF admin;
scripts.push(
- version('/js/jquery-ui/js/jquery-ui-1.10.3.custom.min.js'),
+ version('/vendor/jquery-ui/js/jquery-ui-1.10.3.custom.min.js'),
version('/cobrands/fixmystreet/admin.js'),
);
END;
diff --git a/templates/web/base/contact/blurb.html b/templates/web/base/contact/blurb.html
index 3f9e88ed0..1142dc874 100644
--- a/templates/web/base/contact/blurb.html
+++ b/templates/web/base/contact/blurb.html
@@ -1,9 +1,3 @@
-[% IF c.cobrand.moniker == 'fixmystreet' %]
-<h3>Send a message to FixMyStreet's technical support team</h3>
-
-<h4>If you have questions about FixMyStreet</h4>
-[% END %]
-
<p>
[% tprintf( loc("It's often quickest to <a href=\"%s\">check our FAQs</a> and see if the answer is there."), c.uri_for('/faq') ) %]
</p>
diff --git a/templates/web/base/contact/index.html b/templates/web/base/contact/index.html
index f24f8afea..dfd3ef6b2 100644
--- a/templates/web/base/contact/index.html
+++ b/templates/web/base/contact/index.html
@@ -77,13 +77,17 @@
[% 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 %]
@@ -100,7 +104,7 @@
<textarea class="form-control required" name="message" id="form_message" rows="7" cols="50">[% message | html %]</textarea>
- <input class="final-submit green-btn" type="submit" value="[% loc('Post') %]">
+ <input class="final-submit green-btn" type="submit" value="[% loc('Send') %]">
</fieldset>
</form>
diff --git a/templates/web/base/contact/submit.html b/templates/web/base/contact/submit.html
index 4bf82dcd6..acb7caad9 100644
--- a/templates/web/base/contact/submit.html
+++ b/templates/web/base/contact/submit.html
@@ -16,6 +16,6 @@
[% END %]
-[% INCLUDE next_steps.html %]
+[% INCLUDE next_steps.html utm_content='contact form submitted' %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/dashboard/index.html b/templates/web/base/dashboard/index.html
index 2a9a2ef42..e47798573 100644
--- a/templates/web/base/dashboard/index.html
+++ b/templates/web/base/dashboard/index.html
@@ -29,7 +29,7 @@
<label for="category">[% loc('Category:') %]</label>
<select class="form-control" name="category"><option value=''>[% loc('All') %]</option>
[% FOR cat_op IN category_options %]
- <option value='[% cat_op | html %]'[% ' selected' IF category == cat_op %]>[% cat_op | html %]</option>
+ <option value='[% cat_op.name | html %]'[% ' selected' IF category == cat_op.name %]>[% cat_op.value | html %]</option>
[% END %]
</select>
</p>
@@ -136,11 +136,12 @@
</select>
<p>[% loc('Report state:') %] <select class="form-control" name="state">
<option value=''>[% loc('All') %]</option>
- [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
- loc('Investigating')], ['action scheduled', loc('Planned')], ['in progress',
- loc('In Progress')], ['closed', loc('Closed')], ['fixed', loc('Fixed')] ] %]
- <option [% 'selected ' IF state.0 == q_state %] value="[% state.0 %]">[% state.1 %]</option>
- [% END %]
+ [% FOR group IN filter_states %]
+ [% FOR state IN group.1 %]
+ [% NEXT IF state == 'hidden' %]
+ <option [% 'selected ' IF state == q_state %] value="[% state %]">[% prettify_state(state, 1) %]</option>
+ [% END %]
+ [% END %]
</select>
<input type="submit" class="btn" value="[% loc('Look up') %]">
<a class="export_as_csv" href="[% c.req.uri_with({ export => 1 }) %]">[% loc('Export as CSV') %]</a>
diff --git a/templates/web/base/email_sent.html b/templates/web/base/email_sent.html
index 7d38f9d67..2724dabb9 100644
--- a/templates/web/base/email_sent.html
+++ b/templates/web/base/email_sent.html
@@ -14,6 +14,8 @@
[% END %]
</p>
+ [% TRY %][% INCLUDE '_email_sent_extra.html' %][% CATCH file %][% END %]
+
<p>
[% loc("Can&rsquo;t find our email? Check your spam folder&nbsp;&ndash; that&rsquo;s the solution 99% of the time.") %]
</p>
diff --git a/templates/web/base/footer.html b/templates/web/base/footer.html
index 9f86f7519..e2bdbb01a 100644
--- a/templates/web/base/footer.html
+++ b/templates/web/base/footer.html
@@ -8,7 +8,7 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
+ <div class="container">
[% INCLUDE "main_nav.html" %]
</div>
</div>
diff --git a/templates/web/base/front/footer-marketing.html b/templates/web/base/front/footer-marketing.html
index c0c9b4168..3fb7a3044 100644
--- a/templates/web/base/front/footer-marketing.html
+++ b/templates/web/base/front/footer-marketing.html
@@ -1,21 +1,8 @@
- <div class="tablewrapper bordered">
- <div id="footer-mobileapps">
- <!--
- <h4></h4>
- <p>
- </p>
- -->
- </div>
-
- <div id="footer-help">
- <p>
- [% loc('Powered by <a class="platform-logo" href="http://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>
- </li>
- </ul>
- </div>
+ <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>.') %]
+ </p>
+ <p>
+ [% loc('Powered by <a class="platform-logo" href="http://fixmystreet.org/">FixMyStreet Platform</a>') %]
+ </p>
</div>
diff --git a/templates/web/base/front/javascript.html b/templates/web/base/front/javascript.html
index 6b8e2a292..69eb626f7 100644
--- a/templates/web/base/front/javascript.html
+++ b/templates/web/base/front/javascript.html
@@ -1,10 +1,10 @@
[%
# Assume using OpenStreetMap maps
map_js = [
- version('/js/yepnope.js'),
+ version('/vendor/yepnope.js'),
[ version('/cobrands/fixmystreet/front.js'), {
id = 'script_front',
- 'data-scripts' = version('/js/OpenLayers/OpenLayers.fixmystreet.js') _ ',' _
+ 'data-scripts' = version('/vendor/OpenLayers/OpenLayers.fixmystreet.js') _ ',' _
version('/js/map-OpenLayers.js') _ ',' _
version('/js/map-OpenStreetMap.js')
} ],
diff --git a/templates/web/base/front/recent.html b/templates/web/base/front/recent.html
index cb83c51b8..1fe6ad2be 100644
--- a/templates/web/base/front/recent.html
+++ b/templates/web/base/front/recent.html
@@ -13,7 +13,7 @@
</h2>
<section class="full-width">
- <ul class="item-list item-list--reports item-list--front-page">
+ <ul id="js-reports-list" class="item-list item-list--reports item-list--front-page">
[% FOREACH problem IN recent_photos %]
[% INCLUDE 'front/_list-entry.html' %]
[% END %]
diff --git a/templates/web/base/front/stats.html b/templates/web/base/front/stats.html
index eb671137b..41358c869 100644
--- a/templates/web/base/front/stats.html
+++ b/templates/web/base/front/stats.html
@@ -35,7 +35,9 @@
<div id="front_stats">
<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 %]
diff --git a/templates/web/base/js/translation_strings.html b/templates/web/base/js/translation_strings.html
index b90a4d576..bc2f013ff 100644
--- a/templates/web/base/js/translation_strings.html
+++ b/templates/web/base/js/translation_strings.html
@@ -51,6 +51,9 @@
permalink: '[% loc('Permalink') | replace("'", "\\'") %]',
+ show_pins: '[% loc('Show pins') | replace("'", "\\'") %]',
+ hide_pins: '[% loc('Hide pins') | replace("'", "\\'") %]',
+
upload_max_files_exceeded: '[% loc ('Whoa there Testino! Three photos are enough.') | replace("'", "\\'") %]',
upload_default_message: '[% loc ('Drag and drop photos here or <u>click to upload</u>') | replace("'", "\\'") %]',
upload_cancel_confirmation: '[% loc ('Are you sure you want to cancel this upload?') | replace("'", "\\'") %]',
@@ -66,7 +69,7 @@
are_you_sure: '[% loc('Are you sure?') | replace("'", "\\'") %]',
data_cleared: '[% loc('Offline data cleared') | replace("'", "\\'") %]',
reports_saved: '[% loc('Reports saved offline.') | replace("'", "\\'") %]',
- saving_reports: '[% loc('Saving reports offline', 'This is followed by a progress count, e.g. 3/5') | replace("'", "\\'") %]',
+ saving_reports: '[% loc('Saving reports offline', "This is followed by a progress count, e.g. 3/5") | replace("'", "\\'") %]',
you_are_offline: '[% loc('You are offline') | replace("'", "\\'") %]',
N_saved: '[% loc('<span>%s</span> saved.') | replace("'", "\\'") %]',
saved_to_submit: '[% loc('You have <a id="oFN" href=""><span>%s</span> saved to submit</a>.') | replace("'", "\\'") %]',
diff --git a/templates/web/base/main_nav.html b/templates/web/base/main_nav.html
index 31bd61af5..b8a3165a4 100644
--- a/templates/web/base/main_nav.html
+++ b/templates/web/base/main_nav.html
@@ -20,12 +20,6 @@
<div id="main-nav" role="navigation">
[% END %]
- [% UNLESS hide_mysoc_link %]
- <ul class="nav-menu nav-menu--mysoc">
- <li><a id="mysoc-logo" href="https://www.mysociety.org/">mySociety</a></li>
- </ul>
- [% END %]
-
<ul class="[% ul_class %]"[% " id='" _ ul_id _ "'" IF ul_id %]>
[% INCLUDE 'main_nav_items.html' %]
</ul>
diff --git a/templates/web/base/main_nav_items.html b/templates/web/base/main_nav_items.html
index 6b5e09e56..845ef7c65 100644
--- a/templates/web/base/main_nav_items.html
+++ b/templates/web/base/main_nav_items.html
@@ -1,4 +1,4 @@
-[%~ INCLUDE navitem uri='/' label=loc('Report a problem') attrs='class="report-a-problem-btn"' ~%]
+[%~ INCLUDE navitem uri=(homepage_template ? '/report' : '/') label=loc('Report a problem') attrs='class="report-a-problem-btn"' ~%]
[%~ IF c.user_exists ~%]
[%~ INCLUDE navitem uri='/my' label=loc('Your account') ~%]
diff --git a/templates/web/base/maps/bing.html b/templates/web/base/maps/bing.html
index 59d012c4f..df45eced5 100644
--- a/templates/web/base/maps/bing.html
+++ b/templates/web/base/maps/bing.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-bing-ol.js'),
];
diff --git a/templates/web/base/maps/fms.html b/templates/web/base/maps/fms.html
index e155ff778..ff5b4eab6 100644
--- a/templates/web/base/maps/fms.html
+++ b/templates/web/base/maps/fms.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-bing-ol.js'),
version('/js/map-fms.js'),
diff --git a/templates/web/base/maps/google-ol.html b/templates/web/base/maps/google-ol.html
index 7c7711de9..d88043403 100644
--- a/templates/web/base/maps/google-ol.html
+++ b/templates/web/base/maps/google-ol.html
@@ -6,7 +6,7 @@ END;
map_js = [
google_maps_url,
- version('/js/OpenLayers/OpenLayers.google.js'),
+ version('/vendor/OpenLayers/OpenLayers.google.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-google-ol.js'),
]
diff --git a/templates/web/base/maps/mapquest-attribution.html b/templates/web/base/maps/mapquest-attribution.html
index e469901a8..43d6106a5 100644
--- a/templates/web/base/maps/mapquest-attribution.html
+++ b/templates/web/base/maps/mapquest-attribution.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-OpenStreetMap.js'),
];
diff --git a/templates/web/base/maps/openlayers.html b/templates/web/base/maps/openlayers.html
index 215b69d26..8f8d527e2 100644
--- a/templates/web/base/maps/openlayers.html
+++ b/templates/web/base/maps/openlayers.html
@@ -6,7 +6,9 @@
<input type="hidden" name="zoom" value="[% map.zoom %]">
<div id="js-map-data"
+[%- UNLESS c.cobrand.call_hook('hide_areas_on_reports') %]
data-area="[% map.area.join(',') %]"
+[%- END %]
data-all_pins='[% all_pins %]'
data-latitude=[% map.latitude %]
data-longitude=[% map.longitude %]
@@ -16,13 +18,14 @@
[% IF map.zoom -%]
data-zoom=[% map.zoom %]
[%- END %]
- data-pin_prefix='[% c.config.ADMIN_BASE_URL IF admin %][% c.cobrand.path_to_pin_icons %]',
+ data-pin_prefix='[% c.config.ADMIN_BASE_URL IF admin %][% c.cobrand.path_to_pin_icons %]'
+ data-pin_new_report_colour='[% c.cobrand.pin_new_report_colour %]'
data-numZoomLevels=[% map.numZoomLevels %]
data-zoomOffset=[% map.zoomOffset %]
data-map_type="[% map.map_type %]"
[% IF include_key -%]
data-key='[% c.config.BING_MAPS_API_KEY %]'
-[%- END %]
+[%- END -%]
>
</div>
<div id="map_box" aria-hidden="true">
diff --git a/templates/web/base/maps/osm-streetview.html b/templates/web/base/maps/osm-streetview.html
index dcf45d3b6..f68f53039 100644
--- a/templates/web/base/maps/osm-streetview.html
+++ b/templates/web/base/maps/osm-streetview.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-streetview.js'),
];
diff --git a/templates/web/base/maps/osm-toner-lite.html b/templates/web/base/maps/osm-toner-lite.html
index 6512eaf2c..22b6636c5 100644
--- a/templates/web/base/maps/osm-toner-lite.html
+++ b/templates/web/base/maps/osm-toner-lite.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
"https://stamen-maps.a.ssl.fastly.net/js/tile.stamen.js?v1.3.0",
version('/js/map-OpenLayers.js'),
version('/js/map-toner-lite.js'),
diff --git a/templates/web/base/maps/osm.html b/templates/web/base/maps/osm.html
index e469901a8..43d6106a5 100644
--- a/templates/web/base/maps/osm.html
+++ b/templates/web/base/maps/osm.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-OpenStreetMap.js'),
];
diff --git a/templates/web/base/my/anonymize.html b/templates/web/base/my/anonymize.html
new file mode 100644
index 000000000..e82a03ce0
--- /dev/null
+++ b/templates/web/base/my/anonymize.html
@@ -0,0 +1,26 @@
+[% INCLUDE 'header.html',
+ title = loc('Hide my name'),
+ bodyclass = 'twothirdswidthpage' %]
+
+<form method="post" action="/my/anonymize" class="box-warning hide-name-form">
+ <input type="hidden" name="token" value="[% csrf_token %]">
+
+ [% IF update %]
+ <input type="hidden" name="update" value="[% update.id %]">
+ <input class="btn-primary" type="submit" name="hide" value="[% loc('Hide my name in this update') %]">
+ [% ELSIF problem %]
+ [% IF problem.bodies_str %]
+ <p>[% tprintf(loc('Your name has already been sent to %s, but we can hide it on this page:'), problem.body(c)) %]</p>
+ [% END %]
+ <input type="hidden" name="problem" value="[% problem.id %]">
+ <input class="btn-primary" type="submit" name="hide" value="[% loc('Hide my name on this report') %]">
+ [% END %]
+
+ [% IF NOT c.user.from_body %]
+ <p>[% loc('Alternatively, we can hide your name on <strong>all of your reports and updates</strong> across the site:') %]</p>
+ <input class="btn" type="submit" name="hide_everywhere" value="[% loc('Hide my name everywhere') %]">
+ [% END %]
+
+</form>
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/my/my.html b/templates/web/base/my/my.html
index a61a8ea44..1aaad6dc9 100644
--- a/templates/web/base/my/my.html
+++ b/templates/web/base/my/my.html
@@ -66,7 +66,7 @@
<p class="meta-2">
[% tprintf( loc("Added %s"), prettify_dt( u.confirmed, 'date' ) ) %]
&ndash;
- <a href="[% c.uri_for( '/report', u.problem_id ) %]#update_[% u.id %]">
+ <a href="[% u.url %]">
[% u.problem.title | html %]
</a>
</p>
diff --git a/templates/web/base/open311/index.html b/templates/web/base/open311/index.html
index 51e7ef364..2a8044a54 100644
--- a/templates/web/base/open311/index.html
+++ b/templates/web/base/open311/index.html
@@ -40,8 +40,8 @@ about future-proofing your communication channels in an easy and economical way
[% IF c.cobrand.moniker == 'fixmystreet' %]
<p>You may be interested to know about <a
-href="https://www.fixmystreet.com/about/council">FixMyStreet
-for Councils</a>, our hosted service which sits seamlessly on your council
+href="https://www.fixmystreet.com/about/professional">FixMyStreet
+Professional</a>, our hosted service which sits seamlessly on your council
website.</p>
<p>We can integrate it with any council back-end system, but if you use
diff --git a/templates/web/base/pagination.html b/templates/web/base/pagination.html
index 448186838..a677b9d58 100644
--- a/templates/web/base/pagination.html
+++ b/templates/web/base/pagination.html
@@ -1,4 +1,4 @@
-[% IF pager.last_page > 1 %]
+[% IF pager.total_entries > 1 %]
<p class="pagination">
[% IF pager.previous_page %]
<a class="prev" href="[% c.uri_with({ $param => pager.previous_page, ajax => undefined }) %][% '#' _ hash IF hash %]">[% loc('Previous') %]</a>
diff --git a/templates/web/base/questionnaire/completed.html b/templates/web/base/questionnaire/completed.html
index 32aa8bd68..280cc33b8 100644
--- a/templates/web/base/questionnaire/completed.html
+++ b/templates/web/base/questionnaire/completed.html
@@ -16,6 +16,6 @@
[% END %]
</div>
-[% INCLUDE next_steps.html %]
+[% INCLUDE next_steps.html utm_content='questionnaire completed' %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/questionnaire/index.html b/templates/web/base/questionnaire/index.html
index 8639a436f..84a9d7efd 100644
--- a/templates/web/base/questionnaire/index.html
+++ b/templates/web/base/questionnaire/index.html
@@ -22,8 +22,8 @@
<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>Last update</strong>
- <a href="/report/[% problem.id %]">Show all updates</a>
+ <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 %]
diff --git a/templates/web/base/report/_inspect.html b/templates/web/base/report/_inspect.html
index b75394abd..436c89e4a 100644
--- a/templates/web/base/report/_inspect.html
+++ b/templates/web/base/report/_inspect.html
@@ -1,15 +1,25 @@
[% permissions = c.user.permissions(c, problem.bodies_str) %]
[% second_column = BLOCK -%]
<div id="side-inspect">
+
+ <h2 class="inspect-form-heading">[% loc('Inspect report') %]</h2>
+
[% INCLUDE 'errors.html' %]
- <form id="report_inspect_form" method="post" action="[% c.uri_for( '/report', problem.id ) %]">
+ <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>
<strong>[% loc('Report ID:') %]</strong>
<span class="js-report-id">[% problem.id %]</span>
</p>
+ [% IF permissions.report_inspect AND problem.user.phone %]
+ <p>
+ <strong>[% loc('Phone Reporter:') %]</strong>
+ <a href="tel:[% problem.user.phone | html %]">[% problem.user.phone | html %]</a>
+ </p>
+ [% END %]
<p>
[% SET local_coords = problem.local_coords; %]
[% IF local_coords %]
@@ -18,8 +28,8 @@
<span id="problem_northing">[% local_coords.1 %]</span>
[% ELSE %]
<strong>[% loc('Latitude/Longitude:') %]</strong>
- <span id="problem_latitude">[% problem.latitude %]</span>
- <span id="problem_longitude">[% problem.longitude %]</span>,
+ <span id="problem_latitude">[% problem.latitude %]</span>,
+ <span id="problem_longitude">[% problem.longitude %]</span>
[% END %]
<input type="hidden" name="longitude" value="[% problem.longitude %]">
<input type="hidden" name="latitude" value="[% problem.latitude %]">
@@ -39,18 +49,21 @@
[% INCLUDE 'admin/report-category.html' %]
</p>
- [% FOREACH category IN categories %]
- [% cat_prefix = category | lower | replace('[^a-z]', '') %]
- [% cat_prefix = "category_" _ cat_prefix _ "_" %]
- [% IF category == problem.category %]
- <p data-category="[% category | html %]" data-priorities="[% priorities_by_category.$category %]">
- [% INCLUDE 'report/new/category_extras_fields.html' %]
- </p>
- [% ELSE %]
- <p data-category="[% category | html %]" class="hidden" data-priorities="[% priorities_by_category.$category %]">
- [% INCLUDE 'report/new/category_extras_fields.html' report_meta='' %]
+ [% FOREACH category IN category_options_copy %]
+ [% cat_name = category.name;
+ 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 %]'>
+ [% IF cat_name == problem.category %]
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$category %]
+ [% ELSE %]
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$category report_meta='' %]
+ [% END %]
</p>
- [% END %]
[% END %]
[% IF permissions.report_inspect %]
@@ -69,11 +82,22 @@
<label for="state">[% loc('State') %]</label>
[% INCLUDE 'report/inspect/state_groups_select.html' %]
</p>
+ [% IF permissions.report_instruct AND NOT problem.get_extra_metadata('inspected') %]
+ <div id="js-inspect-action-scheduled" class="[% "hidden" UNLESS problem.state == 'action scheduled' %]">
+ <p>[% loc('Do you want to automatically raise a defect?') %]</p>
+ <p class="segmented-control segmented-control--radio">
+ <input type="radio" name="raise_defect" id="raise_defect_yes" value="1">
+ <label class="btn" for="raise_defect_yes">[% loc('Yes') %]</label>
+ <input type="radio" name="raise_defect" id="raise_defect_no" value="0">
+ <label class="btn" for="raise_defect_no">[% loc('No') %]</label>
+ </p>
+ </div>
+ [% END %]
<div id="js-duplicate-reports" class="[% "hidden" UNLESS problem.duplicate_of %]">
<input type="hidden" name="duplicate_of" value="[% problem.duplicate_of.id %]">
<p class="[% "hidden" UNLESS problem.duplicate_of %]"><strong>[% loc('Duplicate of') %]</strong></p>
<p class="[% "hidden" IF problem.duplicate_of %]">[% loc('Which report is it a duplicate of?') %]</p>
- <ul class="item-list">
+ <ul class="item-list item-list--inspect-duplicates">
[% IF problem.duplicate_of %]
[% INCLUDE 'report/_item.html' item_extra_class = 'item-list--reports__item--selected' problem = problem.duplicate_of %]
<li class="item-list__item"><a class="btn" href="#" id="js-change-duplicate-report">[% loc('Choose another') %]</a></li>
@@ -82,7 +106,7 @@
</div>
[% IF problem.duplicates.size %]
<p><strong>[% loc('Duplicates') %]</strong></p>
- <ul class="item-list">
+ <ul class="item-list item-list--inspect-duplicates">
[% FOR duplicate IN problem.duplicates %]
[% INCLUDE 'report/_item.html' problem = duplicate %]
[% END %]
@@ -98,9 +122,9 @@
<p>
<label for="problem_priority">[% loc('Priority') %]</label>
<select name="priority" id="problem_priority" class="form-control">
- <option value="" [% 'selected' UNLESS problem.response_priority_id %]>-</option>
+ <option value="" [% 'selected' UNLESS problem.response_priority_id OR has_default_priority %]>-</option>
[% FOREACH priority IN problem.response_priorities %]
- <option value="[% priority.id %]" [% 'selected' IF problem.response_priority_id == priority.id %] [% 'disabled' IF priority.deleted %]>[% priority.name | html %]</option>
+ <option value="[% priority.id %]" [% 'selected' IF ( problem.response_priority_id == priority.id ) OR priority.is_default %][% 'disabled' IF priority.deleted %]>[% priority.name | html %]</option>
[% END %]
</select>
</p>
@@ -147,10 +171,14 @@
[% ELSE %]
<p>[% loc("<strong>Note:</strong> This report hasn't yet been sent onwards for action. Any changes made may not be passed on.") %]</p>
[% END %]
+ [% TRY %][% INCLUDE 'report/_inspect_extra_info.html' %][% CATCH file %][% END %]
[% END %]
<p>
- <input type="hidden" name="token" value="[% csrf_token %]">
+ <input type="hidden" name="token" value="[% csrf_token %]" />
+ [% IF permissions.planned_reports %]
+ <input type="hidden" name="post_inspect_url" value="[% post_inspect_url | html %]" />
+ [% END %]
<input class="btn btn-primary" type="submit" value="[% loc('Save changes') %]" data-value-original="[% loc('Save changes') %]" data-value-duplicate="[% loc('Save + close as duplicate') %]" name="save" />
</p>
</div>
diff --git a/templates/web/base/report/_item.html b/templates/web/base/report/_item.html
index e627227d4..9449ca55d 100644
--- a/templates/web/base/report/_item.html
+++ b/templates/web/base/report/_item.html
@@ -11,7 +11,9 @@
[% 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="[% loc('Add to shortlist') %]" class="item-list__item__shortlist-[% IF problem.shortlisted_user %]take[% ELSE %]add[% END %]"
+ 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 %]
@@ -27,7 +29,7 @@
[% END %]
<li class="item-list__item item-list--reports__item [% item_extra_class %]"
- data-report-id="[% problem.id | html %]" data-lastupdate="[% problem.lastupdate %]">
+ 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="">
@@ -38,10 +40,10 @@
[% END %]
<small>
[% IF NOT no_fixed AND problem.is_fixed %]
- <span class="item-list__item__state">[% loc('Fixed') %]</span>
+ <span class="item-list__item__state">[% prettify_state('fixed') %]</span>
[% ELSIF NOT no_fixed AND problem.is_closed %]
- <span class="item-list__item__state">[% loc('Closed') %]</span>
- [% ELSIF problem.response_priority AND (c.user.has_permission_to('report_edit_priority', problem.bodies_str_ids) OR c.user.has_permission_to('report_inspect', problem.bodies_str_ids)) %]
+ <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: %]
@@ -88,11 +90,11 @@
</div>
<div>
<h4>[% loc('Category') %]</h4>
- <p>[% (problem.category OR '-') | html %]</p>
+ <p>[% (problem.category_display OR '-') | html %]</p>
</div>
<div>
<h4>[% loc('State') %]</h4>
- <p>[% state_pretty.${problem.state} %]</p>
+ <p>[% prettify_state(problem.state, 1) %]</p>
</div>
<div>
<h4>[% loc('Priority') %]</h4>
diff --git a/templates/web/base/report/_main.html b/templates/web/base/report/_main.html
index 83a3a1109..405cb2118 100644
--- a/templates/web/base/report/_main.html
+++ b/templates/web/base/report/_main.html
@@ -64,6 +64,10 @@
[% INCLUDE 'report/_report_meta_info.html' %]
</p>
+ [% IF anonymized ~%]
+ <p class="form-success">[% anonymized %]</p>
+ [% END ~%]
+
[% INCLUDE 'report/_main_sent_info.html' %]
[% mlog = problem.latest_moderation_log_entry(); IF mlog %]
<p>[% tprintf(loc('Moderated by %s at %s'), mlog.admin_user, prettify_dt(mlog.whenedited)) %]</p>
diff --git a/templates/web/base/report/_report_meta_info.html b/templates/web/base/report/_report_meta_info.html
index da7339c81..e2a6412a3 100644
--- a/templates/web/base/report/_report_meta_info.html
+++ b/templates/web/base/report/_report_meta_info.html
@@ -1,2 +1,5 @@
[% problem.meta_line(c) | html %]
+[% IF c.user_exists AND c.user.id == problem.user_id AND !problem.anonymous %]
+ <small>(<a href="/my/anonymize?problem=[% problem.id | uri %]" class="js-hide-name">[% loc('Hide your name?') %]</a>)</small>
+[% END %]
[%- IF !problem.used_map %]; <strong>([% loc('there is no pin shown as the user did not use the map') %])</strong>[% END %]
diff --git a/templates/web/base/report/_state_select_field.html b/templates/web/base/report/_state_select_field.html
index 9b3ed18df..0f6d8faf6 100644
--- a/templates/web/base/report/_state_select_field.html
+++ b/templates/web/base/report/_state_select_field.html
@@ -2,10 +2,19 @@
[% IF include_empty %]
<option value="">---</option>
[% END %]
+[% SET found = 0 ~%]
+[% FOREACH group IN state_groups ~%]
+ [% FOREACH state IN group.1 ~%]
+ [% SET found = 1 IF state == current_state ~%]
+ [% END ~%]
+[% END ~%]
+[% IF NOT found ~%]
+ <option selected value="[% current_state %]">[% prettify_state(current_state, single_fixed) %]</option>
+[% END ~%]
[% FOREACH group IN state_groups %]
<optgroup label="[% group.0 %]">
[% FOREACH state IN group.1 %]
- <option [% 'selected ' IF state == current_state %] value="[% state %]">[% state_pretty.$state %]</option>
+ <option [% 'selected ' IF state == current_state %]value="[% state %]">[% prettify_state(state, single_fixed) %]</option>
[% END %]
</optgroup>
[% END %]
diff --git a/templates/web/base/report/banner.html b/templates/web/base/report/banner.html
index c80d129eb..ee73d287a 100644
--- a/templates/web/base/report/banner.html
+++ b/templates/web/base/report/banner.html
@@ -9,11 +9,11 @@
[% INCLUDE banner, id = 'unknown', text = loc('Unknown') %]
[% END %]
[% IF problem.is_fixed %]
- [% INCLUDE banner, id = 'fixed', text = loc('Fixed') %]
+ [% INCLUDE banner, id = 'fixed', text = prettify_state('fixed') %]
[% END %]
[% IF problem.is_closed %]
- [% INCLUDE banner, id = 'closed', text = loc('Closed') %]
+ [% INCLUDE banner, id = 'closed', text = prettify_state('closed') %]
[% END %]
[% IF problem.is_in_progress %]
- [% INCLUDE banner, id = 'progress', text = loc('In progress') %]
+ [% INCLUDE banner, id = 'progress', text = prettify_state(problem.state) %]
[% END %]
diff --git a/templates/web/base/report/display_tools.html b/templates/web/base/report/display_tools.html
index fb337df59..c477fd8dd 100644
--- a/templates/web/base/report/display_tools.html
+++ b/templates/web/base/report/display_tools.html
@@ -25,7 +25,7 @@
[% IF c.cobrand.moniker == 'fixmystreet' %]
<div id="report-share" class="hidden-js" align="center">
- <a class="btn btn--social btn--twitter" href="https://twitter.com/intent/tweet?text=I%20just%20viewed%20this%20report:%20&lsquo;[% problem.title_safe | uri %]&rsquo;&amp;via=fixmystreet&amp;related=mySociety">
+ <a class="btn btn--social btn--twitter" href="https://twitter.com/intent/tweet?text=I%20just%20viewed%20this%20report:%20&lsquo;[% problem.title_safe | uri %]&rsquo;&amp;url=[% c.cobrand.base_url | uri %][% c.req.uri.path | uri %]&amp;via=fixmystreet&amp;related=mySociety">
<img alt="" src="/i/twitter-icon-32.png" width="17" height="32">
Tweet
</a>
diff --git a/templates/web/base/report/duplicate-no-updates.html b/templates/web/base/report/duplicate-no-updates.html
index eb9ded728..c8020a107 100644
--- a/templates/web/base/report/duplicate-no-updates.html
+++ b/templates/web/base/report/duplicate-no-updates.html
@@ -1,5 +1,5 @@
<div>
- [% UNLESS hide_header %]<h2>[% loc( 'Provide an update') %]</h2>[% END %]
+ [% UNLESS hide_header %]<h2 class="update-form-heading">[% loc( 'Provide an update') %]</h2>[% END %]
<p>[% loc("This report is a duplicate. Please leave updates on the original report:") %]</p>
<ul class="item-list">
[% INCLUDE 'report/_item.html' item_extra_class = 'item-list__item--with-pin item-list--reports__item--selected' problem = problem.duplicate_of %]
diff --git a/templates/web/base/report/inspect/state_groups_select.html b/templates/web/base/report/inspect/state_groups_select.html
index c4043751b..998b99739 100644
--- a/templates/web/base/report/inspect/state_groups_select.html
+++ b/templates/web/base/report/inspect/state_groups_select.html
@@ -1,24 +1,7 @@
[%
-SET state_pretty = {
- 'confirmed' = loc('Open')
- 'investigating' = loc('Investigating')
- 'in progress' = loc('In progress')
- 'action scheduled' = loc('Action Scheduled')
- 'fixed - council' = loc('Fixed - Council')
- 'unable to fix' = loc('No further action')
- 'not responsible' = loc('Not Responsible')
- 'duplicate' = loc('Duplicate')
- 'internal referral' = loc('Internal referral')
- 'hidden' = loc('Hidden')
-};
-SET state_groups = [
- [ loc('Open'), [ 'confirmed', 'investigating', 'in progress', 'action scheduled' ] ],
- [ loc('Fixed'), [ 'fixed - council' ] ],
- [ loc('Closed'), [ 'unable to fix', 'not responsible', 'duplicate', 'internal referral' ] ],
- [ loc('Hidden'), [ 'hidden' ] ]
-];
+SET state_groups = c.cobrand.state_groups_inspect;
%]
[% DEFAULT current_state = problem.state %]
-[% INCLUDE 'report/_state_select_field.html' %]
+[% INCLUDE 'report/_state_select_field.html' single_fixed=1 %]
diff --git a/templates/web/base/report/new/category.html b/templates/web/base/report/new/category.html
index d63649083..b8ebf1653 100644
--- a/templates/web/base/report/new/category.html
+++ b/templates/web/base/report/new/category.html
@@ -5,11 +5,11 @@
<label for='form_category' id="form_category_label">
[%~ loc('Category') ~%]
</label>[% =%]
- <select class="form-control" name='category' id='form_category'>
+ <select class="form-control" name='category' id='form_category' data-role='[% c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]' data-body='[% c.user.from_body.name %]'>
[%~ FOREACH cat_op IN category_options ~%]
- [% cat_op_lc = cat_op | lower =%]
- <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category_lc == cat_op_lc || (category_options.size == 2 AND loop.last) ~%]
- >[% IF loop.first %][% cat_op %][% ELSE %][% cat_op | html %][% END %]</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>
[%~ END =%]
</select>
[%~ END ~%]
diff --git a/templates/web/base/report/new/category_extras.html b/templates/web/base/report/new/category_extras.html
index 084dd2d93..fd2752388 100644
--- a/templates/web/base/report/new/category_extras.html
+++ b/templates/web/base/report/new/category_extras.html
@@ -15,7 +15,14 @@
list_of_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
); %]
</p>
- [% INCLUDE 'report/new/category_extras_fields.html' %]
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=category_extras.$category %]
</div>
[%- END %]
+
+ [%- IF report_extra_fields %]
+ [% FOREACH extras IN report_extra_fields %]
+ [% cat_prefix = "extra[" _ extras.id _ "]" %]
+ [% INCLUDE 'report/new/category_extras_fields.html' metas=extras.get_extra_fields %]
+ [% END %]
+ [%- END %]
</div>
diff --git a/templates/web/base/report/new/category_extras_fields.html b/templates/web/base/report/new/category_extras_fields.html
index 012007e06..9c2731730 100644
--- a/templates/web/base/report/new/category_extras_fields.html
+++ b/templates/web/base/report/new/category_extras_fields.html
@@ -1,4 +1,4 @@
-[%- FOR meta IN category_extras.$category %]
+[%- FOR meta IN metas %]
[%- meta_name = meta.code -%]
[% IF c.cobrand.category_extra_hidden(meta_name) %]
diff --git a/templates/web/base/report/new/category_wrapper.html b/templates/web/base/report/new/category_wrapper.html
index 9f628c44e..291f5e923 100644
--- a/templates/web/base/report/new/category_wrapper.html
+++ b/templates/web/base/report/new/category_wrapper.html
@@ -1,7 +1,7 @@
<div id="form_category_row">
[% IF js %]
<label for="form_category">[% loc('Category') %]</label>
- <select class="form-control" name="category" id="form_category" required><option>[% loc('Loading...') %]</option></select>
+ <select class="form-control" name="category" id="form_category" data-role="[% c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]" data-body="[% c.user.from_body.name %]" required><option>[% loc('Loading...') %]</option></select>
[% ELSE %]
[% IF category_options.size %]
[% IF field_errors.category %]
@@ -12,6 +12,6 @@
[% END %]
</div>
-[%- IF category_extras %]
+[%- IF category_extras OR report_extra_fields %]
[% PROCESS "report/new/category_extras.html" %]
[%- END %]
diff --git a/templates/web/base/report/new/form_report.html b/templates/web/base/report/new/form_report.html
index e85d890c9..1d1a0e289 100644
--- a/templates/web/base/report/new/form_report.html
+++ b/templates/web/base/report/new/form_report.html
@@ -22,6 +22,8 @@
[% 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>
+[% TRY %][% PROCESS 'report/new/after_title.html' %][% CATCH file %][% END %]
+
[% IF c.cobrand.allow_photo_upload %]
<input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
<label for="form_photo">
diff --git a/templates/web/base/report/new/form_user_loggedin.html b/templates/web/base/report/new/form_user_loggedin.html
index 7fc1b1b5f..e841845bf 100644
--- a/templates/web/base/report/new/form_user_loggedin.html
+++ b/templates/web/base/report/new/form_user_loggedin.html
@@ -6,8 +6,9 @@
</div>
[% ELSE %]
[% can_contribute_as_another_user = c.user.has_permission_to("contribute_as_another_user", bodies.keys) %]
+ [% can_contribute_as_anonymous_user = c.user.has_permission_to("contribute_as_anonymous_user", bodies.keys) %]
[% can_contribute_as_body = c.user.from_body AND c.user.has_permission_to("contribute_as_body", bodies.keys) %]
- [% IF can_contribute_as_another_user OR can_contribute_as_body %]
+ [% IF can_contribute_as_another_user OR can_contribute_as_anonymous_user OR can_contribute_as_body %]
[% INCLUDE form_as %]
[% END %]
[% END %]
@@ -15,21 +16,22 @@
[% BLOCK form_as %]
<label for="form_as">[% loc('Report as') %]</label>
<select id="form_as" class="form-control js-contribute-as" name="form_as">
- <option value="myself" selected>[% loc('Yourself') %]</option>
+ <option value="myself" [% c.user.has_body_permission_to('planned_reports') ? '' : 'selected' %]>[% loc('Yourself') %]</option>
+ [% IF js || can_contribute_as_anonymous_user %]
+ <option value="anonymous_user">[% loc('Anonymous user') %]</option>
+ [% END %]
[% IF js || can_contribute_as_another_user %]
<option value="another_user">[% loc('Another user') %]</option>
[% END %]
[% IF js || can_contribute_as_body %]
- <option value="body">[% c.user.from_body.name %]</option>
+ <option value="body" [% c.user.has_body_permission_to('planned_reports') ? 'selected' : '' %]>[% c.user.from_body.name %]</option>
[% END %]
</select>
[% END %]
<label for="form_email">[% loc('Email address') %]</label>
- <input class="form-control" id="form_email"
- [%- IF js OR can_contribute_as_another_user OR can_contribute_as_body -%]
- name="email"
- [%- ELSE -%]
+ <input class="form-control" id="form_email" name="email"
+ [%- IF NOT can_contribute_as_another_user -%]
disabled
[%- END -%]
type="text" value="[% c.user.email | html %]">
diff --git a/templates/web/base/report/photo-js.html b/templates/web/base/report/photo-js.html
index 91b9930e7..8c8c91669 100644
--- a/templates/web/base/report/photo-js.html
+++ b/templates/web/base/report/photo-js.html
@@ -1,6 +1,6 @@
[% extra_css = BLOCK %]
- <link rel="stylesheet" href="[% version('/js/fancybox/jquery.fancybox-1.3.4.css') %]">
+ <link rel="stylesheet" href="[% version('/vendor/fancybox/jquery.fancybox-1.3.4.css') %]">
[% END %]
[% extra_js = [
- version('/js/fancybox/jquery.fancybox-1.3.4.pack.js')
+ version('/vendor/fancybox/jquery.fancybox-1.3.4.pack.js')
] %]
diff --git a/templates/web/base/report/update-form.html b/templates/web/base/report/update-form.html
index 49d011c0e..ea7b14970 100644
--- a/templates/web/base/report/update-form.html
+++ b/templates/web/base/report/update-form.html
@@ -3,7 +3,7 @@
<div id="update_form">
[% IF NOT login_success AND NOT oauth_need_email %]
- <h2>[% loc( 'Provide an update') %]</h2>
+ <h2 class="update-form-heading">[% loc( 'Provide an update') %]</h2>
[% 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 51c1a9e4f..85624669a 100644
--- a/templates/web/base/report/update.html
+++ b/templates/web/base/report/update.html
@@ -24,7 +24,7 @@
<div class="item-list__update-wrap">
[% IF update.whenanswered %]
<div class="item-list__update-text">
- <p class="meta-2"> [% INCLUDE meta_line %] </p>
+ <p class="meta-2">[% INCLUDE meta_line %]</p>
</div>
[% ELSE %]
<a name="update_[% update.id %]" class="internal-link-fixed-header"></a>
@@ -43,8 +43,17 @@
</div>
[% END %]
+ [% SET update_state = update.problem_state_display(c) %]
+ [% IF update_state AND update_state != global.last_state AND NOT (global.last_state == "" AND update.problem_state == 'confirmed') %]
+ <p class="meta-2">[% loc('State changed to:') %] [% update_state %]</p>
+ [%- global.last_state = update_state %]
+ [% 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 %]
diff --git a/templates/web/base/report/update/form_name.html b/templates/web/base/report/update/form_name.html
index 926e16878..e4f7ac60c 100644
--- a/templates/web/base/report/update/form_name.html
+++ b/templates/web/base/report/update/form_name.html
@@ -3,15 +3,19 @@
[% PROCESS 'user/_anonymity.html' anonymous = update.anonymous %]
[% can_contribute_as_another_user = c.user.has_permission_to("contribute_as_another_user", problem.bodies_str_ids) %]
+ [% can_contribute_as_anonymous_user = c.user.has_permission_to("contribute_as_anonymous_user", problem.bodies_str_ids) %]
[% can_contribute_as_body = c.user.from_body AND c.user.has_permission_to("contribute_as_body", problem.bodies_str_ids) %]
- [% IF can_contribute_as_another_user OR can_contribute_as_body %]
+ [% IF can_contribute_as_another_user OR can_contribute_as_body OR can_contribute_as_anonymous_user %]
<label for="form_as">[% loc('Provide update as') %]</label>
<select id="form_as" class="form-control js-contribute-as" name="form_as">
<option value="myself" selected>[% loc('Yourself') %]</option>
[% IF can_contribute_as_another_user %]
<option value="another_user">[% loc('Another user') %]</option>
[% END %]
+ [% IF can_contribute_as_anonymous_user %]
+ <option value="anonymous_user">[% loc('Anonymous user') %]</option>
+ [% END %]
[% IF can_contribute_as_body %]
<option value="body">[% c.user.from_body.name %]</option>
[% END %]
diff --git a/templates/web/base/report/update/form_update.html b/templates/web/base/report/update/form_update.html
index f15a1f74b..5a1b3b602 100644
--- a/templates/web/base/report/update/form_update.html
+++ b/templates/web/base/report/update/form_update.html
@@ -36,18 +36,10 @@
<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="form_state">[% loc( 'State' ) %]</label>
- <select name="state" id="form_state" class="form-control">
- [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
- loc('Investigating')], ['action scheduled', loc('Action Scheduled')],
- ['in progress', loc('In Progress')], ['duplicate', loc('Duplicate')],
- ['unable to fix', loc('No further action')], ['not responsible', loc('Not Responsible')],
- ['fixed', loc('Fixed')] ] %]
- <option [% 'selected ' IF state.0 == problem.state_display %] value="[% state.0 %]">[% state.1 %]</option>
- [% END %]
- </select>
+ <label for="state">[% loc( 'State' ) %]</label>
+ [% INCLUDE 'report/inspect/state_groups_select.html' %]
[% ELSE %]
- [% IF (problem.is_fixed OR problem.state == 'closed') AND ((c.user_exists AND c.user.id == problem.user_id) OR alert_to_reporter) %]
+ [% 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 %]
@@ -56,7 +48,7 @@
<label class="inline" for="form_reopen">[% loc('This problem has not been fixed') %]</label>
[% END %]
- [% ELSIF !problem.is_fixed %]
+ [% 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 %]>
diff --git a/templates/web/base/reports/_list-filters.html b/templates/web/base/reports/_list-filters.html
index e657e0375..50e88857d 100644
--- a/templates/web/base/reports/_list-filters.html
+++ b/templates/web/base/reports/_list-filters.html
@@ -1,6 +1,6 @@
[% select_status = BLOCK %]
<select class="form-control js-multiple" name="status" id="statuses" multiple
- data-all="[% loc('All reports') %]" data-all-options='["open","closed","fixed"]'
+ data-all="[% loc('All') %]" data-all-options='["open","closed","fixed"]'
[%~ IF c.cobrand.on_map_default_status == 'open' %]
data-none="[% loc('Unfixed reports') %]"
[%~ END ~%]
@@ -9,9 +9,20 @@
<option value="shortlisted"[% ' selected' IF filter_status.shortlisted %]>[% loc('Shortlisted') %]</option>
<option value="unshortlisted"[% ' selected' IF filter_status.unshortlisted %]>[% loc('Unshortlisted') %]</option>
[% END %]
- <option value="open"[% ' selected' IF filter_status.open %]>[% loc('Unfixed reports') %]</option>
- <option value="closed"[% ' selected' IF filter_status.closed %]>[% loc('Closed reports') %]</option>
- <option value="fixed"[% ' selected' IF filter_status.fixed %]>[% loc('Fixed reports') %]</option>
+ [% IF c.user_exists AND c.user.is_superuser OR c.user.belongs_to_body(body.id) %]
+ [% FOR group IN filter_states %]
+ [% FOR state IN group.1 %]
+ [% NEXT IF state == 'hidden' %]
+ <option value="[% state %]"[% ' selected' IF filter_status.$state %]>[% prettify_state(state, 1) %]</option>
+ [% END %]
+ [% END %]
+ [% ELSE %]
+ <option value="open"[% ' selected' IF filter_status.open %]>[% prettify_state('confirmed') %]</option>
+ <option value="closed"[% ' selected' IF filter_status.closed %]>[% prettify_state('closed') %]</option>
+ [% IF has_fixed_state %]
+ <option value="fixed"[% ' selected' IF filter_status.fixed %]>[% prettify_state('fixed') %]</option>
+ [% END %]
+ [% END %]
</select>
[% END %]
@@ -19,8 +30,8 @@
[% 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 | html %]"[% ' selected' IF filter_category.$cat %]>
- [% cat | html %]
+ <option value="[% cat.name | html %]"[% ' selected' IF filter_category.${cat.name} %]>
+ [% cat.value | html %]
</option>
[% END %]
</select>
@@ -34,7 +45,7 @@
[% END %]
<p class="report-list-filters">
- [% tprintf(loc('<label for="statuses">Show</label> %s <label for="filter_categories">about</label> %s', 'The first %s is a dropdown of all/fixed/etc, the second is a dropdown of categories'), select_status, select_category) %]
+ [% tprintf(loc('<label for="statuses">Show</label> %s reports <label for="filter_categories">about</label> %s', "The first %s is a dropdown of all/fixed/etc, the second is a dropdown of categories"), select_status, select_category) %]
<input type="submit" name="filter_update" value="[% loc('Go') %]">
</p>
diff --git a/templates/web/base/reports/body.html b/templates/web/base/reports/body.html
index 14ecec0f1..b6e6df73b 100755
--- a/templates/web/base/reports/body.html
+++ b/templates/web/base/reports/body.html
@@ -27,17 +27,26 @@
[% map_html %]
+[% IF c.user && c.user.has_body_permission_to('planned_reports') %]
+ <p id="sub_map_links">
+ <a id="fms_shortlist_all" class="hidden">[% loc('Shortlist all visible') %]</a>
+ </p>
+[% END %]
+
</div>
<div id="map_sidebar">
<div id="side">
-<h1 id="reports_heading">
- [% IF ward %]
- [% ward.name %]<span>, </span><a href="[% body_url %]">[% body.name %]</a>
+ [% IF ward %]
+ <h1 id="reports_heading">
+ [% ward.name %]
+ </h1>
+ <a href="[% body_url %]">[% body.name %]</a>
[% ELSE %]
- [% body.name %]
- [% END %]
-</h1>
+ <h1 id="reports_heading">
+ [% body.name %]
+ </h1>
+ [% END %]
[% IF c.cobrand.moniker == 'hart' %]
[% INCLUDE '_hart_hants_note.html' %]
diff --git a/templates/web/base/reports/index.html b/templates/web/base/reports/index.html
index b07227144..a653a2686 100755
--- a/templates/web/base/reports/index.html
+++ b/templates/web/base/reports/index.html
@@ -1,50 +1,113 @@
+[% USE Number.Format -%]
[% extra_js = [
- version('/js/jquery.fixedthead.js')
+ version('/vendor/chart.min.js'),
+ version('/vendor/accessible-autocomplete.min.js'),
+ version('/js/dashboard.js')
] -%]
-[% INCLUDE 'header.html', title = loc('Summary reports'), bodyclass => 'fullwidthpage' %]
+[%
+ problems_reported = problems_reported_by_period.last | format_number;
+ problems_fixed = problems_fixed_by_period.last | format_number;
+ last_seven_reported = last_seven_days.problems_total | format_number;
+ last_seven_updated = last_seven_days.updated_total | format_number;
+ last_seven_fixed = last_seven_days.fixed_total | format_number;
+ other_categories_formatted = other_categories | format_number;
+-%]
+[% INCLUDE 'header.html', title = loc('Dashboard'), bodyclass => 'dashboard fullwidthpage' %]
-<h1>[% loc('All Reports') %]</h1>
+<div class="dashboard-header">
+ <h1>[% loc('Dashboard') %]</h1>
+</div>
-<div class="intro">
-<p>
- [% loc('This is a summary of all reports on this site.') %]
- [% IF bodies.size > 1 %]
- [% loc('Select a particular council to see the reports sent there.') %]
- [% END %]
- [% IF any_empty_bodies %]
- [% loc('Greyed-out lines are councils that no longer exist.') %]
- [% END %]
-</p>
+<div class="dashboard-row">
+ <div class="dashboard-item dashboard-item--12">
+ <h2>[% loc('All time') %]</h2>
+ <div class="labelled-line-chart">
+ <canvas id="chart-all-reports" width="600" height="300"
+ data-labels="[&quot;[% problem_periods.join('&quot;,&quot;') %]&quot;]"
+ data-values-reports="[[% problems_reported_by_period.join(',') %]]"
+ data-values-fixed="[[% problems_fixed_by_period.join(',') %]]"
+ ></canvas>
+ <span class="label" data-datasetindex="0"><strong style="color: #F4A140">[% tprintf(nget("%s problem reported", "%s problems reported", problems_reported_by_period.last), decode(problems_reported) _ '</strong>') %]</span>
+ <span class="label" data-datasetindex="1"><strong style="color: #62B356">[% tprintf(nget("%s report marked as fixed", "%s reports marked as fixed", problems_fixed_by_period.last), decode(problems_fixed) _ '</strong>') %]</span>
+ </div>
+ </div>
</div>
-<table cellpadding="3" cellspacing="1" border="0" class="nicetable">
-<thead>
-<tr>
-<th class="title">[% loc('Name') %]</th>
-<th title="[% loc('Reported within the last four weeks') %]" class="data">[% loc('New <br>problems') %]</th>
-<th title="[% loc('Open for more than four weeks, with an update within the past eight weeks') %]" class="data">[% loc('Older <br>problems') %]</th>
-<th title="[% loc('Open, but not had any update in eight weeks') %]" class="data">[% loc('Old / unknown <br>problems') %]</th>
-<th title="[% loc('Marked fixed/closed in the past eight weeks') %]" class="data">[% loc('Recently <br>fixed') %]</th>
-<th title="[% loc('Marked fixed/closed more than eight weeks ago') %]" class="data">[% loc('Older <br>fixed') %]</th>
-</tr>
-</thead>
+<div class="dashboard-row">
+ <div class="dashboard-item dashboard-item--6">
+ <h2 class="dashboard-subheading">[% loc('Last 7 days') %]</h2>
+ <div class="dashboard-sparklines">
+ <div>
+ <div class="labelled-sparkline">
+ <canvas width="200" height="50" data-color="#F4A140" data-values="[% last_seven_days.problems.join(' ') %]"></canvas>
+ <span class="label" data-datasetindex="0"><strong style="color: #F4A140;">[% tprintf(nget("%s problem reported", "%s problems reported", last_seven_days.problems_total), decode(last_seven_reported) _ '</strong>') %]</span>
+ </div>
+ </div>
+ <div>
+ <div class="labelled-sparkline">
+ <canvas width="200" height="50" data-color="#4FADED" data-values="[% last_seven_days.updated.join(' ') %]"></canvas>
+ <span class="label" data-datasetindex="0"><strong style="color: #4FADED;">[% tprintf(nget("%s update on problems", "%s updates on problems", last_seven_days.updated_total), decode(last_seven_updated) _ '</strong>') %]</span>
+ </div>
+ </div>
+ <div>
+ <div class="labelled-sparkline">
+ <canvas width="200" height="50" data-color="#62B356" data-values="[% last_seven_days.fixed.join(' ') %]"></canvas>
+ <span class="label" data-datasetindex="0"><strong style="color: #62B356;">[% tprintf(nget("%s problem marked as fixed", "%s problems marked as fixed", last_seven_days.fixed_total), decode(last_seven_fixed) _ '</strong>') %]</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="dashboard-item dashboard-item--6">
+ <form class="dashboard-search" action="/reports">
+ <h2>[% loc('Show reports in your area') %]</h2>
+ <label for="body">[% loc('Pick your council') %]</label>
+ <div class="dashboard-search__input">
+ <select id="body" name="body" class="js-autocomplete">
+ <option value="">[% loc('Pick your council') %]</option>
+ [% FOR body IN bodies %]
+ <option value="[% body.id %]">[% body.name | html ~%]
+ [% IF NOT body.get_column("area_count") %] [% loc('(no longer exists)') %][% END ~%]
+ </option>
+ [% END %]
+ </select>
+ </div>
+ <div class="dashboard-search__submit">
+ <input type="submit" value="[% loc('Go') %]">
+ </div>
+ </form>
+ </div>
+</div>
-<tbody>
-[% FOREACH body IN bodies %]
-<tr align="center"
-[%- IF NOT body.get_column("area_count") %] class="gone"
-[%- ELSIF ! (loop.count % 2) %] class="a"
-[%- END %]>
-<td class="title"><a href="[% body.url(c) %]">[% body.name %]</a></td>
-<td class="data">[% IF open.${body.id}.new %]<a href="[% body.url(c, { t => 'new' }) %]">[% open.${body.id}.new %]</a>[% ELSE %]0[% END %]</td>
-<td class="data">[% IF open.${body.id}.older %]<a href="[% body.url(c, { t => 'older' }) %]">[% open.${body.id}.older %]</a>[% ELSE %]0[% END %]</td>
-<td class="data">[% IF open.${body.id}.unknown %]<a href="[% body.url(c, { t => 'unknown' }) %]">[% open.${body.id}.unknown %]</a>[% ELSE %]0[% END %]</td>
-<td class="data">[% IF fixed.${body.id}.new %]<a href="[% body.url(c, { t => 'fixed' }) %]">[% fixed.${body.id}.new %]</a>[% ELSE %]0[% END %]</td>
-<td class="data">[% IF fixed.${body.id}.old %]<a href="[% body.url(c, { t => 'older_fixed' }) %]">[% fixed.${body.id}.old %]</a>[% ELSE %]0[% END %]</td>
-</tr>
-[% TRY %][% PROCESS "reports/_extras.html" %][% CATCH file %][% END %]
-[% END %]
-</tbody>
-</table>
+<div class="dashboard-row">
+ <div class="dashboard-item dashboard-item--6">
+ <h2 class="dashboard-subheading">[% loc('Top 5 responsive councils') %]</h2>
+ <p>[% loc('Average time between a problem being reported and being fixed, last 100 reports.') %]</p>
+ <table class="dashboard-ranking-table">
+ <tbody>
+ [% FOR line IN top_five_bodies %]
+ <tr><td>[% line.name %]</td><td>[% tprintf(nget("%s day", "%s days", line.days), line.days) %]</td></tr>
+ [% END %]
+ </tbody>
+ <tfoot>
+ <tr><td>[% loc('Overall average') %]</td><td>[% tprintf(nget("%s day", "%s days", average), average) %]</td></tr>
+ </tfoot>
+ </table>
+ </div>
+ <div class="dashboard-item dashboard-item--6">
+ <h2 class="dashboard-subheading">[% loc('Top 5 most used categories') %]</h2>
+ <p>[% loc('Number of problems reported in each category, in the last 7 days.') %]</p>
+ <table class="dashboard-ranking-table">
+ <tbody>
+ [% FOR line IN top_five_categories %]
+ [% line_count = line.count | format_number ~%]
+ <tr><td>[% line.category %]</td><td>[% tprintf(nget("%s report", "%s reports", line.count), decode(line_count)) %]</td></tr>
+ [% END %]
+ </tbody>
+ <tfoot>
+ <tr><td>[% loc('Other categories') %]</td><td>[% tprintf(nget("%s report", "%s reports", other_categories), decode(other_categories_formatted)) %]</td></tr>
+ </tfoot>
+ </table>
+ </div>
+</div>
-[% INCLUDE 'footer.html', pagefooter = 'yes' %]
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/base/status/stats.html b/templates/web/base/status/stats.html
index 0f201920d..02f9de904 100644
--- a/templates/web/base/status/stats.html
+++ b/templates/web/base/status/stats.html
@@ -10,8 +10,8 @@
questionnaires_1 = questionnaires.1 | format_number;
total_bodies = bodies.size | format_number;
contacts_total = contacts.total | format_number;
- contacts_1 = contacts.1 | format_number;
- contacts_0 = contacts.0 | format_number;
+ contacts_confirmed = contacts.confirmed | format_number;
+ contacts_unconfirmed = contacts.unconfirmed | format_number;
-%]
<ul>
@@ -24,5 +24,5 @@
<li>[% tprintf( loc('%s confirmed alerts, %s unconfirmed'), decode(alerts_1), decode(alerts_0)) %]</li>
<li>[% tprintf( loc('%s questionnaires sent &ndash; %s answered (%s%%)'), decode(questionnaires_total), decode(questionnaires_1), questionnaires_pc) %]</li>
<li>[% tprintf( loc('%s bodies'), decode(total_bodies)) %],
- [% tprintf( loc('%s council contacts &ndash; %s confirmed, %s unconfirmed'), decode(contacts_total), decode(contacts_1), decode(contacts_0)) %]</li>
+ [% tprintf( loc('%s council contacts &ndash; %s confirmed, %s unconfirmed'), decode(contacts_total), decode(contacts_confirmed), decode(contacts_unconfirmed)) %]</li>
</ul>
diff --git a/templates/web/base/tokens/confirm_alert.html b/templates/web/base/tokens/confirm_alert.html
index f0ad12ff8..0154f0225 100644
--- a/templates/web/base/tokens/confirm_alert.html
+++ b/templates/web/base/tokens/confirm_alert.html
@@ -14,6 +14,6 @@
</div>
-[% INCLUDE next_steps.html %]
+[% INCLUDE next_steps.html utm_content='email alert set up' %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/base/tokens/confirm_problem.html b/templates/web/base/tokens/confirm_problem.html
index a4573b5e6..ff9882d4b 100644
--- a/templates/web/base/tokens/confirm_problem.html
+++ b/templates/web/base/tokens/confirm_problem.html
@@ -36,6 +36,7 @@
[% 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')
%]
diff --git a/templates/web/base/tokens/confirm_update.html b/templates/web/base/tokens/confirm_update.html
index 01ac992ab..6b03308a5 100644
--- a/templates/web/base/tokens/confirm_update.html
+++ b/templates/web/base/tokens/confirm_update.html
@@ -1,9 +1,10 @@
[% INCLUDE 'header.html', bodyclass = 'fullwidthpage', title = loc('Confirmation');
DEFAULT problem = update.problem;
-SET problem_url = c.uri_for('/report', problem.id);
IF update;
- problem_url = problem_url _ '#update_' _ update.id;
+ SET problem_url = update.url;
+ELSE;
+ SET problem_url = problem.url;
END;
%]
@@ -19,6 +20,7 @@ END;
[% INCLUDE
next_steps.html,
just_interacted = 1,
+ utm_content = 'update confirmed',
share_url = c.cobrand.base_url_for_report(problem) _ problem.url,
twitter_comment = loc('I just updated a problem on @fixmystreet')
%]
diff --git a/templates/web/borsetshire/around/postcode_form.html b/templates/web/borsetshire/around/postcode_form.html
new file mode 100644
index 000000000..bb4accf26
--- /dev/null
+++ b/templates/web/borsetshire/around/postcode_form.html
@@ -0,0 +1,26 @@
+<div id="front-main">
+ <div id="front-main-container">
+ [% INCLUDE 'around/intro.html' %]
+
+ [%
+ question = c.cobrand.enter_postcode_text || loc('Enter a nearby street name and area');
+ %]
+
+ <form action="[% c.uri_for('/around') %]" method="get" name="postcodeForm" id="postcodeForm">
+ <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="submit" value="[% loc('Go') %]" id="sub">
+ </div>
+
+ [% IF partial_token %]
+ <input type="hidden" name="partial" value="[% partial_token.token %]">
+ [% END %]
+
+ [% IF c.user_exists AND c.user.categories.size %]
+ <input type="hidden" name="filter_category" value="[% c.user.categories.join(",") | html %]">
+ [% END %]
+ </form>
+ </div>
+</div>
diff --git a/templates/web/borsetshire/auth/_general_top.html b/templates/web/borsetshire/auth/_general_top.html
new file mode 100644
index 000000000..6e65bf90b
--- /dev/null
+++ b/templates/web/borsetshire/auth/_general_top.html
@@ -0,0 +1,28 @@
+<p>The following users exist, all with password <kbd>password</kbd>
+(click them to quickly log in):</p>
+<style>
+#demo-user-list dt {
+ padding: 0 0.5em;
+}
+#demo-user-list dd {
+ color: #666;
+ font-size: 87.5%;
+ padding: 0 0.5em;
+}
+.js #demo-user-list dt:hover {
+ background-color: #faebac;
+ cursor: pointer;
+}
+</style>
+
+<dl id='demo-user-list'>
+ <dt>inspector@example.org</dt>
+ <dd>an inspector, who can shortlist and inspect reports.</dd>
+ <dt>cs@example.org</dt>
+ <dd>a customer service rep, who can create reports as the council or another user, and moderate reports.</dd>
+ <dt>super@example.org</dt>
+ <dd>a council super user, who can do all the above, plus also edit users, templates, priorities, and more.</dd>
+ <dt>user@example.org</dt>
+ <dd>a normal user, who has created the example reports on the site.</dd>
+</dl>
+
diff --git a/templates/web/borsetshire/footer_extra_js.html b/templates/web/borsetshire/footer_extra_js.html
new file mode 100644
index 000000000..3e443af71
--- /dev/null
+++ b/templates/web/borsetshire/footer_extra_js.html
@@ -0,0 +1,5 @@
+[% scripts.push(
+ version('/cobrands/fixmystreet-uk-councils/js.js'),
+ version('/cobrands/borsetshire/google_maps_style.js'),
+ version('/cobrands/borsetshire/js.js'),
+) %]
diff --git a/templates/web/borsetshire/header_site.html b/templates/web/borsetshire/header_site.html
new file mode 100644
index 000000000..51f42881b
--- /dev/null
+++ b/templates/web/borsetshire/header_site.html
@@ -0,0 +1,20 @@
+<header id="site-header" role="banner">
+ <div class="container">
+ [% INCLUDE 'header_logo.html' %]
+ <a href="#main-nav" id="nav-link">Main Navigation</a>
+
+ <!-- hide this on mobile and on map page -->
+ <ul class="site-header__fake-nav">
+ <li>Residents</li>
+ <li>Businesses</li>
+ <li><input type="text"><span class="button">Search</span></li>
+ </ul>
+ </div>
+</header>
+
+<!-- hide this on mobile and on map page -->
+<div id="site-subheader">
+ <div class="container">
+ <h2>Report a problem</h2>
+ </div>
+</div>
diff --git a/templates/web/bristol/footer.html b/templates/web/bristol/footer.html
index 52f2d50df..794dbe457 100644
--- a/templates/web/bristol/footer.html
+++ b/templates/web/bristol/footer.html
@@ -3,8 +3,8 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 %]
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area %]
</div>
</div>
</div> <!-- .wrapper -->
diff --git a/templates/web/bristol/footer_extra_js.html b/templates/web/bristol/footer_extra_js.html
index 1cfcf00f6..2f54083a0 100644
--- a/templates/web/bristol/footer_extra_js.html
+++ b/templates/web/bristol/footer_extra_js.html
@@ -1,5 +1,5 @@
[% scripts.push(
- version('/js/OpenLayers.Projection.OrdnanceSurvey.js')
+ version('/vendor/OpenLayers.Projection.OrdnanceSurvey.js')
version('/cobrands/fixmystreet-uk-councils/js.js'),
version('/cobrands/fixmystreet/assets.js'),
version('/cobrands/bristol/js.js'),
diff --git a/templates/web/bristol/header_logo.html b/templates/web/bristol/header_logo.html
index 42633fbf8..fdcabc99e 100644
--- a/templates/web/bristol/header_logo.html
+++ b/templates/web/bristol/header_logo.html
@@ -1,2 +1,2 @@
- <a href="https://bristol.gov.uk/" id="site-logo">bristol.gov.uk</a>
+ <a href="https://www.bristol.gov.uk/" id="site-logo">bristol.gov.uk</a>
<a href="/" id="report-cta" title="[%- loc('Report a problem') -%]">[%- loc('Report') -%]</a>
diff --git a/templates/web/bristol/maps/bristol.html b/templates/web/bristol/maps/bristol.html
index 08f6fba1c..f13ea4d32 100644
--- a/templates/web/bristol/maps/bristol.html
+++ b/templates/web/bristol/maps/bristol.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.bristol.js'),
+ version('/vendor/OpenLayers/OpenLayers.bristol.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-wmts-base.js'),
version('/js/map-wmts-bristol.js'),
diff --git a/templates/web/bromley/footer.html b/templates/web/bromley/footer.html
index f9b844ce5..5ac94ba83 100644
--- a/templates/web/bromley/footer.html
+++ b/templates/web/bromley/footer.html
@@ -8,8 +8,8 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 hide_privacy_link=1 %]
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_privacy_link=1 %]
</div>
</div>
</div> <!-- .wrapper -->
diff --git a/templates/web/bromley/front/footer-marketing.html b/templates/web/bromley/front/footer-marketing.html
index 34611a1b4..c519eba66 100644
--- a/templates/web/bromley/front/footer-marketing.html
+++ b/templates/web/bromley/front/footer-marketing.html
@@ -12,7 +12,7 @@
<div id="footer-help">
<p>
- Powered by <a class="platform-logo" href="https://fixmystreet.com/about/council">FixMyStreet Platform</a>
+ Powered by <a class="platform-logo" href="https://www.fixmystreet.com/about/professional">FixMyStreet Platform</a>
</p>
</div>
</div>
diff --git a/templates/web/bromley/maps/bromley.html b/templates/web/bromley/maps/bromley.html
index c2ee0273f..71a150f5a 100644
--- a/templates/web/bromley/maps/bromley.html
+++ b/templates/web/bromley/maps/bromley.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers/OpenLayers.fixmystreet.js'),
+ version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-bing-ol.js'),
version('/js/map-fms.js'),
diff --git a/templates/web/bromley/report/new/after_photo.html b/templates/web/bromley/report/new/after_photo.html
new file mode 100644
index 000000000..e8fac0d2a
--- /dev/null
+++ b/templates/web/bromley/report/new/after_photo.html
@@ -0,0 +1,8 @@
+<div class="description_tips" aria-label="Tips for perfect photos">
+ <ul class="do">
+ <li>To help us locate the problem, include both a close-up and a wide shot</li>
+ </ul>
+ <ul class="dont">
+ <li>Avoid personal information</li>
+ </ul>
+</div>
diff --git a/templates/web/bromley/report/update-form.html b/templates/web/bromley/report/update-form.html
index 99f8248e3..e71e27528 100644
--- a/templates/web/bromley/report/update-form.html
+++ b/templates/web/bromley/report/update-form.html
@@ -1,5 +1,5 @@
<div id="update_form">
- <h2>[% loc( 'Provide an update') %]</h2>
+ <h2 class="update-form-heading">[% loc( 'Provide an update') %]</h2>
[% INCLUDE 'errors.html' %]
@@ -34,28 +34,25 @@
</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>
- <div class="general-notes">
- <p>Please note this comments box can only be used for this report.
- <br><a href="http://www.bromley.gov.uk/report">Report a different issue</a>
- </div>
-
[% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
- <label for="form_state">[% loc( 'State' ) %]</label>
- <select name="state" id="form_state" class="form-control">
- [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
- loc('Investigating')], ['action scheduled', loc('Action Scheduled')],
- ['in progress', loc('In Progress')], ['duplicate', loc('Duplicate')],
- ['unable to fix', loc('No further action')], ['not responsible', loc('Not Responsible')],
- ['fixed', loc('Fixed')] ] %]
- <option [% 'selected ' IF state.0 == problem.state_display %] value="[% state.0 %]">[% state.1 %]</option>
- [% END %]
- </select>
+ <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 %]
diff --git a/templates/web/eastherts/footer.html b/templates/web/eastherts/footer.html
index fb39c29c2..59d998959 100644
--- a/templates/web/eastherts/footer.html
+++ b/templates/web/eastherts/footer.html
@@ -3,24 +3,49 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 %]
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area %]
</div>
</div>
</div> <!-- .wrapper -->
[% IF pagefooter %]
- <footer role="contentinfo">
- <ul>
- <li><a href="http://www.eastherts.gov.uk/article/10/A-to-Z">A to Z</a></li>
- <li><a href="http://www.eastherts.gov.uk/article/3347/Accessibility" accesskey="0">Accessibility</a></li>
- <li><a href="http://www.eastherts.gov.uk/article/3351/Disclaimer">Disclaimer</a></li>
- <li><a href="http://www.eastherts.gov.uk/article/3352/Copyright-2016">Copyright 2016</a></li>
- <li><a href="http://www.eastherts.gov.uk/privacy">Privacy, Data Protection and Fraud Prevention</a></li>
- <li class="last"><a href="http://www.eastherts.gov.uk/article/6653/Neighbouring-Councils">Neighbouring Councils</a></li>
- </ul>
- <p>© 2016 East Herts Council , <strong>Telephone:</strong> +44 (0)1279 655261 <strong>Bishop's Stortford Office:</strong>- Charringtons House, Bishop's Stortford, Herts, CM23 2EN. <strong>Hertford Office:</strong>- Wallfields, Pegs Lane, Hertford, SG13 8EQ.</p>
- </footer>
+ <div class="footer clearfix">
+ <div class="container">
+ <div class="footer__left"><img src="https://www.eastherts.gov.uk/image/29958/EastHertsLogo-Footer/original.png" width="250" height="75" alt="EastHertsLogo-Footer" title="EastHertsLogo-Footer" class="footer__logo" />
+ <div class="footer__socialmedia">
+
+ <a href="https://www.facebook.com" rel="external" title="Facebook"><img src="https://www.eastherts.gov.uk/image/29956/Facebook/original.png" width="40" height="40" alt="Facebook" title="Facebook" />
+ </a>
+
+ <a href="https://www.twitter.com" rel="external" title="Twitter"><img src="https://www.eastherts.gov.uk/image/29959/Twitter/original.png" width="40" height="40" alt="Twitter" title="Twitter" />
+ </a><img src="https://www.eastherts.gov.uk/image/29957/RSS/original.png" width="40" height="40" alt="RSS" title="RSS" />
+ </div>
+ </div>
+ <div class="footer__right">
+ <div class="footer__navigation">
+ <ul>
+ <li class="footer__navitem"><a href="https://www.eastherts.gov.uk/article/34224/Site-map" class="footer__navlink">Site map</a>
+ </li>
+ <li class="footer__navitem"><a href="/article/34226/Terms--Conditions" class="footer__navlink">Terms & Conditions</a>
+ </li>
+ <li class="footer__navitem"><a href="https://www.eastherts.gov.uk/article/34230/Privacy--Cookies" class="footer__navlink">Privacy & Cookies</a>
+ </li>
+ <li class="footer__navitem"><a href="https://www.eastherts.gov.uk/article/34378/Privacy-Data-Protection-and-Fraud-Prevention" class="footer__navlink">Privacy, Data Protection and Fraud Prevention</a>
+ </li>
+ <li class="footer__navitem"><a href="https://www.eastherts.gov.uk/article/34376/Comments-Compliments-and-Complaints" class="footer__navlink" accesskey="7">Comments, Compliments and Complaints</a>
+ </li>
+ </ul>
+ </div>
+ <div class="footer__copyright">
+ <p>&copy; 2017 mySociety</p>
+ </div>
+ <div class="footer__goss">
+ <a href="https://www.fixmystreet.com/about/professional">Powered by FixMyStreet</a>
+ </div>
+ </div>
+ </div>
+ </div>
[% END %]
[% INCLUDE 'common_footer_tags.html' %]
diff --git a/templates/web/eastherts/header_extra.html b/templates/web/eastherts/header_extra.html
new file mode 100644
index 000000000..6a1d1bdc1
--- /dev/null
+++ b/templates/web/eastherts/header_extra.html
@@ -0,0 +1,2 @@
+<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700" rel="stylesheet" type="text/css">
+
diff --git a/templates/web/eastherts/header_logo.html b/templates/web/eastherts/header_logo.html
deleted file mode 100644
index 868edc6cd..000000000
--- a/templates/web/eastherts/header_logo.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<a href="[% c.cobrand.base_url IF admin %]/" id="site-logo">[% site_name %]</a>
-<a href="[% c.cobrand.base_url IF admin %]/" id="report-cta" title="[%- loc('Report a problem') -%]">[%- loc('Report') -%]</a>
-
-<div class="header__eh_top_nav">
- <ul id="toputilnav" class="internal">
- <li><a href="http://www.eastherts.gov.uk/">Home</a>
- </li>
- <li><a href="http://www.eastherts.gov.uk/cookies">Cookies on our site</a></li>
- [%# <li><a href="http://www.eastherts.gov.uk/article/5/Log-in">Log in</a></li> %]
- <li><a href="http://www.eastherts.gov.uk/search" accesskey="4">Search the site</a></li>
- <li><a href="http://www.eastherts.gov.uk/article/42/Site-Map" accesskey="3">Site Map</a></li>
- <li class="last"><a href="http://www.eastherts.gov.uk/article/6715/Translation-Services">Translation Services</a></li>
- </ul>
- <ul id="bannerimages">
- <li><a href="http://www.eastherts.gov.uk/payments"><img src="[% version('/cobrands/eastherts/img/paymentsd1.gif') %]" width="110" height="50" alt="Payments"></a>
- </li>
- <li><a href="http://www.eastherts.gov.uk/report"><img src="[% version('/cobrands/eastherts/img/reportd1.gif') %]" width="110" height="50" alt="Report"></a>
- </li>
- <li><a href="http://www.eastherts.gov.uk/contactus"><img src="[% version('/cobrands/eastherts/img/contactusd1.gif') %]" width="110" height="50" alt="Contact Us"></a>
- </li>
- <li>
- <img src="[% version('/cobrands/eastherts/img/consultationd1.gif') %]" width="110" height="50" alt="Consultations">
- </li>
- </ul>
-</div> \ No newline at end of file
diff --git a/templates/web/eastherts/header_site.html b/templates/web/eastherts/header_site.html
index 30f692573..5f1f4965e 100644
--- a/templates/web/eastherts/header_site.html
+++ b/templates/web/eastherts/header_site.html
@@ -1,87 +1,37 @@
-<header id="site-header" role="banner">
+<div class="toputils">
<div class="container">
- [% INCLUDE 'header_logo.html' %]
+ <a href="[% c.cobrand.base_url IF admin %]/" id="report-cta" title="[%- loc('Report a problem') -%]">[%- loc('Report') -%]</a>
<a href="#main-nav" id="nav-link">Main Navigation</a>
- </div>
- <div class="header__eh_nav">
- <div class="container">
- <ul>
- <li>
- <a href="http://www.eastherts.gov.uk/article/11/A">A - Z Index - A</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/12/B">B</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/13/C">C</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/14/D">D</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/15/E">E</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/16/F">F</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/17/G">G</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/18/H">H</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/29071/I">I</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/20/J">J</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/21/K">K</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/22/L">L</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/23/M">M</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/24/N">N</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/25/O">O</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/26/P">P</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/28/R">R</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/29/S">S</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/30/T">T</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/31/U">U</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/32/V">V</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/33/W">W</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/34/X">X</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/35/Y">Y</a>
- </li>
- <li>
- <a href="http://www.eastherts.gov.uk/article/36/Z">Z</a>
- </li>
- </ul>
+ <!-- <a href="https://www.eastherts.gov.uk/article/34246/Search">Search</a> -->
+
+ <div class="toputils__right desk-only">
+ <div class="toputils__nav">
+ <ul class="toputils__navlist">
+ <li><a href="/article/34210/Accessibility" class="toputils__navitem">Accessibility</a>
+ </li>
+ <li><a href="/article/34212/A-Z-of-Services" class="toputils__navitem">A-Z of Services</a>
+ </li>
+ <li><a href="/article/34377/Contact-us" class="toputils__navitem">Contact us</a>
+ </li>
+ </ul>
+ </div>
</div>
</div>
+</div>
+
+<header id="site-header" role="banner">
+ <div class="container">
+ <a href="[% c.cobrand.base_url IF admin %]/" id="site-logo">[% site_name %]</a>
+ <div class="mainmenu desk-only">
+ <ul class="mainmenu__list">
+ <li class="footer__navitem"><a href="http://www.eastherts.gov.uk/residents" class="mainmenu__item">Residents</a></li>
+ <li class="footer__navitem"><a href="http://www.eastherts.gov.uk/business" class="mainmenu__item">Business</a></li>
+ <li class="footer__navitem"><a href="http://www.eastherts.gov.uk/council" class="mainmenu__item">Your Council</a></li>
+ <li class="footer__navitem"><a href="http://www.eastherts.gov.uk/news" class="mainmenu__item">News</a></li>
+ </ul>
+ </div>
+ <div class="searchcontrol desk-only">
+ <a href="https://www.eastherts.gov.uk/article/34246/Search" class="searchcontrol__expandtoggle">Search</a>
+ </div>
+ </div>
</header>
diff --git a/templates/web/fiksgatami/footer.html b/templates/web/fiksgatami/footer.html
index 097fe82e1..76f52a212 100644
--- a/templates/web/fiksgatami/footer.html
+++ b/templates/web/fiksgatami/footer.html
@@ -8,7 +8,7 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
+ <div class="container">
<div id="main-nav" role="navigation">
<ul class="nav-menu nav-menu--mysoc">
<li><a href="http://www.nuug.no/">Foreningen NUUG</a></li>
diff --git a/templates/web/fiksgatami/nn/footer.html b/templates/web/fiksgatami/nn/footer.html
index 08ec155f5..519a8c3f5 100644
--- a/templates/web/fiksgatami/nn/footer.html
+++ b/templates/web/fiksgatami/nn/footer.html
@@ -8,7 +8,7 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
+ <div class="container">
<div id="main-nav" role="navigation">
<ul class="nav-menu nav-menu--mysoc">
<li><a href="http://www.nuug.no/">Foreininga NUUG</a></li>
diff --git a/templates/web/fixamingata/about/faq-sv.html b/templates/web/fixamingata/about/faq-sv.html
index aea90743b..05ffdaddc 100755
--- a/templates/web/fixamingata/about/faq-sv.html
+++ b/templates/web/fixamingata/about/faq-sv.html
@@ -21,8 +21,6 @@ markera problemen på en karta. Tjänsten bygger på en förlaga från Storbrita
där tjänsten lanserades i Februari 2007. I Norge lanserades den 2011 och i
Sverige 2013.
</dd>
- <dt>Hur kan jag lämna ett förbättringsförslag kring FixaMinGata?</dt>
- <dd>Lämna ditt förslag <a href="javascript:UserVoice.showPopupWidget();">här</a>.</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>
diff --git a/templates/web/fixamingata/footer.html b/templates/web/fixamingata/footer.html
index fc3cf02f0..ad4d6c4a6 100644
--- a/templates/web/fixamingata/footer.html
+++ b/templates/web/fixamingata/footer.html
@@ -8,7 +8,7 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
+ <div class="container">
<div id="main-nav" role="navigation">
<ul class="nav-menu nav-menu--main">
<li><[% IF c.req.uri.path == '/' %]span[% ELSE %]a href="/"[% END %] class="report-a-problem-btn"
@@ -21,7 +21,6 @@
%]>[% loc("Local alerts") %]</[% c.req.uri.path == '/alert' ? 'span' : 'a' %]></li>[%
%]<li><[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="/faq"[% END
%]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]></li>
- <!-- <li><a href="javascript:UserVoice.showPopupWidget();">Lämna förslag</a></li> -->
</ul>
</div>
</div>
@@ -29,15 +28,6 @@
</div> <!-- .wrapper -->
[% INCLUDE 'common_footer_tags.html' %]
-
-<script type="text/javascript">
- var uvOptions = {};
- (function() {
- var uv = document.createElement('script'); uv.type = 'text/javascript'; uv.async = true;
- uv.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'widget.uservoice.com/vflswzMnwvfytYBz1rNw.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(uv, s);
- })();
-</script>
</body>
</html>
diff --git a/templates/web/fixamingata/front/tips.html b/templates/web/fixamingata/front/tips.html
index fd309708f..038343d90 100644
--- a/templates/web/fixamingata/front/tips.html
+++ b/templates/web/fixamingata/front/tips.html
@@ -1 +1 @@
-<div style="height: 329px; padding-top: 20px;"><iframe width="100%" height="329" src="//www.youtube.com/embed/H5knzdalYI0" frameborder="0" allowfullscreen></iframe></div>
+<div style="height: 329px; padding-top: 20px;"><iframe width="100%" height="329" src="//www.youtube.com/embed/uyiRyuIV0qY" frameborder="0" allowfullscreen></iframe></div>
diff --git a/templates/web/fixamingata/header_opengraph_image.html b/templates/web/fixamingata/header_opengraph_image.html
index 7ec1aabb0..7a681484a 100644
--- a/templates/web/fixamingata/header_opengraph_image.html
+++ b/templates/web/fixamingata/header_opengraph_image.html
@@ -1,4 +1,4 @@
- <meta property="og:image" content="[% c.cobrand.base_url %]/cobrands/fixmystreet/images/fms-og_image.jpg">
+ <meta property="og:image" content="[% c.cobrand.base_url %]/cobrands/fixamingata/images/fms-og_image.jpg">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
diff --git a/templates/web/fixamingata/report/new/after_title.html b/templates/web/fixamingata/report/new/after_title.html
new file mode 100644
index 000000000..ff38624f5
--- /dev/null
+++ b/templates/web/fixamingata/report/new/after_title.html
@@ -0,0 +1,8 @@
+<div class="description_tips" aria-label="Allmänna riktlinjer kring rapporter">
+ <ul class="do">
+ <li>Rapportera endast fysiska problem som kan åtgärdas</li>
+ </ul>
+ <ul class="dont">
+ <li>Använd inte FixaMinGata för rena synpunkter och förslag</li>
+ </ul>
+</div>
diff --git a/templates/web/fixamingata/report/new/inline-tips.html b/templates/web/fixamingata/report/new/inline-tips.html
index 4fab9c81c..5bce67257 100644
--- a/templates/web/fixamingata/report/new/inline-tips.html
+++ b/templates/web/fixamingata/report/new/inline-tips.html
@@ -8,7 +8,6 @@
</ul>
<ul class="dont">
<li>Vid akut situation används inte FixaMinGata (ex. vattenläckor)</li>
- <li>Använd inte FixaMinGata för rena synpunkter och förslag</li>
<li>Inkludera inte privata kontaktdetaljer i beskrivningen</li>
</ul>
</div>
diff --git a/templates/web/fixamingata/report/new/notes.html b/templates/web/fixamingata/report/new/notes.html
deleted file mode 100644
index 9ec6b0e29..000000000
--- a/templates/web/fixamingata/report/new/notes.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<ul class="plain-list">
-[% IF all_councils.items.first > 0 %]
- <li style="margin-bottom: 0em;">[% id = all_councils.items.first;
- tprintf("Kom ihåg att FixaMinGata primärt är avsett för att rapportera fysiska problem som kan åtgärdas. Om ditt problem inte lämpar sig för att rapportera via den här webbsidan kan du kontakta din kommun direkt via <a href='%s'>deras webbsida</a>.", all_body_urls.$id); %]</li>
-[% ELSE %]
- <li style="margin-bottom: 0em;">[% loc("Remember that FixMyStreet is primarily for reporting physical problems that can be fixed. If your problem is not appropriate for submission via this site remember that you can contact your council directly using their own website.") %]</li>
-[% END %]
-</ul>
diff --git a/templates/web/fixamingata/report/new/sidebar.html b/templates/web/fixamingata/report/new/sidebar.html
index 972fccf53..e69de29bb 100644
--- a/templates/web/fixamingata/report/new/sidebar.html
+++ b/templates/web/fixamingata/report/new/sidebar.html
@@ -1,5 +0,0 @@
-<div id="report-a-problem-sidebar">
- <div class="sidebar-notes">
- [% INCLUDE 'report/new/notes.html' %]
- </div>
-</div>
diff --git a/templates/web/fixmystreet-uk-councils/footer_extra_js.html b/templates/web/fixmystreet-uk-councils/footer_extra_js.html
index 1e7a38f8a..218607498 100644
--- a/templates/web/fixmystreet-uk-councils/footer_extra_js.html
+++ b/templates/web/fixmystreet-uk-councils/footer_extra_js.html
@@ -1,4 +1,4 @@
[% scripts.push(
- version('/js/OpenLayers.Projection.OrdnanceSurvey.js')
+ version('/vendor/OpenLayers.Projection.OrdnanceSurvey.js')
version('/cobrands/fixmystreet-uk-councils/js.js'),
) %]
diff --git a/templates/web/fixmystreet.com/about/council.html b/templates/web/fixmystreet.com/about/council.html
deleted file mode 100644
index 5abbbb2ef..000000000
--- a/templates/web/fixmystreet.com/about/council.html
+++ /dev/null
@@ -1,280 +0,0 @@
-[% 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 %]
-
-[% INCLUDE header.html
- title = 'FixMyStreet for Councils', bodyclass = 'fms-for-councils fullwidthpage'
-%]
-
-<div class="fixed-container">
- <div class="council-header">
- <h1 class="councils-logo">FixMyStreet for Councils</h1>
- </div>
- <div class="councils-hero">
- <div class="councils-hero__presentation">
- <div class="councils-content-wrapper">
- <h2 class="councils-hero__title">Reliable fault-reporting and case management for councils, based on the nation’s most popular service, FixMyStreet.com</h2>
- <img class="councils-hero__product" src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/device-mockup.png') %]" alt="">
- </div>
- </div>
- <p class="councils-hero__subtitle">Since 2007, FixMyStreet’s user-centric design has given UK citizens an
- easy, intuitive way to report street issues. That same focus on usability is reflected in the management interface for council staff, working in tandem with your existing systems.
- The result? Happy residents and happy colleagues.</p>
- </div>
- <div class="councils-features">
- <div class="councils-content-wrapper">
- <div class="councils-features__grid">
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--excellence"></div>
- <h3>Digital excellence</h3>
- <p>FixMyStreet was co-designed with council insiders. We made it into the most user-centred, accessible approach to non-emergency issue reporting available today. And now it’s the leader in its class.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--duplication"></div>
- <h3>Minimise duplication </h3>
- <p>FixMyStreet’s open and transparent approach to local issue reporting that reduces incidents of repeat and duplicate reports. Residents who go to report an issue that’s already in your database will see the existing report, along with a progress report showing how near it is to a fix.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--reduce"></div>
- <h3>Reduce operating costs</h3>
- <p>FixMyStreet intelligently routes problems to where you want them. Allocate the correct person, team, authority or contractor for each type of report, based on any combination of location, category and priority.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--customise"></div>
- <h3>Stay flexible</h3>
- <p>FixMyStreet is open standards compliant. That gives you complete customer flexibility to work with additional contractors at any time. Integrate other services as and when you need them, and provide additional functionalities to your residents.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--bringyourown"></div>
- <h3>Bring your own</h3>
- <p>You’ve already invested in mapping, asset, customer and case management services. FixMyStreet slots right in with your existing portfolio, so you can continue to use the systems your team knows and trusts.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--process"></div>
- <h3>Streamline your process </h3>
- <p>FixMyStreet is the first case-management service designed with councils, for councils. It streamlines your processes right through from customer service, to inspection, instruction and resolution.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--expand"></div>
- <h3>Expand your reach</h3>
- <p>Users can make a report via your own website, or on FixMyStreet.com — and either way, those that fall within your council boundaries will be published on both sites. This extends your services to our 1 million+ visitors per year — and offers a public display of the often-hidden work you are doing to keep your area in good shape.</p>
- </div>
- <div class="councils-features__feature">
- <div class="councils-features__thumb councils-features__thumb--control"></div>
- <h3>Complete control</h3>
- <p>FixMyStreet gives you and your team an at-a-glance snapshot, or a deeper picture of performance. Track service levels, highlight bottlenecks and monitor contracts with area dashboards, accessible only to staff.</p>
- </div>
- </div>
- <a href="#order" class="button order-now-button">Order now</a>
- </div>
- </div>
- <div class="councils-clients">
- <div class="councils-clients__grid">
- <div class="councils-clients__client">
- <a href="https://fixmystreet.bristol.gov.uk/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/bristol-logo.png') %]" alt="Bristol City Council">
- </a>
- </div>
- <div class="councils-clients__client">
- <a href="https://fix.angus.gov.uk/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/angus-logo.png') %]" alt="Angus Council">
- </a>
- </div>
- <div class="councils-clients__client">
- <a href="https://fixmystreet.oxfordshire.gov.uk/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/oxfordshire-logo.png') %]" alt="Oxfordshire County Council">
- </a>
- </div>
- <div class="councils-clients__client">
- <a href="https://hart.fixmystreet.com/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/hart-logo.png') %]" alt="Hart District Council">
- </a>
- </div>
- <div class="councils-clients__client">
- <a href="https://fix.bromley.gov.uk/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/bromley-logo.png') %]" alt="Bromley Council">
- </a>
- </div>
- <div class="councils-clients__client">
- <a href="https://www.zueriwieneu.ch/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/zurich-logo.png') %]" alt="Stadt Z&uuml;rich">
- </a>
- </div>
- <div class="councils-clients__client">
- <a href="https://greenwich.fixmystreet.com/">
- <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/greenwich-logo.png') %]" alt="Royal Borough of Greenwich">
- </a>
- </div>
- </div>
- </div>
-
- <div class="councils-compatibility">
- <div class="councils-content-wrapper">
- <h2>Works with</h2>
- <div class="councils-compatibility__grid">
- <div class="councils-compatibility__item">
- <h3>Customer management</h3>
- <ul>
- <li><a href="http://www.kana.com/lagan-crm/customer-experience-management">Lagan</a></li>
- <li><a href="https://www.microsoft.com/en-gb/dynamics/default.aspx">Microsoft Dynamics</a></li>
- <li><a href="https://products.office.com/en-us/sharepoint/collaboration">Sharepoint</a></li>
- <li><a href="http://www.salesforce.com/uk/homepage/index-l.jsp?mboxSession=1471855891730-631658">Salesforce</a></li>
- <li><a href="http://www.jadu.net/cxm">Jadu</a></li>
- <li><a href="http://www.agilysys.com/">Agilsys</a></li>
- </ul>
- </div>
- <div class="councils-compatibility__item">
- <h3>Asset management</h3>
- <ul>
- <li><a href="https://go.sap.com">SAP EAS</a></li>
- <li><a href="http://www-03.ibm.com/software/products/en/maximoassetmanagement">IBM Maximo</a></li>
- <li><a href="http://www.ifsworld.com/">IFS</a></li>
- </ul>
-
- <h3>Geographic Information Systems</h3>
- <ul>
- <li><a href="http://www.esri.com/software/arcgis">ESRI ArcGIS</a></li>
- </ul>
- </div>
- </div>
- </div>
- </div>
-
- <div class="councils-pricing">
- <div class="councils-content-wrapper">
- <h2>Pricing</h2>
- <div class="councils-pricing__grid">
- <div class="councils-pricing__main-prices">
-
- <div class="pricing-table">
- <div class="pricing-table__item">
- <h3>Basic FixMyStreet integration</h3>
- <p class="pricing-table__item__price"><strong>&pound;7,500 per year</strong></p>
- <p>The award-winning FixMyStreet experience seamlessly integrated with your site. A responsive web application for reporting, viewing and discussing problems - branded to match your site’s styles and templates. Use FixMyStreet for Councils to keep your residents up to date and route problems by email to the correct individual or team. The internal dashboard eanbles you to manage performance.</p>
- </div>
- <div class="pricing-table__item">
- <h3>Case&hyphen;management integration</h3>
- <p class="pricing-table__item__price"><strong>&pound;15,000 per year</strong></p>
- <p>Our award-winning reporting solution &ndash; your existing processes and systems. We’ll integrate FixMyStreet into your customer, case or asset management system ensuring that there’s minimal impact on your organisation. Accept reports, automatically publish updates and reports from other channels via your existing tools, directly onto FixMyStreet.</p>
- <p>Supported services include: Confirm, Mayrise, MS Dynamics and Exor. If you use an alternative service or your own internal system we’ll scope and implement additional support via our Specialist Cloud Service.</p>
- </div>
- <div class="pricing-table__item">
- <h3>Top&hyphen;to&hyphen;bottom case&hyphen;management</h3>
- <p class="pricing-table__item__price"><strong>&pound;35,000 per year</strong></p>
- <p>Starting from zero? Want a completely new system from beginning to end? Then opt for the full-service option. </p>
- <p>Use FixMyStreet to manage reports every step of the way. This system handles everything, from acknowledgement, through inspection to contractor instruction or resolution. Each element was co-designed with local government insiders who know exactly what’s needed for clear, simple highways parks and street case management.</p>
- </div>
-
- </div>
-
- </div>
- <div class="councils-pricing__extra-prices">
- <div class="extra-pricing-table">
- <h3>Optional extras</h3>
-
- <h4>Mobile application</h4>
- <p class="extra-pricing__price">&pound;4,500 per year</p>
- <p class="extra-pricing__desc">Companion iOS and Android app (other platforms available by negotiation) with council branding to match your new FixMyStreet based reporting service.</p>
- <hr>
- <h3>Bring your own, or we can provide</h3>
- <div class="pricing-accordion accordion">
- <div class="accordion-item">
- <a href="#" class="accordion-switch accordion-switch--closed"><h4>Custom map tiles</h4></a>
- <div class="accordion-content">
- <p class="extra-pricing__price">&pound;1,500 per year</p>
- <p class="extra-pricing__desc">FixMyStreet comes with OpenStreetMap/Bing geographical base maps as standard. But for a completely unique look, or to key in with your existing mapping visuals, we can support the industry standard WMS maps of your choice.</p>
- </div>
- </div>
- <div class="accordion-item">
- <a href="#" class="accordion-switch accordion-switch--closed"><h4>Custom geocoding</h4></a>
- <div class="accordion-content">
- <p class="extra-pricing__price">&pound;1,500 per year</p>
- <p class="extra-pricing__desc">Transforming an address into a point on a map: it’s called geocoding, and we utilise Bing, OpenStreetMap and Google’s services as standard. But if you have your own geocoding system, we can integrate that to ensure a precise location for a given postcode, address or place name.</p>
- </div>
- </div>
- <div class="accordion-item">
- <a href="#" class="accordion-switch accordion-switch--closed"><h4>Asset locations</h4></a>
- <div class="accordion-content">
- <p class="extra-pricing__price">&pound;3,500 per year or included as standard within our top‐to‐bottom case‐management service.</p>
- <p class="extra-pricing__desc">Show your residents the locations, identifiers and status of assets right on the map — all they have to do is pick the right one. Compatible with any industry standard WFS or WMS service.</p>
- </div>
- </div>
- <div class="accordion-item">
- <a href="#" class="accordion-switch accordion-switch--closed"><h4>Adopted roads</h4></a>
- <div class="accordion-content">
- <p class="extra-pricing__price">&pound;3,500 per year or included as standard within our top‐to‐bottom case‐management service.</p>
- <p class="extra-pricing__desc">Ensure that you only receive reports for roads that you actually manage. Highlight adopted roads and private estates at the point of report creation, saving valuable time, expense and irritation. Compatible with any industry standard WFS or WMS service.</p>
- </div>
- </div>
- <div class="accordion-item">
- <a href="#" class="accordion-switch accordion-switch--closed"><h4>Planned works</h4></a>
- <div class="accordion-content">
- <p class="extra-pricing__price">&pound;3,000 per year or included as standard within our top‐to‐bottom case‐management service.</p>
- <p class="extra-pricing__desc">Publish your planned works alongside reports to keep residents informed and lower the incidence of unnecessary reporting. Support for Elgin’s roadworks.org or any industry standard WFS or WMS service.</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-
-<div class="council-order" id="order">
- <div class="councils-content-wrapper">
- <h2>Request a free demo</h2>
- <form action="/contact/submit" method="post">
- <div class="council-order__form">
- <div class="form-group">
- <label for="product">We are interested in&hellip;</label>
- <span class="required">required</span>
- <div class="radio-as-buttons">
- <label><input name="extra.product" id="product" type="radio" value="simple-fault-reporting" required>Basic FixMyStreet integration <span class="council-order__form__product__price">&pound;7,500 per year</span></label>
- <label><input name="extra.product" id="product" type="radio" value="case-management-integration">Case-management integration <span class="council-order__form__product__price">&pound;15,000 per year</span></label>
- <label><input name="extra.product" id="product" type="radio" value="top-to-bottom-case-management">Top-to-bottom case-management <span class="council-order__form__product__price">&pound;35,000 per year</span></label>
- </div>
- </div>
- <div class="form-group">
- <label for="message">A little more about your requirements</label>
- <textarea name="message" id="message" required> </textarea>
- </div>
- <div class="form-group">
- <label for="name">Name</label>
- <span class="required">required</span>
- <input type="text" name="name" id="name" required>
- </div>
- <div class="form-group">
- <label for="org">Organisation</label>
- <span class="required">required</span>
- <input type="text" name="extra.organisation" id="org" required>
- </div>
- <div class="form-group">
- <label for="email">Contact email</label>
- <span class="required">required</span>
- <input type="email" name="em" id="email" required>
- </div>
- <div class="form-group">
- <label for="phone">Contact telephone</label>
- <input type="tel" name="extra.phone" id="phone">
- </div>
- <div class="form-group submit-group">
- <input type="hidden" name="extra.referer" value="[% c.req.headers.referer | html %]">
- <input type="hidden" name="subject" value="Councils submission">
- <input type="hidden" name="recipient" value="enquiries">
- <input type="hidden" name="dest" value="from_council">
- <input type="submit" value="Send">
- </div>
- </div>
- </form>
- </div>
- <div class="council-order__screenshot">
- </div>
-</div>
-
-
-
- </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 0bf55742b..8c38b2cdb 100755
--- a/templates/web/fixmystreet.com/about/faq-en-gb.html
+++ b/templates/web/fixmystreet.com/about/faq-en-gb.html
@@ -318,7 +318,7 @@ correspondence to you – or if you only have an auto-response, you may be able
to find further contact details there.
<p>If you still have no joy, we suggest starting a new FixMyStreet report. You
may also like to use another useful mySociety website, <a
-href="https://www.writetothem.com/?utm_source=fixmystreet.com&utm_campaign=static_links&utm_medium=link&utm_content=help+what_now">WriteToThem</a>,
+href="https://www.writetothem.com/?utm_source=fixmystreet.com&amp;utm_campaign=static_links&amp;utm_medium=link&amp;utm_content=help+what_now">WriteToThem</a>,
to contact your local councillors and ask them to help.
</dd>
@@ -357,7 +357,7 @@ 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 for Councils customer who has chosen this option – see 'Can
+FixMyStreet Professional customer who has chosen this option – see 'Can
FixMyStreet connect directly with council systems?', below).
</dd>
@@ -397,7 +397,7 @@ FixMyStreet about as easy to use as possible.
<dt>FixMyStreet is better than our own reporting system</dt>
<dd>
<p>Then why not replace it with FixMyStreet? We now offer a <a
-href="/council">complete fault-reporting solution for councils</a>, that
+href="/about/professional">complete fault-reporting solution for councils</a>, that
integrates with your own website.
<p>It has all the benefits of FixMyStreet's focus on usability, and is a
robust, economical, cloud-based option.
diff --git a/templates/web/fixmystreet.com/about/professional.html b/templates/web/fixmystreet.com/about/professional.html
new file mode 100644
index 000000000..0978d19bc
--- /dev/null
+++ b/templates/web/fixmystreet.com/about/professional.html
@@ -0,0 +1,720 @@
+[% 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 %]
+
+[% INCLUDE header.html
+ title = 'FixMyStreet Professional', bodyclass = 'fms-for-councils fullwidthpage'
+%]
+
+<div class="fixed-container">
+ <div class="council-header">
+ <h1 class="councils-logo">FixMyStreet Professional</h1>
+ </div>
+ <div class="councils-hero">
+ <div class="councils-hero__presentation">
+ <div class="councils-content-wrapper">
+ <h2 class="councils-hero__title">FixMyStreet Professional: street reporting service for councils</h2>
+ <img class="councils-hero__product" src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/device-mockup.png') %]" alt="">
+ </div>
+ </div>
+ <div class="councils-hero__subtitle">
+ <p class="councils-hero__subtitle__primary">Integrate FixMyStreet with any council system for smooth end-to-end report fulfilment</p>
+ <p class="councils-hero__subtitle__secondary">Residents, staff and contractors love FixMyStreet for its easy-use interfaces.
+ If you’re the budget-holder, you’ll love its sensible pricing, too.</p>
+ </div>
+ <div class="councils-hero__demo-access">
+ <h2>Try FixMyStreet Professional right now, on our demo site</h2>
+ <form action="/contact/submit" method="post" class="councils-hero__demo-access__form js-fms-pro-demo-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>
+ </div>
+ <div class="form-group">
+ <label for="demo-email">Contact email</label>
+ <span class="required">required</span>
+ <input type="email" name="em" id="demo-email" required>
+ <p class="form-note">Ending in .gov.uk</p>
+ </div>
+ <div class="form-group">
+ <label for="demo-phone">Contact phone number</label>
+ <input type="text" name="extra.phone" id="demo-phone">
+ </div>
+ <div class="form-group">
+ <label for="demo-job">Job title</label>
+ <input type="text" name="extra.job_title" id="demo-job">
+ </div>
+ <div class="form-group submit-group">
+ <input type="hidden" name="extra.referer" value="[% c.req.headers.referer | html %]">
+ <input type="hidden" name="subject" value="Demo site request">
+ <input type="hidden" name="message" value="This visitor was sent a link to demo.fixmystreet.com">
+ <input type="hidden" name="recipient" value="bettercities">
+ <input type="hidden" name="dest" value="from_council">
+ <input type="hidden" name="success_url" value="https://demo.fixmystreet.com">
+ <input type="submit" value="Let me in" class="btn">
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="councils-sales councils-sales--benefits">
+ <div class="councils-content-wrapper">
+ <h2>Benefits</h2>
+ <div class="councils-sales__grid">
+ <div class="councils-features__feature">
+ <h3>Increase efficiency</h3>
+ <p>Route problems to the correct person, team, authority or contractor based on location, category and priority.</p>
+ </div>
+ <div class="councils-features__feature">
+ <h3>Minimise duplication</h3>
+ <p>An open and transparent approach to local issue reporting that reduces incidents of repeat and duplicate reports.</p>
+ </div>
+ <div class="councils-features__feature">
+ <h3>Streamline your process</h3>
+ <p>The first case-management service designed with councils, for councils. Streamline your process from customer service, through inspection to instruction and resolution.</p>
+ </div>
+ <div class="councils-features__feature">
+ <h3>Stay flexible</h3>
+ <p>Open standards compliant for complete customer flexibility: support the landscape of service providers to further increase your reach.</p>
+ </div>
+ <div class="councils-features__feature">
+ <h3>Work with your existing services</h3>
+ <p>Support for your existing mapping, asset, customer and case management services ensures that your solution works for your current processes and systems.</p>
+ </div>
+ <div class="councils-features__feature">
+ <h3>Expand your reach</h3>
+ <p>Reports made within your boundaries are published to FixMyStreet.com’s one million visitors a year.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="councils-pricing">
+ <div class="councils-content-wrapper">
+ <h2>Plans</h2>
+ <div class="councils-pricing__grid">
+
+ <table class="pricing-table">
+ <caption class="visuallyhidden">Pricing and feature information for all FixMyStreet Pro tiers</caption>
+ <thead>
+ <tr>
+ <th scope="col" class="blank">
+ <span class="visuallyhidden">Features</span>
+ </th>
+ <th scope="col">
+ <span class="pricing-table__tier-name">Driveway</span>
+ </th>
+ <th scope="col">
+ <span class="pricing-table__tier-name">Crescent</span>
+ </th>
+ <th scope="col">
+ <span class="pricing-table__tier-name">Boulevard</span>
+ </th>
+ <th scope="col">
+ <span class="pricing-table__tier-name">Avenue</span>
+ </th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Define problem categories and email contacts
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Dashboards
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">None</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ 1 customisable dashboard
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ Customisable dashboards for up to 3 teams
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ Customisable dashboards for up to 3 teams
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ FixMyStreet at your domain, with your branding
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ System integrations (eg: CONFIRM, Salesforce, Mayrise)
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">None</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">None</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ Up to 2 integrations
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ Up to 4 integrations
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Inspector specific views
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">None</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">None</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">None</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Moderate reports
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ De-duplicate reports
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Customer services agents can report on customer’s behalf
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Training
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ Training workshop for up to 12 staff
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ Training workshop for up to 40 staff
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ AddressBase integration
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Roadworks.org planned works integration
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Add asset locations
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Offline functionality
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Custom map tiles
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Custom geocoder
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <span class="pricing-table__feature-name">
+ Add adopted roads
+ </span>
+ </th>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--no">No</i>
+ </span>
+ </td>
+ <td>
+ <span class="pricing-table__feature-value">
+ <i class="boolean-icon boolean-icon--yes">Yes</i>
+ </span>
+ </td>
+ </tr>
+ <tr class="pricing-table__prices">
+ <td>
+ <span class="pricing-table__price">Price</span>
+ </td>
+ <td>
+ <span class="pricing-table__price">Free</span>
+ </td>
+ <td>
+ <span class="pricing-table__price">£7500</span>
+ </td>
+ <td>
+ <span class="pricing-table__price">£20000</span>
+ </td>
+ <td>
+ <span class="pricing-table__price">£35000</span>
+ </td>
+ </tr>
+ </tbody>
+
+ </table>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="councils-clients">
+ <h2>Clients</h2>
+ <div class="councils-clients__grid">
+ <div class="councils-clients__client">
+ <a href="https://fixmystreet.bristol.gov.uk/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/bristol-logo.png') %]" alt="Bristol City Council">
+ </a>
+ </div>
+ <div class="councils-clients__client">
+ <a href="https://fix.angus.gov.uk/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/angus-logo.png') %]" alt="Angus Council">
+ </a>
+ </div>
+ <div class="councils-clients__client">
+ <a href="https://fixmystreet.oxfordshire.gov.uk/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/oxfordshire-logo.png') %]" alt="Oxfordshire County Council">
+ </a>
+ </div>
+ <div class="councils-clients__client">
+ <a href="https://hart.fixmystreet.com/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/hart-logo.png') %]" alt="Hart District Council">
+ </a>
+ </div>
+ <div class="councils-clients__client">
+ <a href="https://fix.bromley.gov.uk/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/bromley-logo.png') %]" alt="Bromley Council">
+ </a>
+ </div>
+ <div class="councils-clients__client">
+ <a href="https://www.zueriwieneu.ch/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/zurich-logo.png') %]" alt="Stadt Z&uuml;rich">
+ </a>
+ </div>
+ <div class="councils-clients__client">
+ <a href="https://greenwich.fixmystreet.com/">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/greenwich-logo.png') %]" alt="Royal Borough of Greenwich">
+ </a>
+ </div>
+ </div>
+ </div>
+
+ <div class="screenshot-of-themes">
+ <div class="councils-content-wrapper">
+ <img src="[% version('/cobrands/fixmystreet.com/images/fms-for-councils/screenshot-of-themes.jpg') %]" alt="">
+ </div>
+ </div>
+
+ <div class="councils-sales councils-sales--features">
+ <div class="councils-content-wrapper">
+ <h2>Features</h2>
+ <div class="councils-sales__grid">
+ <div class="councils-features__feature">
+ <div class="councils-features__screenshot"></div>
+ <h3>Map-centric problem reporting</h3>
+ <p>Handle any type of location-specific report within the nominated
+ county, borough or city; including geolocation and images. </p>
+ </div>
+ <div class="councils-features__feature">
+ <div class="councils-features__screenshot"></div>
+ <h3>Mobile ready</h3>
+ <p>Companion mobile application for Android and iOS, so your customers
+ can report issues on the go and FixMyStreet is designed for optimal
+ display on desktop, tablet and mobile browsers.</p>
+ </div>
+ <div class="councils-features__feature">
+ <div class="councils-features__screenshot"></div>
+ <h3>Our experience, your brand</h3>
+ <p>White-labelled product, branded to complement your existing services.
+ Extend your reach to over a million visitors on the nation’s most
+ popular local issues service, FixMyStreet.com.</p>
+ </div>
+ <div class="councils-features__feature">
+ <div class="councils-features__screenshot"></div>
+ <h3>End-to-end case management</h3>
+ <p>A complete case management solution for customer services,
+ inspection and maintenance teams. Support for industry standard
+ mapping, asset, works and applications including Salesforce, Mayrise
+ and Confirm®.</p>
+ </div>
+ <div class="councils-features__feature">
+ <div class="councils-features__screenshot"></div>
+ <h3>Inspection service</h3>
+ <p>Mobile optimised, offline capable planning, markup and instructing
+ service for your inspection teams.</p>
+ </div>
+ <div class="councils-features__feature">
+ <div class="councils-features__screenshot"></div>
+ <h3>Customised reporting</h3>
+ <p>Supports category-specific report content and data, to help you
+ collect the details you need. Track service levels, highlight
+ bottlenecks and monitor contracts with area dashboards.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+<div class="council-order" id="order">
+ <div class="councils-content-wrapper">
+ <h2>Contact</h2>
+ <form action="/contact/submit" method="post">
+ <div class="council-order__form">
+ <div class="form-group">
+ <p>Use any address ending in .gov.uk to verify that you are making contact from a council within the UK.</p>
+ <p>We’ll get right back to you to find out more about your needs.</p>
+ <p>If you are contacting FixMyStreet for any other reason, please see our <a href="/contact">main contact page</a>.</p>
+ </div>
+ <div class="form-group">
+ <label for="name">Name</label>
+ <span class="required">required</span>
+ <input type="text" name="name" id="name" required>
+ </div>
+ <div class="form-group">
+ <label for="email">Contact email</label>
+ <span class="required">required</span>
+ <input type="email" name="em" id="email" required>
+ <p class="form-note">Ending in .gov.uk</p>
+ </div>
+ <div class="form-group">
+ <label for="extra.phone">Contact phone number</label>
+ <span class="required required--optional">optional</span>
+ <input type="text" name="extra.phone" id="extra.phone">
+ </div>
+ <div class="form-group">
+ <label for="email-newsletter" class="checkbox-label"> <input type="checkbox" name="extra.newsletter" value="Sign me up to the Better Cities newsletter" id="email-newsletter" class="checkbox-input"> Sign up for the Better Cities newsletter for news and insights on smarter technology for councils.</label>
+ </div>
+ <div class="form-group submit-group">
+ <input type="hidden" name="extra.referer" value="[% c.req.headers.referer | html %]">
+ <input type="hidden" name="subject" value="Councils submission">
+ <input type="hidden" name="recipient" value="enquiries">
+ <input type="hidden" name="dest" value="from_council">
+ <input type="submit" value="Send">
+ </div>
+ </div>
+ </form>
+ </div>
+ <div class="council-order__screenshot">
+ </div>
+</div>
+
+
+
+ </div>
+
+
+[% INCLUDE footer.html %]
diff --git a/templates/web/fixmystreet.com/contact/blurb.html b/templates/web/fixmystreet.com/contact/blurb.html
new file mode 100644
index 000000000..27412f894
--- /dev/null
+++ b/templates/web/fixmystreet.com/contact/blurb.html
@@ -0,0 +1,18 @@
+<h4>If you have questions about FixMyStreet</h4>
+
+<p>
+[% tprintf( loc("It's often quickest to <a href=\"%s\">check our FAQs</a> and see if the answer is there."), c.uri_for('/faq') ) %]
+</p>
+
+<p>
+[% loc('Please do <strong>not</strong> report problems through this form; messages go to
+the team behind this site, not a council. To report a problem,
+please <a href="/">go to the front page</a> and follow the instructions.') %]
+</p>
+
+<h4>From a UK Local Council and interested in finding out about FixMyStreet Pro?</h4>
+<p>
+ Please get in touch <a href="/about/professional#order">via our sales enquiry form</a>
+</p>
+
+<h3>Send a message to FixMyStreet's technical support team</h3>
diff --git a/templates/web/fixmystreet.com/contact/who.html b/templates/web/fixmystreet.com/contact/who.html
index 5fad05dd2..e16809e48 100644
--- a/templates/web/fixmystreet.com/contact/who.html
+++ b/templates/web/fixmystreet.com/contact/who.html
@@ -44,7 +44,7 @@
<p>
<strong>If you're not having any luck getting your community problems fixed</strong>,
you could try contacting your local councillor, using another useful mySociety site:
- <a href="https://www.writetothem.com/?utm_source=fixmystreet.com&utm_campaign=contact_workflow_links&utm_medium=link&utm_content=contact+not_fixed">WriteToThem</a>.
+ <a href="https://www.writetothem.com/?utm_source=fixmystreet.com&amp;utm_campaign=contact_workflow_links&amp;utm_medium=link&amp;utm_content=contact+not_fixed">WriteToThem</a>.
</p>
[% END %]
diff --git a/templates/web/fixmystreet.com/footer_extra.html b/templates/web/fixmystreet.com/footer_extra.html
index e16198bb1..819943f67 100644
--- a/templates/web/fixmystreet.com/footer_extra.html
+++ b/templates/web/fixmystreet.com/footer_extra.html
@@ -31,7 +31,7 @@
%]>[% loc("Local alerts") %]</[% c.req.uri.path == '/alert' ? 'span' : 'a' %]></li>
</ul>
<ul>
- <li><a href="/about/council">FixMyStreet for Councils</a></li>
+ <li><a href="/about/professional">FixMyStreet Professional</a></li>
<li><[% IF c.req.uri.path == '/posters' %]span[% ELSE %]a href="[% base %]/posters"[% END
%]>[% loc("FixMyStreet Goodies") %]</[% c.req.uri.path == '/posters' ? 'span' : 'a' %]></li>
<li><[% IF c.req.uri.path == '/contact' %]span[% ELSE %]a href="[% base %]/contact"[% END
@@ -47,7 +47,7 @@
<div class="col-sm-3">
<div class="mysoc-footer__donate">
<p>Your donations keep this site and others like it running</p>
- <a href="https://www.mysociety.org/donate?utm_source=fixmystreet.com&utm_content=footer+donate+now&utm_medium=link&utm_campaign=mysoc_footer" class="mysoc-footer__donate__button">Donate now</a>
+ <a href="https://www.mysociety.org/donate?utm_source=fixmystreet.com&amp;utm_content=footer+donate+now&amp;utm_medium=link&amp;utm_campaign=mysoc_footer" class="mysoc-footer__donate__button">Donate now</a>
</div>
</div>
@@ -59,7 +59,7 @@
<div class="mysoc-footer__orgs">
<p class="mysoc-footer__org">
Built by
- <a href="https://www.mysociety.org?utm_source=fixmystreet.com&utm_content=footer+logo&utm_medium=link&utm_campaign=mysoc_footer" class="mysoc-footer__org__logo mysoc-footer__org__logo--mysociety">mySociety</a>
+ <a href="https://www.mysociety.org?utm_source=fixmystreet.com&amp;utm_content=footer+logo&amp;utm_medium=link&amp;utm_campaign=mysoc_footer" class="mysoc-footer__org__logo mysoc-footer__org__logo--mysociety">mySociety</a>
</p>
<p class="mysoc-footer__org">
Powered by
@@ -70,7 +70,7 @@
<div class="col-sm-4">
<div class="mysoc-footer__legal">
- <p>mySociety Limited is a project of UK Citizens Online Democracy, a registered charity in England and Wales. For full details visit <a href="https://www.mysociety.org?utm_source=fixmystreet.com&utm_content=footer+full+legal+details&utm_medium=link&utm_campaign=mysoc_footer">mysociety.org</a>.</p>
+ <p>mySociety Limited is a project of UK Citizens Online Democracy, a registered charity in England and Wales. For full details visit <a href="https://www.mysociety.org?utm_source=fixmystreet.com&amp;utm_content=footer+full+legal+details&amp;utm_medium=link&amp;utm_campaign=mysoc_footer">mysociety.org</a>.</p>
</div>
</div>
diff --git a/templates/web/fixmystreet.com/footer_extra_js.html b/templates/web/fixmystreet.com/footer_extra_js.html
index d03aa8657..d5ed1543d 100644
--- a/templates/web/fixmystreet.com/footer_extra_js.html
+++ b/templates/web/fixmystreet.com/footer_extra_js.html
@@ -1,5 +1,5 @@
[% scripts.push(
- version('/js/OpenLayers.Projection.OrdnanceSurvey.js'),
- version('/js/jquery.cookie.min.js'),
+ version('/vendor/OpenLayers.Projection.OrdnanceSurvey.js'),
+ version('/cobrands/fixmystreet.com/vendor/jquery.cookie.min.js'),
version('/cobrands/fixmystreet.com/js.js'),
) %]
diff --git a/templates/web/fixmystreet.com/front/footer-marketing.html b/templates/web/fixmystreet.com/front/footer-marketing.html
index 2095b51c5..fa9c188d0 100644
--- a/templates/web/fixmystreet.com/front/footer-marketing.html
+++ b/templates/web/fixmystreet.com/front/footer-marketing.html
@@ -1,14 +1,10 @@
- <div class="tablewrapper bordered">
- <div id="footer-help">
- <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>
- </li>
- <li>
- <h4>[% loc('Are you from a council?') %]</h4>
- <p>[% loc('Would you like better integration with FixMyStreet? <a href="/about/council">Find out about FixMyStreet for councils</a>.') %]</p>
- </li>
- </ul>
- </div>
- </div>
+<div class="fms-pro-promo">
+ <h2>FixMyStreet Professional</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="/about/professional" class="btn">Learn more</a></p>
+</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>
+</div>
diff --git a/templates/web/fixmystreet.com/front/javascript.html b/templates/web/fixmystreet.com/front/javascript.html
index baf7ebb64..4bf586b70 100644
--- a/templates/web/fixmystreet.com/front/javascript.html
+++ b/templates/web/fixmystreet.com/front/javascript.html
@@ -1,9 +1,9 @@
[%
map_js = [
- version('/js/yepnope.js'),
+ version('/vendor/yepnope.js'),
[ version('/cobrands/fixmystreet/front.js'), {
id = "script_front",
- 'data-scripts' = version('/js/OpenLayers/OpenLayers.fixmystreet.js') _ ',' _
+ 'data-scripts' = version('/vendor/OpenLayers/OpenLayers.fixmystreet.js') _ ',' _
version('/js/map-OpenLayers.js') _ ',' _
version('/js/map-bing-ol.js') _ ',' _
version('/js/map-fms.js')
diff --git a/templates/web/fixmystreet.com/next_steps.html b/templates/web/fixmystreet.com/next_steps.html
index 2bfc23ddb..e561b9d98 100644
--- a/templates/web/fixmystreet.com/next_steps.html
+++ b/templates/web/fixmystreet.com/next_steps.html
@@ -2,23 +2,8 @@
[% DEFAULT share_url = c.cobrand.base_url %]
[% DEFAULT twitter_comment = 'I just used @fixmystreet, you should try it!' %]
-[% SET app_step = 1 IF NOT report OR NOT report.service %]
-<div class="next-steps[% ' next-steps--two' IF NOT app_step %]">
- [% IF app_step %]
- <div class="next-steps__step next-steps__step--apps">
- [% IF just_interacted %]
- <h2>[% loc('Next time, try our mobile app!') %]</h2>
- [% ELSE %]
- <h2>[% loc('Have you tried our mobile app?') %]</h2>
- [% END %]
- <p>[% loc('Download it now, and it’ll be ready to use when you next pick up your phone.') %]</p>
- <p class="next-steps__step__cta">
- <a href="https://itunes.apple.com/gb/app/fixmystreet/id297456545"><img src="/cobrands/fixmystreet.com/images/next-step-apple.png" alt="Download on the App Store" width="120" height="37"></a>
- <a href="https://play.google.com/store/apps/details?id=org.mysociety.FixMyStreet"><img src="/cobrands/fixmystreet.com/images/next-step-google.png" alt="Android app on Google Play" width="120" height="37"></a>
- </p>
- </div>
- [% END %]
+<div class="next-steps">
<div class="next-steps__step next-steps__step--social">
[% IF just_interacted %]
<h2>[% loc('Great work. Now spread the word!') %]</h2>
@@ -32,6 +17,13 @@
<a href="https://www.facebook.com/sharer/sharer.php?u=[% share_url | uri %]"><img src="/cobrands/fixmystreet.com/images/next-step-facebook.png" alt="Share on Facebook" width="120" height="37"></a>
</p>
</div>
+ <div class="next-steps__step next-steps__step--donate">
+ <h2>[% loc('Help support FixMyStreet') %]</h2>
+ <p>[% loc('Even a small donation of £5 today will help mySociety run sites like FixMyStreet.') %]</p>
+ <p class="next-steps__step__cta">
+ <a href="https://www.mysociety.org/donate?utm_source=fixmystreet.com&amp;utm_content=[% utm_content | uri %]&amp;utm_medium=link&amp;utm_campaign=fms_thankyou_pages"><img src="/cobrands/fixmystreet.com/images/next-step-donate.png" alt="Donate now" width="138" height="37"></a>
+ </p>
+ </div>
<div class="next-steps__step next-steps__step--goodies">
<h2>[% loc('Free FixMyStreet goodies for you!') %]</h2>
<a href="/posters">
diff --git a/templates/web/fixmystreet.com/questionnaire/completed-open.html b/templates/web/fixmystreet.com/questionnaire/completed-open.html
index f10d5d266..86ea4742a 100644
--- a/templates/web/fixmystreet.com/questionnaire/completed-open.html
+++ b/templates/web/fixmystreet.com/questionnaire/completed-open.html
@@ -13,7 +13,7 @@
</p>
<p>
- You can do this on <a href="https://www.writetothem.com/?utm_source=fixmystreet.com&utm_campaign=workflow_links&utm_medium=link&utm_content=completed+unfixed">WriteToThem</a>, another
+ You can do this on <a href="https://www.writetothem.com/?utm_source=fixmystreet.com&amp;utm_campaign=workflow_links&amp;utm_medium=link&amp;utm_content=completed+unfixed">WriteToThem</a>, another
useful mySociety website.
</p>
[% END %]
diff --git a/templates/web/fixmystreet.com/report/_report_meta_info.html b/templates/web/fixmystreet.com/report/_report_meta_info.html
index da0912a3f..f0b3503b9 100644
--- a/templates/web/fixmystreet.com/report/_report_meta_info.html
+++ b/templates/web/fixmystreet.com/report/_report_meta_info.html
@@ -1,5 +1,8 @@
[% problem.meta_line(c) | html %]
[% IF c.cobrand.moniker != problem.get_cobrand_logged.moniker AND problem.get_cobrand_logged.is_council %]
- using <a href="https://www.fixmystreet.com/about/council">FixMyStreet for Councils</a>
+ using <a href="https://www.fixmystreet.com/about/professional">FixMyStreet Professional</a>
+[% END %]
+[% IF c.user_exists AND c.user.id == problem.user_id AND !problem.anonymous %]
+ <small>(<a href="/my/anonymize?problem=[% problem.id | uri %]" class="js-hide-name">[% loc('Hide your name?') %]</a>)</small>
[% END %]
[%- IF !problem.used_map %]; <strong>([% loc('there is no pin shown as the user did not use the map') %])</strong>[% END %]
diff --git a/templates/web/fixmystreet.com/report/banner.html b/templates/web/fixmystreet.com/report/banner.html
index 6fd74a7fe..0a1af38f2 100644
--- a/templates/web/fixmystreet.com/report/banner.html
+++ b/templates/web/fixmystreet.com/report/banner.html
@@ -14,7 +14,7 @@
[% INCLUDE banner, id = 'closed', text = loc('Closed') %]
[% END %]
-[% IF NOT problem.bodies_str == '2482' %]
+[% IF NOT problem.to_body_named('Bromley') %]
[% IF problem.is_open AND date.now - problem.lastupdate.epoch > 8 * 7 * 24 * 60 * 60 %]
[% INCLUDE banner, id = 'unknown', text = loc('Unknown') %]
diff --git a/templates/web/fixmystreet.com/report/new/unresponsive_body.html b/templates/web/fixmystreet.com/report/new/unresponsive_body.html
index 5089f5198..5a53cc8d0 100644
--- a/templates/web/fixmystreet.com/report/new/unresponsive_body.html
+++ b/templates/web/fixmystreet.com/report/new/unresponsive_body.html
@@ -8,5 +8,5 @@
reports from third party reporting sites such as FixMyStreet.
</p>
<p>We can make your report public, but we can’t send it to the council.</p>
- <a href="[% c.cobrand.base_url %]/unresponsive?body=[% body_id %][% IF category %];category=[% category | uri %][% END %]">What can I do instead?</a>
+ <a href="[% c.cobrand.base_url %]/unresponsive?body=[% body_id %][% IF category %];category=[% category | uri %][% END %]" class="btn">What can I do instead?</a>
</div>
diff --git a/templates/web/fixmystreet.com/report/updates-sidebar-notes.html b/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
index 276ab4106..90e88d86c 100644
--- a/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
+++ b/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
@@ -1,5 +1,5 @@
<p>
- [% IF problem.send_method_used != 'Open311' OR ( NOT problem.bodies_str.match('2482|2347') ) %]
+ [% IF problem.send_method_used != 'Open311' OR NOT problem.to_body_named('Bromley|Stevenage') %]
[% loc( 'Please note that updates are not sent to the council.' ) %]
[% END %]
[% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]
diff --git a/templates/web/fixmystreet.com/reports/_extras.html b/templates/web/fixmystreet.com/reports/_extras.html
deleted file mode 100755
index 77c2cecdf..000000000
--- a/templates/web/fixmystreet.com/reports/_extras.html
+++ /dev/null
@@ -1,31 +0,0 @@
-[%
- fms_councils = {
- 'Angus Council' = 'fix.angus.gov.uk'
- 'Bromley Council' = 'fix.bromley.gov.uk'
- 'Bristol City Council' = 'fixmystreet.bristol.gov.uk'
- 'East Hertfordshire District Council' = 'fixmystreet.eastherts.gov.uk'
- 'Hart District Council' = 'hart.fixmystreet.com'
- 'Oxfordshire County Council' = 'fixmystreet.oxfordshire.gov.uk'
- 'Stevenage Borough Council' = 'stevenage.fixmystreet.com',
- 'Royal Borough of Greenwich' = 'fix.royalgreenwich.gov.uk'
- 'Warwickshire County Council' = 'warwickshire.fixmystreet.com'
- }
- secure = {
- 'fixmystreet.bristol.gov.uk' = 's'
- 'fix.bromley.gov.uk' = 's'
- 'fix.angus.gov.uk' = 's'
- 'fixmystreet.eastherts.gov.uk' = 's'
- }
- site = fms_councils.${body.name}
-%]
-[% IF site %]
-<tr align="center"
-[%- IF ! (loop.count % 2) %] class="a"
-[%- END %]>
-<td class="title" colspan="6" style="padding-top:0">
- <small title="This council's online reporting is powered by FixMyStreet">(includes reports from
- <a href="http[% secure.$site %]://[% site %]">[% site %]</a> using
- <a href="/about/council">FixMyStreet for Councils</a>)</small>
-</td>
-</tr>
-[% END %]
diff --git a/templates/web/fixmystreet.com/static/unresponsive.html b/templates/web/fixmystreet.com/static/unresponsive.html
index 8014ab8e1..5d9b4bfab 100644
--- a/templates/web/fixmystreet.com/static/unresponsive.html
+++ b/templates/web/fixmystreet.com/static/unresponsive.html
@@ -26,7 +26,7 @@
<h2>If you’d prefer to use FixMyStreet next time:</h2>
- <a href="https://www.writetothem.com/?utm_source=fixmystreet.com&utm_campaign=workflow_links&utm_medium=link&utm_content=unresponsive_council+cta" class="unresponsive-council-cta">
+ <a href="https://www.writetothem.com/?utm_source=fixmystreet.com&amp;utm_campaign=workflow_links&amp;utm_medium=link&amp;utm_content=unresponsive_council+cta" class="unresponsive-council-cta">
<strong>Write to your MP or local councillors</strong> to let them know this isn’t okay
</a>
diff --git a/templates/web/greenwich/footer.html b/templates/web/greenwich/footer.html
index 03dbc0330..7cc4f185c 100644
--- a/templates/web/greenwich/footer.html
+++ b/templates/web/greenwich/footer.html
@@ -8,8 +8,8 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_name hide_mysoc_link=1 %]
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_name %]
</div>
</div>
</div> <!-- .wrapper -->
diff --git a/templates/web/greenwich/front/footer-marketing.html b/templates/web/greenwich/front/footer-marketing.html
index bf08a11dd..773314aa9 100644
--- a/templates/web/greenwich/front/footer-marketing.html
+++ b/templates/web/greenwich/front/footer-marketing.html
@@ -13,7 +13,7 @@
<div id="footer-help">
<p>
- Powered by <a class="platform-logo" href="https://fixmystreet.com/about/council">FixMyStreet Platform</a>
+ Powered by <a class="platform-logo" href="https://www.fixmystreet.com/about/professional">FixMyStreet Platform</a>
</p>
</div>
</div>
diff --git a/templates/web/greenwich/header_logo.html b/templates/web/greenwich/header_logo.html
index 6359eba3b..cfe485af1 100644
--- a/templates/web/greenwich/header_logo.html
+++ b/templates/web/greenwich/header_logo.html
@@ -15,4 +15,4 @@
<li><a href="/">FixMyStreet</a></li>
</ul>
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_name hide_mysoc_link=1 hide_privacy_link=1 ul_id="fms-menu-desktop" ul_class="" omit_wrapper=1 %]
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_name hide_privacy_link=1 ul_id="fms-menu-desktop" ul_class="" omit_wrapper=1 %]
diff --git a/templates/web/hart/footer.html b/templates/web/hart/footer.html
index e1b013032..01cf76f9d 100644
--- a/templates/web/hart/footer.html
+++ b/templates/web/hart/footer.html
@@ -5,14 +5,12 @@
</div><!-- .table-cell -->
<div class="nav-wrapper clearfix">
- <div class="main-menu-wrapper">
- <div class="main-menu">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 ul_class="clearfix" hide_privacy_link=1 %]
- </div>
- </div>
- <div class="nav-wrapper-2 clearfix">
- <div id="main-nav" class="clearfix" role="navigation">
- <ul class="nav-menu">
+ <div class="container container--hart">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area ul_class="nav-menu nav-menu--first" hide_privacy_link=1 %]
+ </div>
+ <div class="container">
+ <div id="main-nav--hart" role="navigation">
+ <ul class="nav-menu nav-menu--hart">
<li>
<a href="http://www.hart.gov.uk/home">Home</a>
</li>
@@ -44,54 +42,64 @@
</div>
</div>
- <div class="hart-footer-wrapper">
- <div id="footer_outside_wrapper">
- <div id="footer_inside_wrapper" class="clearfix">
- <div id="footer-right" class="clearfix">
- <ul class="footer-nav">
- <li> <a href="http://www.hart.gov.uk/sitemap">Site map</a> </li>
- <li> <a href="http://www.hart.gov.uk/Accessibility">Accessibility</a> </li>
- </ul>
- </div>
- <footer id="hart-footer" class="clearfix">
- <div id="copyright-block" class="desk-only">
- <strong>©</strong> &nbsp;
- <a href="http://www.hart.gov.uk/disclaimer" title="More information on the Disclaimer">Hart District Council</a>
- </div>
- <ul class="footer-nav clearfix">
- <li> <a href="http://www.hart.gov.uk/disclaimer">Disclaimer</a></li>
- <li> <a href="http://www.hart.gov.uk/freedom-information">Freedom of Information</a></li>
- <li> <a href="http://www.hart.gov.uk/privacy">Privacy</a></li>
- </ul>
- </footer>
- <div class="clearfix" id="footer-row-2">
- <div id="hart-powered-by">
- <a href="https://www.fixmystreet.com/about/council">Powered by <img src="/cobrands/hart/fms-logo.png" alt="FixMyStreet" style="height:20px;"></a>
- </div>
- <div id="footer-images">
- <a href="https://twitter.com/HartCouncil">
- <img alt="" src="/cobrands/hart/twitter-logo.png" style="height:43px; width:43px" />
- </a>
- <a href="http://www.facebook.com/HartDistrictCouncil">
- <img alt="" src="/cobrands/hart/facebook-logo.png" style="height:43px; margin-right: 10px; width:43px" />
- </a>
- <a href="http://www.gov.uk">
- <img alt="" src="/cobrands/hart/gov-logo.png" style="height:43px; width:172px" />
- </a>
- </div>
- </div>
- <div id="footer-row-3">
- <div id="copyright-block-mobile" class="mob-only">
- <strong>©</strong> &nbsp;
- <a href="http://www.hart.gov.uk/disclaimer" title="More information on the Disclaimer">
- Hart District Council</a>
- </div>
- </div>
- </div>
+ <footer id="hart-footer">
+ <div id="footer-inner" class="container">
+ <div id="footer-row-1" class="clearfix row">
+ <p class="desk-only">
+ <strong>©</strong>
+ <a href="http://www.hart.gov.uk/disclaimer" title="More information on the Disclaimer" class="hart">Hart District Council</a>
+ <a href="http://www.gov.uk/" title="GOV.UK">GOV.UK</a>
+ </p>
+ <ul id="footer-nav">
+ <li> <a href="http://www.hart.gov.uk/Accessibility">Accessibility</a> </li>
+ <li class="mob-only"> <a href="http://www.gov.uk/" title="GOV.UK">GOV.UK</a> </li>
+ <li> <a href="http://www.hart.gov.uk/privacy">Privacy</a> </li>
+ <li class="mob-only"> <a href="http://www3.basingstoke.gov.uk/ccmwa/chat/a6f6143d-407f-4f99-b673-6feb98b54815">Web Chat</a> </li>
+ <li class="mob-only"> <a href="https://www.hart.gov.uk/contact-us">Contact us</a> </li>
+ <li class="mob-only"> <a href="https://www.hart.gov.uk/feedback">Feedback</a> </li>
+ <li class="mob-only bottom"> <a href="https://www.hart.gov.uk/user/login?current=node/1">Login</a> </li>
+ <li class="mob-only bottom"> <a href="https://www.hart.gov.uk/user/register">Register</a> </li>
+ </ul>
</div>
- </div>
- <div class="footer_border">
- </div>
+ <div id="footer-row-2" class="clearfix row">
+ <ul id="footer-images">
+ <li>
+ <a href="https://www.facebook.com/HartDistrictCouncil">
+ <img alt="Facebook" src="/cobrands/hart/facebook-logo.png" style="width: 50px; height: 50px;">
+ </a>
+ </li>
+ <li>
+ <a href="https://twitter.com/HartCouncil">
+ <img alt="Twitter" src="/cobrands/hart/twitter-logo.png" style="width: 50px; height: 50px;">
+ </a>
+ </li>
+ <li>
+ <a href="https://www.youtube.com/channel/UCtkLOTkot4Z24Mr9C4I3t-A">
+ <img alt="YouTube" src="/cobrands/hart/youtube-logo.png" style="width: 50px; height: 50px;">
+ </a>
+ </li>
+ <li>
+ <a href="https://www.instagram.com/hartcouncil/">
+ <img alt="Instagram" src="/cobrands/hart/instagram-logo.png" style="width: 50px; height: 50px;">
+ </a>
+ </li>
+ <li class="web-chat">
+ <a href="http://www3.basingstoke.gov.uk/ccmwa/chat/a6f6143d-407f-4f99-b673-6feb98b54815">
+ <span class="desk-only">Web Chat</span>
+ <img alt="Web chat" src="/cobrands/hart/chat.png" style="height: 50px; width: 50px;">
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div id="footer-row-3" class="clearfix row">
+ <p class="mob-only">
+ <strong>©</strong>
+ <a href="http://www.hart.gov.uk/disclaimer" title="More information on the Disclaimer" class="hart">Hart District Council</a>
+ </p>
+ <a href="https://www.fixmystreet.com/about/professional">Powered by <img src="/cobrands/hart/fms-logo.png" alt="FixMyStreet" style="height:20px;"></a>
+ </div>
+ </div>
+ </footer>
[% INCLUDE 'common_footer_tags.html' %]
diff --git a/templates/web/oxfordshire/_email_sent_extra.html b/templates/web/oxfordshire/_email_sent_extra.html
new file mode 100644
index 000000000..5fdcd3bfd
--- /dev/null
+++ b/templates/web/oxfordshire/_email_sent_extra.html
@@ -0,0 +1 @@
+[% INCLUDE '_response_time.html' problem=report %]
diff --git a/templates/web/oxfordshire/_response_time.html b/templates/web/oxfordshire/_response_time.html
new file mode 100644
index 000000000..c3cb5fdfa
--- /dev/null
+++ b/templates/web/oxfordshire/_response_time.html
@@ -0,0 +1,14 @@
+[% IF c.cobrand.problem_response_days(problem) == 'emergency' %]
+ <p>
+ Thank you for contacting Oxfordshire County Council [% problem.category %], unfortunately we are currently only available to respond to emergency situations which may have an impact on the health and safety of members of the public, these will be dealt with within a 24 hour period.<br />
+ Reported faults will continue to be registered on our management system and these will be tackled in coming months.
+ </p>
+[% ELSIF c.cobrand.problem_response_days(problem) > 0 %]
+ <p>
+ Problems in the
+ [% problem.category %]
+ category are generally responded to within
+ [% c.cobrand.problem_response_days(problem) %]
+ working days.
+ </p>
+[% END %]
diff --git a/templates/web/oxfordshire/footer.html b/templates/web/oxfordshire/footer.html
index dd90cab01..b7e3d9829 100644
--- a/templates/web/oxfordshire/footer.html
+++ b/templates/web/oxfordshire/footer.html
@@ -8,13 +8,12 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
+ <div class="container">
<div id="main-nav" role="navigation">
- <ul class="nav-menu nav-menu--mysoc">
- <li><a id="mysoc-logo" href="https://www.fixmystreet.com/about/council">Powered by <img src="/cobrands/oxfordshire/images/fms-logo-105x20.png" alt="FixMyStreet"></a></li>
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area omit_wrapper=1 hide_privacy_link=1 %]
+ <ul class="nav-menu">
+ <li><a id="mysoc-logo" href="https://www.fixmystreet.com/about/professional">Powered by <img src="/cobrands/oxfordshire/images/fms-logo-105x20.png" alt="FixMyStreet"></a></li>
</ul>
-
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 omit_wrapper=1 hide_privacy_link=1 %]
</div>
</div>
</div>
diff --git a/templates/web/oxfordshire/footer_extra_js.html b/templates/web/oxfordshire/footer_extra_js.html
new file mode 100644
index 000000000..abef0d40f
--- /dev/null
+++ b/templates/web/oxfordshire/footer_extra_js.html
@@ -0,0 +1,3 @@
+[% scripts.push(
+ version('/cobrands/oxfordshire/js.js'),
+) %]
diff --git a/templates/web/oxfordshire/front/_list-entry.html b/templates/web/oxfordshire/front/_list-entry.html
index 046c3b97f..43d3d6265 100755
--- a/templates/web/oxfordshire/front/_list-entry.html
+++ b/templates/web/oxfordshire/front/_list-entry.html
@@ -1 +1,4 @@
-[% INCLUDE 'report/_item.html' no_fixed = 1 item_extra_class = 'item-list__item--with-pin' %]
+[% INCLUDE 'report/_item.html'
+ no_fixed = 1
+ item_extra_class = 'item-list__item--with-pin ' _ c.cobrand.pin_colour(problem)
+%]
diff --git a/templates/web/oxfordshire/header.html b/templates/web/oxfordshire/header.html
index 452a71e88..3666eb4ff 100644
--- a/templates/web/oxfordshire/header.html
+++ b/templates/web/oxfordshire/header.html
@@ -26,10 +26,10 @@
</head>
<body class="[% bodyclass | html IF bodyclass %]">
<div id="oxford-wrapper">
- <div id="oxford-header" class="desk-only oxford-left">
- <a href="http://www.oxfordshire.gov.uk/" title="Home" class="logo">Oxfordshire County Council<span></span></a>
+ <div id="oxford-header" class="desk-only">
+ <a href="https://www.oxfordshire.gov.uk/" title="Home" class="logo">Oxfordshire County Council</a>
<span id="oxford-links">
- <a href="http://www.oxfordshire.gov.uk/" title="">Oxfordshire County Council home</a>
+ <a href="https://www.oxfordshire.gov.uk/" title="">Oxfordshire County Council home</a>
</span>
<div style="clear:both"></div>
<span class="header"><a href="/">Report a road or street problem</a></span>
@@ -37,7 +37,7 @@
<div id="navigation">
<div class="menubar">
<div class="menu-inner">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 hide_privacy_link=1 omit_wrapper=1 ul_class="menu" %]
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_privacy_link=1 omit_wrapper=1 ul_class="menu" %]
</div>
</div>
</div>
diff --git a/templates/web/oxfordshire/report/_council_sent_info.html b/templates/web/oxfordshire/report/_council_sent_info.html
index 52b20a0af..5bc7949ff 100644
--- a/templates/web/oxfordshire/report/_council_sent_info.html
+++ b/templates/web/oxfordshire/report/_council_sent_info.html
@@ -10,20 +10,7 @@
</h3>
[% END %]
- [% IF c.cobrand.problem_response_days(problem) == 'emergency' %]
- <p>
- Thank you for contacting Oxfordshire County Council [% problem.category %], unfortunately we are currently only available to respond to emergency situations which may have an impact on the health and safety of members of the public, these will be dealt with within a 24 hour period.<br />
- Reported faults will continue to be registered on our management system and these will be tackled in coming months.
- </p>
- [% ELSIF c.cobrand.problem_response_days(problem) > 0 %]
- <p>
- Problems in the
- [% problem.category %]
- category are generally responded to within
- [% c.cobrand.problem_response_days(problem) %]
- working days.
- </p>
- [% END %]
+ [% INCLUDE '_response_time.html' %]
</div>
[% END %]
diff --git a/templates/web/oxfordshire/report/_inspect_extra_info.html b/templates/web/oxfordshire/report/_inspect_extra_info.html
new file mode 100644
index 000000000..6151d79ae
--- /dev/null
+++ b/templates/web/oxfordshire/report/_inspect_extra_info.html
@@ -0,0 +1,8 @@
+<p><small>
+RDI sent:
+[% IF problem.get_extra_metadata('rdi_processed') %]
+ [% problem.get_extra_metadata('rdi_processed') %]
+[% ELSE %]
+ <strong>not yet sent</strong>
+[% END %]
+</small></p>
diff --git a/templates/web/oxfordshire/report/inspect/state_groups_select.html b/templates/web/oxfordshire/report/inspect/state_groups_select.html
deleted file mode 100644
index d9db3864a..000000000
--- a/templates/web/oxfordshire/report/inspect/state_groups_select.html
+++ /dev/null
@@ -1,21 +0,0 @@
-[%
-SET state_pretty = {
- 'confirmed' = loc('Open')
- 'investigating' = loc('Investigating')
- 'action scheduled' = loc('Action Scheduled')
- 'fixed - council' = loc('Fixed')
- 'not responsible' = loc('Not Responsible')
- 'duplicate' = loc('Duplicate')
- 'unable to fix' = loc('No further action')
-};
-
-SET state_groups = [
- [ loc('New'), [ 'confirmed', 'investigating' ] ],
- [ loc('Scheduled'), [ 'action scheduled' ] ],
- [ loc('Fixed'), [ 'fixed - council' ] ],
- [ loc('Closed'), [ 'not responsible', 'duplicate', 'unable to fix' ] ]
-];
-
-%]
-[% DEFAULT current_state = problem.state %]
-[% INCLUDE 'report/_state_select_field.html' %]
diff --git a/templates/web/oxfordshire/tokens/_extras_confirm.html b/templates/web/oxfordshire/tokens/_extras_confirm.html
new file mode 100644
index 000000000..5fdcd3bfd
--- /dev/null
+++ b/templates/web/oxfordshire/tokens/_extras_confirm.html
@@ -0,0 +1 @@
+[% INCLUDE '_response_time.html' problem=report %]
diff --git a/templates/web/stevenage/footer.html b/templates/web/stevenage/footer.html
index ee0fc15d5..c2944e97b 100644
--- a/templates/web/stevenage/footer.html
+++ b/templates/web/stevenage/footer.html
@@ -19,7 +19,7 @@
</li>
<li>
<h4>[% loc('Are you from a council?') %]</h4>
- <p>[% loc('Would you like better integration with FixMyStreet? <a href="https://www.fixmystreet.com/about/council">Find out about FixMyStreet for councils</a>.') %]</p>
+ <p>[% loc('Would you like better integration with FixMyStreet? <a href="https://www.fixmystreet.com/about/professional">Find out about FixMyStreet Professional</a>.') %]</p>
</li>
</ul>
</div>
@@ -31,7 +31,7 @@
</div><!-- .container -->
</div><!-- .table-cell -->
- <div class="nav-wrapper">
+ <div class="table-caption">
<header id="stevenage_cc_header" role="banner">
@@ -86,11 +86,11 @@
</div>
</header>
-
-
- <div class="nav-wrapper-2">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 hide_privacy_link=1 %]
+ <div class="nav-wrapper">
+ <div class="container">
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_privacy_link=1 %]
</div>
+ </div>
</div>
</div> <!-- .wrapper -->
diff --git a/templates/web/warwickshire/header.html b/templates/web/warwickshire/header.html
index da56719eb..81c1d9d23 100644
--- a/templates/web/warwickshire/header.html
+++ b/templates/web/warwickshire/header.html
@@ -7,16 +7,16 @@
<head>
<meta name="viewport" content="initial-scale=1.0">
- <link rel="shortcut icon" href="/cobrands/warwickshire/gamma/images/favicon.ico" />
+ <link rel="shortcut icon" href="/cobrands/warwickshire/vendor/gamma/images/favicon.ico" />
<!-- Style -->
- <link rel="stylesheet" type="text/css" href="[% version ('/cobrands/' _ c.cobrand.moniker _ '/gamma/style.css') %]" />
- <link rel="stylesheet" type="text/css" href="[% version ('/cobrands/' _ c.cobrand.moniker _ '/gamma/bootstrap-responsive.css') %]">
+ <link rel="stylesheet" type="text/css" href="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/style.css') %]" />
+ <link rel="stylesheet" type="text/css" href="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/bootstrap-responsive.css') %]">
<!-- Scripts -->
- <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/gamma/modernizr-2.6.2-respond-1.1.0.min.js') %]" type="text/javascript"></script>
- <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/gamma/jquery-1.9.0.min.js') %]" type="text/javascript"></script>
- <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/gamma/bootstrap.min.js') %]" type="text/javascript"></script>
- <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/gamma/main.js') %]" type="text/javascript"></script>
+ <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/modernizr-2.6.2-respond-1.1.0.min.js') %]" type="text/javascript"></script>
+ <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/jquery-1.9.0.min.js') %]" type="text/javascript"></script>
+ <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/bootstrap.min.js') %]" type="text/javascript"></script>
+ <script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/main.js') %]" type="text/javascript"></script>
<link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/base.css') %]">
<link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]" media="(min-width:48em)">
@@ -85,7 +85,7 @@
<li><a href="//www.warwickshire.gov.uk/listsanddata">Lists, data and information</a></li>
<li><a href="//www.warwickshire.gov.uk/organisation" accesskey="2">Organisation</a></li>
<li><a href="//www.warwickshire.gov.uk/performance">Our performance</a></li>
- <li><a href="//www.warwickshire.gov.uk/partnerships">Partnerships</a></li>
+ <li><a href="//www.warwickshire.gov.uk/partnerships">Partnerships</a></li>
<li><a href="//www.warwickshire.gov.uk/policies">Policies, standards and legislation</a></li>
<li><a href="//www.warwickshire.gov.uk/projects">Projects</a></li>
<li><a href="//www.warwickshire.gov.uk/strategies">Strategies and priorities</a></li>
@@ -146,24 +146,11 @@
<a href="//www.warwickshire.gov.uk/"><img src="//www.warwickshire.gov.uk/wp-content/themes/gamma/images/wdwhitelogo.png" alt="Warwickshire County Council - home" title="Warwickshire County Council - home" ></a>
</div>
<div class="span9">
- <div class="row">
- <div class="span9">
- <form action="//search3.openobjects.com/kb5/warwickshire/search/results.page" method="get" name="kbs" class="navbar-form pull-right" id="site-search">
- <label for="qtbottom" class="skip" style="display:none;">Search again</label>
- <input class="span3" type="text" maxlength="1000" size="40" name="qt" id="qtbottom" alt="Search" placeholder="eg; libraries, roadworks" accesskey="4">
- <button type="submit" value="Search" id="kbsubmitbottom" class="btn btn-mini searchbutton">Search</button>
- </form>
- </div>
- </div>
- <div class="row">
- <div id="site-tabs" class="span9">
- <ul class="nav nav-tabs">
- <li class="tab"><a href="//www.warwickshire.gov.uk/">Residents</a></li>
- <li class="tab"><a href="//www.warwickshire.gov.uk/business">Businesses</a></li>
- <li class="tab"><a href="//www.warwickshire.gov.uk/corporate">About the council</a></li>
- </ul>
- </div>
- </div>
+ <form action="//search3.openobjects.com/kb5/warwickshire/search/results.page" method="get" name="kbs" class="navbar-form pull-right" id="site-search">
+ <label for="qtbottom" class="skip" style="display:none;">Search again</label>
+ <input type="text" maxlength="1000" size="40" name="qt" id="qtbottom" alt="Search" placeholder="eg; libraries, roadworks" accesskey="4">
+ <button type="submit" value="Search" id="kbsubmitbottom" class="btn btn-mini searchbutton">Search</button>
+ </form>
</div>
</div>
</div>
@@ -172,7 +159,7 @@
<div class="container navbar-container">
<div class="navbar" id="mega-menu-navbar">
<div class="navbar-inner">
- [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_mysoc_link=1 hide_all_reports_link=1 omit_wrapper=1 ul_class="menu nav" ul_id="mega-menu" %]
+ [% INCLUDE "main_nav.html" body_name=c.cobrand.council_area hide_all_reports_link=1 omit_wrapper=1 ul_class="menu nav" ul_id="mega-menu" %]
</div>
</div>
</div>
diff --git a/templates/web/whitelabel/footer_extra.html b/templates/web/whitelabel/footer_extra.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/whitelabel/footer_extra.html
diff --git a/templates/web/whitelabel/front/footer-marketing.html b/templates/web/whitelabel/front/footer-marketing.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/whitelabel/front/footer-marketing.html
diff --git a/templates/web/whitelabel/next_steps.html b/templates/web/whitelabel/next_steps.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/whitelabel/next_steps.html
diff --git a/templates/web/zurich/admin/body.html b/templates/web/zurich/admin/body.html
index cf860990d..468f7adff 100644
--- a/templates/web/zurich/admin/body.html
+++ b/templates/web/zurich/admin/body.html
@@ -19,7 +19,7 @@
</tr>
[% WHILE ( cat = contacts.next ) %]
<tr[% IF cat.deleted %] class="is-deleted"[% END %]>
- <td><a href="[% c.uri_for( 'body', body_id, cat.category ) %]">[% cat.category %]</a></td>
+ <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>
diff --git a/templates/web/zurich/admin/contact-form.html b/templates/web/zurich/admin/contact-form.html
index dddfc6d01..236b169d0 100644
--- a/templates/web/zurich/admin/contact-form.html
+++ b/templates/web/zurich/admin/contact-form.html
@@ -1,5 +1,5 @@
<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 | html %]
+ <p><strong>[% loc('Category:') %] </strong>[% contact.category_display | html %]
<input type="hidden" name="category" value="[% contact.category | html %]" >
<input type="hidden" name="token" value="[% csrf_token %]" >
@@ -7,9 +7,11 @@
<input type="text" class="form-control" name="email" value="[% contact.email | html %]" size="30">
<p>
- <input type="hidden" name="confirmed" value="1">
- <input type="checkbox" name="deleted" value="1" id="deleted"[% ' checked' IF contact.deleted %]>
- <label class="inline" for="deleted">[% loc('Deleted') %]</label>
+ <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>
<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>
diff --git a/templates/web/zurich/admin/index.html b/templates/web/zurich/admin/index.html
index 275f50183..fb3609bb3 100644
--- a/templates/web/zurich/admin/index.html
+++ b/templates/web/zurich/admin/index.html
@@ -3,7 +3,7 @@
<ul>
<li>[% tprintf( loc('<strong>%s</strong> live problems'), total_problems_live ) %];
[% tprintf( loc('from %s different users'), total_problems_users ) %]</li>
- <li>[% tprintf( loc('%s council contacts &ndash; %s confirmed, %s unconfirmed'), contacts.total, contacts.1, contacts.0) %]</li>
+ <li>[% tprintf( loc('%s council contacts &ndash; %s confirmed, %s unconfirmed'), contacts.total, contacts.confirmed, contacts.unconfirmed) %]</li>
</ul>
<h2>[% loc('Problem breakdown by state') %]</h2>
diff --git a/templates/web/zurich/admin/problem_row.html b/templates/web/zurich/admin/problem_row.html
index acbf17017..a83e22b27 100644
--- a/templates/web/zurich/admin/problem_row.html
+++ b/templates/web/zurich/admin/problem_row.html
@@ -15,7 +15,7 @@
[% END %]
</td>
<td>[% PROCESS value_or_nbsp value=problem.title %]</td>
- <td>[% PROCESS value_or_nbsp value=problem.category %]</td>
+ <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';
diff --git a/templates/web/zurich/admin/report_edit-sdm.html b/templates/web/zurich/admin/report_edit-sdm.html
index 3df9459f9..07f0332d5 100644
--- a/templates/web/zurich/admin/report_edit-sdm.html
+++ b/templates/web/zurich/admin/report_edit-sdm.html
@@ -70,7 +70,7 @@
</dd>
<dt>[% loc('Category:') %] <!-- Kategorie --></dt>
- <dd>[% problem.category | html %]</dd>
+ <dd>[% problem.category_display | html %]</dd>
<dt class="print-only">[% loc('State:') %] <!-- Status --></dt>
<dd class="print-only">[% states.${problem.state} %]</dd>
diff --git a/templates/web/zurich/admin/report_edit.html b/templates/web/zurich/admin/report_edit.html
index f87dcb5cf..35075a9f0 100644
--- a/templates/web/zurich/admin/report_edit.html
+++ b/templates/web/zurich/admin/report_edit.html
@@ -98,7 +98,7 @@
</dd>
<dt>[% loc('Category:') %] <!-- Kategorie --></dt>
- <dd>[% problem.category | html %]</dd>
+ <dd>[% problem.category_display | html %]</dd>
<dt class="print-only">[% loc('State:') %] <!-- Status --></dt>
<dd class="print-only">[% states_trans.${problem.state} %]</dd>
@@ -169,8 +169,8 @@
<label for="category">[% loc('Assign to different category:') %]</label>
<select class="form-control" name="category" id="category">
<option value="">--</option>
- [% FOREACH cat IN categories %]
- <option value="[% cat %]">[% cat %]</option>
+ [% FOREACH cat IN category_options %]
+ <option value="[% cat.name %]">[% cat.value %]</option>
[% END %]
</select>
</div>
diff --git a/templates/web/zurich/footer.html b/templates/web/zurich/footer.html
index d299284d6..0164dbcab 100644
--- a/templates/web/zurich/footer.html
+++ b/templates/web/zurich/footer.html
@@ -4,8 +4,7 @@
</div><!-- .table-cell -->
<div class="nav-wrapper">
- <div class="nav-wrapper-2">
- <div class="nav-wrapper-3">
+ <div class="container">
<div id="main-nav" role="navigation">
[% IF c.user_exists %]
<p>
@@ -23,7 +22,6 @@
%]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]></li>
</ul>
</div>
- </div>
</div>
</div>
</div> <!-- .wrapper -->
diff --git a/templates/web/zurich/header.html b/templates/web/zurich/header.html
index 303d861a4..0ab051aa7 100644
--- a/templates/web/zurich/header.html
+++ b/templates/web/zurich/header.html
@@ -27,7 +27,7 @@
<body class="[% bodyclass | html IF bodyclass %]">
<div class="wrapper">
- <div class="table-cell">
+ <div class="table-cell clearfix">
<header id="site-header" role="banner">
<div class="container">
<a href="/" id="site-logo-text">Züri wie neu</a>
diff --git a/templates/web/zurich/maps/zurich.html b/templates/web/zurich/maps/zurich.html
index f85be4aef..a9499f657 100644
--- a/templates/web/zurich/maps/zurich.html
+++ b/templates/web/zurich/maps/zurich.html
@@ -1,6 +1,6 @@
[%
map_js = [
- version('/js/OpenLayers.2.11.zurich.js'),
+ version('/vendor/OpenLayers/OpenLayers.zurich.js'),
version('/js/OpenLayers.Projection.CH1903Plus.js'),
version('/js/map-OpenLayers.js'),
version('/js/map-wmts-base.js'),
diff --git a/templates/web/zurich/report/_main.html b/templates/web/zurich/report/_main.html
index c1e4d15e6..b868c03e2 100644
--- a/templates/web/zurich/report/_main.html
+++ b/templates/web/zurich/report/_main.html
@@ -1,5 +1,5 @@
<div class="problem-header clearfix">
- <h1>[% tprintf( loc('Reported in the %s category'), problem.category ) %]</h1>
+ <h1>[% tprintf( loc('Reported in the %s category'), problem.category_display ) %]</h1>
<p class="sub">
[% prettify_dt( problem.created, 'zurich' ) %]
[%- IF !problem.used_map %]<br>[% loc('there is no pin shown as the user did not use the map') %][% END %]
diff --git a/templates/web/zurich/reports/index.html b/templates/web/zurich/reports/index.html
index f7383dfee..8bec64c86 100755
--- a/templates/web/zurich/reports/index.html
+++ b/templates/web/zurich/reports/index.html
@@ -13,17 +13,17 @@
<h1>[% loc('All Reports') %]</h1>
<section class="full-width">
- [% INCLUDE 'pagination.html', param = 'p' %]
+ <div class="js-pagination">
+ [% INCLUDE 'pagination.html', param = 'p' %]
+ </div>
- [% IF problems.0 %]
- <ul class="item-list item-list--reports">
- [% FOREACH problem IN problems.0 %]
- [% INCLUDE 'reports/_list-entry.html' %]
- [% END %]
- </ul>
- [% END %]
+ <div id="js-reports-list">
+ [% INCLUDE 'reports/_problem-list.html' %]
+ </div>
- [% INCLUDE 'pagination.html', param = 'p' %]
+ <div class="js-pagination">
+ [% INCLUDE 'pagination.html', param = 'p' %]
+ </div>
</section>
</div>