aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/web/angus/maps/fms.html11
-rw-r--r--templates/web/base/admin/report_edit.html4
-rw-r--r--templates/web/base/alert/index.html3
-rw-r--r--templates/web/base/around/index.html3
-rw-r--r--templates/web/base/around/lookup_by_ref.html3
-rw-r--r--templates/web/base/common_header_tags.html18
-rw-r--r--templates/web/base/common_scripts.html77
-rw-r--r--templates/web/base/front/javascript.html12
-rw-r--r--templates/web/base/header.html5
-rw-r--r--templates/web/base/index.html5
-rw-r--r--templates/web/base/maps/bing.html8
-rw-r--r--templates/web/base/maps/fms.html6
-rw-r--r--templates/web/base/maps/google-ol.html14
-rw-r--r--templates/web/base/maps/google.html6
-rw-r--r--templates/web/base/maps/mapquest-attribution.html8
-rw-r--r--templates/web/base/maps/osm-streetview.html8
-rw-r--r--templates/web/base/maps/osm-toner-lite.html9
-rw-r--r--templates/web/base/maps/osm.html5
-rw-r--r--templates/web/base/report/_inspect.html2
-rw-r--r--templates/web/base/report/photo-js.html3
-rw-r--r--templates/web/bristol/maps/bristol.html9
-rw-r--r--templates/web/bromley/maps/bromley.html10
-rw-r--r--templates/web/fixmystreet.com/about/professional.html720
-rw-r--r--templates/web/fixmystreet.com/footer_extra_js.html21
-rw-r--r--templates/web/fixmystreet.com/front/javascript.html12
-rw-r--r--templates/web/fixmystreet.com/header_extra.html12
-rw-r--r--templates/web/zurich/admin/report_edit-sdm.html4
-rw-r--r--templates/web/zurich/admin/report_edit.html4
-rw-r--r--templates/web/zurich/maps/zurich.html10
-rwxr-xr-xtemplates/web/zurich/reports/index.html4
30 files changed, 123 insertions, 893 deletions
diff --git a/templates/web/angus/maps/fms.html b/templates/web/angus/maps/fms.html
deleted file mode 100644
index 61c56f121..000000000
--- a/templates/web/angus/maps/fms.html
+++ /dev/null
@@ -1,11 +0,0 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.angus.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-bing-ol.js'),
- version('/js/map-fms.js'),
- version('/cobrands/fixmystreet/assets.js'),
- version('/cobrands/angus/js.js'),
-];
-map_html = INCLUDE maps/openlayers.html include_key = 1
-%]
diff --git a/templates/web/base/admin/report_edit.html b/templates/web/base/admin/report_edit.html
index c58b2d605..ff99bb907 100644
--- a/templates/web/base/admin/report_edit.html
+++ b/templates/web/base/admin/report_edit.html
@@ -1,8 +1,8 @@
[%
PROCESS "maps/${map.type}.html" admin = 1;
+ SET bodyclass = 'mappage with-notes';
INCLUDE 'admin/header.html'
- title = tprintf(loc('Editing problem %d'), problem.id ),
- bodyclass = 'mappage with-notes';
+ title = tprintf(loc('Editing problem %d'), problem.id );
PROCESS 'admin/report_blocks.html'
-%]
diff --git a/templates/web/base/alert/index.html b/templates/web/base/alert/index.html
index 38ed6f6f5..1442e6bdc 100644
--- a/templates/web/base/alert/index.html
+++ b/templates/web/base/alert/index.html
@@ -1,4 +1,5 @@
-[% INCLUDE 'header.html', title = loc('Local RSS feeds and email alerts'), bodyclass = 'fullwidthpage' %]
+[% SET bodyclass = 'alertpage fullwidthpage' %]
+[% INCLUDE 'header.html', title = loc('Local RSS feeds and email alerts') %]
<h1>[% loc('Local RSS feeds and email alerts') %]</h1>
diff --git a/templates/web/base/around/index.html b/templates/web/base/around/index.html
index f2be5575c..8f6af6225 100644
--- a/templates/web/base/around/index.html
+++ b/templates/web/base/around/index.html
@@ -1,5 +1,6 @@
[% pre_container_extra = INCLUDE 'around/postcode_form.html' %]
-[% INCLUDE 'header.html', title = loc('Reporting a problem'), bodyclass = 'frontpage fullwidthpage' %]
+[% SET bodyclass = 'frontpage fullwidthpage' ~%]
+[% INCLUDE 'header.html', title = loc('Reporting a problem') %]
[%
# NOTE ON PARTIAL REPORTS:
diff --git a/templates/web/base/around/lookup_by_ref.html b/templates/web/base/around/lookup_by_ref.html
index 5c08a7ceb..747354c1e 100644
--- a/templates/web/base/around/lookup_by_ref.html
+++ b/templates/web/base/around/lookup_by_ref.html
@@ -1,5 +1,6 @@
[% pre_container_extra = INCLUDE 'around/postcode_form.html', pc = ref %]
-[% INCLUDE 'header.html', title = loc('Reporting a problem'), bodyclass = 'frontpage fullwidthpage' %]
+[% SET bodyclass = 'frontpage fullwidthpage' ~%]
+[% INCLUDE 'header.html', title = loc('Reporting a problem') %]
[% IF matching_reports %]
<p>[% loc('We found more than one match for that problem reference:') %]</p>
diff --git a/templates/web/base/common_header_tags.html b/templates/web/base/common_header_tags.html
index 321e45649..f65f1e336 100644
--- a/templates/web/base/common_header_tags.html
+++ b/templates/web/base/common_header_tags.html
@@ -33,3 +33,21 @@
[% "$title :: " | html IF title %]
[% site_name -%]
</title>
+
+[% IF bodyclass.match('frontpage') %]
+ <link rel="prefetch" href="[% version('/js/validation_rules.js') %]">
+ [%~ IF NOT c.user_exists OR NOT (c.user.from_body OR c.user.is_superuser) %]
+ <link rel="prefetch" href="[% version('/jslib/jquery-1.7.2.min.js') %]">
+ [%~ END %]
+ <link rel="prefetch" href="[% version('/js/jquery.multi-select.js') %]">
+ <link rel="prefetch" href="[% version('/vendor/jquery.validate.min.js') %]">
+ <link rel="prefetch" href="[% version('/cobrands/fixmystreet/fixmystreet.js') %]">
+[% END %]
+[% IF NOT bodyclass.match('mappage') %]
+ [% FOR script IN map_js %]
+ <link rel="prefetch" href="[% IF script.match('^/'); version(script); ELSE; script; END %]">
+ [% END %]
+ <link rel="prefetch" href="[% version('/cobrands/fixmystreet/map.js') %]">
+ <link rel="prefetch" href="[% version('/vendor/dropzone.min.js') %]">
+ <link rel="prefetch" href="[% version('/vendor/fancybox/jquery.fancybox-1.3.4.pack.js') %]">
+[% END %]
diff --git a/templates/web/base/common_scripts.html b/templates/web/base/common_scripts.html
index 057ecfd67..c6225e8fa 100644
--- a/templates/web/base/common_scripts.html
+++ b/templates/web/base/common_scripts.html
@@ -7,28 +7,75 @@ scripts = [];
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('/vendor/jquery.validate.min.js'),
- version('/vendor/dropzone.min.js'),
- version('/js/jquery.multi-select.js'),
- version('/cobrands/fixmystreet/fixmystreet.js'),
);
-IF c.user_exists AND (c.user.from_body OR c.user.is_superuser);
+SET jquery_loaded = 0;
+SET geolocation_loaded = 0;
+IF bodyclass.match('frontpage');
+ SET geolocation_loaded = 1;
scripts.push(
- version('/cobrands/fixmystreet/staff.js')
+ version('/js/front.js'),
+ version('/js/geolocation.js'),
+ );
+ELSIF bodyclass.match('alertpage');
+ SET geolocation_loaded = 1;
+ scripts.push(
+ version('/js/geolocation.js'),
+ );
+ELSE;
+ SET jquery_loaded = 1;
+ scripts.push(
+ version('/js/validation_rules.js'),
+ version('/jslib/jquery-1.7.2.min.js'),
+ version('/js/jquery.multi-select.js'),
+ version('/vendor/jquery.validate.min.js'),
+ version('/cobrands/fixmystreet/fixmystreet.js'),
);
END;
-FOR script IN map_js;
+FOR script IN extra_js;
scripts.push(script);
END;
-scripts.push(
- version('/cobrands/fixmystreet/map.js'),
- version('/cobrands/fixmystreet/offline.js'),
-);
+IF c.user_exists AND (c.user.from_body OR c.user.is_superuser);
+ IF NOT geolocation_loaded;
+ scripts.push(
+ version('/js/geolocation.js'),
+ );
+ END;
+ IF NOT jquery_loaded;
+ scripts.push(
+ version('/jslib/jquery-1.7.2.min.js'),
+ );
+ END;
+ scripts.push(
+ version('/cobrands/fixmystreet/staff.js')
+ );
+ IF c.user.has_body_permission_to('planned_reports');
+ scripts.push(
+ version('/cobrands/fixmystreet/offline.js'),
+ );
+ END;
+END;
+
+IF bodyclass.match('mappage');
+ FOR script IN map_js;
+ IF script.match('^/');
+ scripts.push(version(script));
+ ELSE;
+ scripts.push(script);
+ END;
+ END;
+ scripts.push(
+ version('/cobrands/fixmystreet/map.js'),
+ version('/vendor/dropzone.min.js'),
+ version('/vendor/fancybox/jquery.fancybox-1.3.4.pack.js'),
+ );
+ELSE;
+ scripts.push(
+ version('/cobrands/fixmystreet/prefetch-polyfill.js'),
+ );
+END;
IF admin;
scripts.push(
@@ -37,10 +84,6 @@ IF admin;
);
END;
-FOR script IN extra_js;
- scripts.push(script);
-END;
-
TRY;
PROCESS 'footer_extra_js.html';
CATCH file;
diff --git a/templates/web/base/front/javascript.html b/templates/web/base/front/javascript.html
deleted file mode 100644
index 69eb626f7..000000000
--- a/templates/web/base/front/javascript.html
+++ /dev/null
@@ -1,12 +0,0 @@
-[%
-# Assume using OpenStreetMap maps
-map_js = [
- version('/vendor/yepnope.js'),
- [ version('/cobrands/fixmystreet/front.js'), {
- id = 'script_front',
- 'data-scripts' = version('/vendor/OpenLayers/OpenLayers.fixmystreet.js') _ ',' _
- version('/js/map-OpenLayers.js') _ ',' _
- version('/js/map-OpenStreetMap.js')
- } ],
-]
-%]
diff --git a/templates/web/base/header.html b/templates/web/base/header.html
index 37c81f454..faba02519 100644
--- a/templates/web/base/header.html
+++ b/templates/web/base/header.html
@@ -21,11 +21,6 @@
[% INCLUDE 'header_opengraph.html' %]
[% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
-
- [% IF c.req.uri.host == 'osm.fixmystreet.com' %]
- <link rel="canonical" href="https://www.fixmystreet.com[% c.req.uri.path_query %]">
- [% END %]
-
[% TRY %][% PROCESS 'header_extra.html' %][% CATCH file %][% END %]
</head>
diff --git a/templates/web/base/index.html b/templates/web/base/index.html
index 92c6b1eed..620c1a2be 100644
--- a/templates/web/base/index.html
+++ b/templates/web/base/index.html
@@ -1,7 +1,6 @@
-[% PROCESS 'front/javascript.html' %]
-
[% pre_container_extra = PROCESS 'around/postcode_form.html' %]
-[% INCLUDE 'header.html', title = '', bodyclass = 'frontpage fullwidthpage' inline_css = 1 %]
+[% SET bodyclass = 'frontpage fullwidthpage' %]
+[% INCLUDE 'header.html', title = '', inline_css = 1 %]
[% IF error %]
<p class="form-error">[% error %]</p>
diff --git a/templates/web/base/maps/bing.html b/templates/web/base/maps/bing.html
deleted file mode 100644
index df45eced5..000000000
--- a/templates/web/base/maps/bing.html
+++ /dev/null
@@ -1,8 +0,0 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-bing-ol.js'),
-];
-map_html = INCLUDE maps/openlayers.html
-%]
diff --git a/templates/web/base/maps/fms.html b/templates/web/base/maps/fms.html
index ff5b4eab6..286ecc8ff 100644
--- a/templates/web/base/maps/fms.html
+++ b/templates/web/base/maps/fms.html
@@ -1,9 +1,3 @@
[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-bing-ol.js'),
- version('/js/map-fms.js'),
-];
map_html = INCLUDE maps/openlayers.html include_key = 1
%]
diff --git a/templates/web/base/maps/google-ol.html b/templates/web/base/maps/google-ol.html
index d88043403..3cd21fab3 100644
--- a/templates/web/base/maps/google-ol.html
+++ b/templates/web/base/maps/google-ol.html
@@ -1,17 +1,3 @@
-[%
-google_maps_url = "https://maps.googleapis.com/maps/api/js?v=3";
-IF c.config.GOOGLE_MAPS_API_KEY;
- google_maps_url = google_maps_url _ "&amp;key=" _ c.config.GOOGLE_MAPS_API_KEY;
-END;
-
-map_js = [
- google_maps_url,
- version('/vendor/OpenLayers/OpenLayers.google.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-google-ol.js'),
-]
-%]
-
[% map_sub_links = BLOCK %]
<a class="hidden-nojs" id="map_layer_toggle" href="">[% loc('Satellite') %]</a>
[% END %]
diff --git a/templates/web/base/maps/google.html b/templates/web/base/maps/google.html
index ec9885a04..e8c07b113 100644
--- a/templates/web/base/maps/google.html
+++ b/templates/web/base/maps/google.html
@@ -6,12 +6,6 @@
color: #000;
}
</style>
-[%
-map_js = [
- "http://maps.googleapis.com/maps/api/js?sensor=false",
- version('/js/map-google.js'),
-]
-%]
[% map_html = BLOCK %]
<script nonce="[% csp_nonce %]">
diff --git a/templates/web/base/maps/mapquest-attribution.html b/templates/web/base/maps/mapquest-attribution.html
deleted file mode 100644
index 43d6106a5..000000000
--- a/templates/web/base/maps/mapquest-attribution.html
+++ /dev/null
@@ -1,8 +0,0 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-OpenStreetMap.js'),
-];
-map_html = INCLUDE maps/openlayers.html
-%]
diff --git a/templates/web/base/maps/osm-streetview.html b/templates/web/base/maps/osm-streetview.html
deleted file mode 100644
index f68f53039..000000000
--- a/templates/web/base/maps/osm-streetview.html
+++ /dev/null
@@ -1,8 +0,0 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-streetview.js'),
-];
-map_html = INCLUDE maps/openlayers.html
-%]
diff --git a/templates/web/base/maps/osm-toner-lite.html b/templates/web/base/maps/osm-toner-lite.html
deleted file mode 100644
index 22b6636c5..000000000
--- a/templates/web/base/maps/osm-toner-lite.html
+++ /dev/null
@@ -1,9 +0,0 @@
-[%
-map_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'),
-];
-map_html = INCLUDE maps/openlayers.html
-%]
diff --git a/templates/web/base/maps/osm.html b/templates/web/base/maps/osm.html
index 43d6106a5..51c3ad388 100644
--- a/templates/web/base/maps/osm.html
+++ b/templates/web/base/maps/osm.html
@@ -1,8 +1,3 @@
[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-OpenStreetMap.js'),
-];
map_html = INCLUDE maps/openlayers.html
%]
diff --git a/templates/web/base/report/_inspect.html b/templates/web/base/report/_inspect.html
index e4e3ac9e6..5088332ce 100644
--- a/templates/web/base/report/_inspect.html
+++ b/templates/web/base/report/_inspect.html
@@ -44,7 +44,7 @@
<a target="_blank" href="https://www.google.com/maps/dir/Current+Location/[% problem.latitude %],[% problem.longitude %]" class="btn btn--block btn--navigate">[% loc('Navigate to this problem') %]</a>
</p>
<p>
- <a href="#" class="btn btn--block btn--geolocate" id="geolocate_link">[% loc('Set to my current location') %]</a>
+ <a href="#" class="btn btn--block btn--geolocate">[% loc('Set to my current location') %]</a>
</p>
</div>
diff --git a/templates/web/base/report/photo-js.html b/templates/web/base/report/photo-js.html
index 8c8c91669..6f3dd55d1 100644
--- a/templates/web/base/report/photo-js.html
+++ b/templates/web/base/report/photo-js.html
@@ -1,6 +1,3 @@
[% extra_css = BLOCK %]
<link rel="stylesheet" href="[% version('/vendor/fancybox/jquery.fancybox-1.3.4.css') %]">
[% END %]
-[% extra_js = [
- version('/vendor/fancybox/jquery.fancybox-1.3.4.pack.js')
-] %]
diff --git a/templates/web/bristol/maps/bristol.html b/templates/web/bristol/maps/bristol.html
index f13ea4d32..1dcc82635 100644
--- a/templates/web/bristol/maps/bristol.html
+++ b/templates/web/bristol/maps/bristol.html
@@ -1,12 +1,3 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.bristol.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-wmts-base.js'),
- version('/js/map-wmts-bristol.js'),
-]
-%]
-
[% map_html = BLOCK %]
[% INCLUDE maps/openlayers.html %]
[% INCLUDE maps/wmts_config.html %]
diff --git a/templates/web/bromley/maps/bromley.html b/templates/web/bromley/maps/bromley.html
deleted file mode 100644
index 71a150f5a..000000000
--- a/templates/web/bromley/maps/bromley.html
+++ /dev/null
@@ -1,10 +0,0 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.fixmystreet.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-bing-ol.js'),
- version('/js/map-fms.js'),
- version('/cobrands/bromley/map.js'),
-];
-map_html = INCLUDE maps/openlayers.html include_key = 1
-%]
diff --git a/templates/web/fixmystreet.com/about/professional.html b/templates/web/fixmystreet.com/about/professional.html
deleted file mode 100644
index 0978d19bc..000000000
--- a/templates/web/fixmystreet.com/about/professional.html
+++ /dev/null
@@ -1,720 +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 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/footer_extra_js.html b/templates/web/fixmystreet.com/footer_extra_js.html
index d5ed1543d..cb1b78743 100644
--- a/templates/web/fixmystreet.com/footer_extra_js.html
+++ b/templates/web/fixmystreet.com/footer_extra_js.html
@@ -1,5 +1,16 @@
-[% scripts.push(
- version('/vendor/OpenLayers.Projection.OrdnanceSurvey.js'),
- version('/cobrands/fixmystreet.com/vendor/jquery.cookie.min.js'),
- version('/cobrands/fixmystreet.com/js.js'),
-) %]
+[%
+IF bodyclass.match('mappage');
+ scripts.push(
+ version('/vendor/OpenLayers.Projection.OrdnanceSurvey.js'),
+ );
+END;
+IF bodyclass.match('frontpage');
+ scripts.push(
+ version('/cobrands/fixmystreet.com/front.js'),
+ );
+ELSIF NOT bodyclass.match('alertpage');
+ scripts.push(
+ version('/cobrands/fixmystreet.com/js.js'),
+ );
+END;
+%]
diff --git a/templates/web/fixmystreet.com/front/javascript.html b/templates/web/fixmystreet.com/front/javascript.html
deleted file mode 100644
index 4bf586b70..000000000
--- a/templates/web/fixmystreet.com/front/javascript.html
+++ /dev/null
@@ -1,12 +0,0 @@
-[%
-map_js = [
- version('/vendor/yepnope.js'),
- [ version('/cobrands/fixmystreet/front.js'), {
- id = "script_front",
- '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/header_extra.html b/templates/web/fixmystreet.com/header_extra.html
index dc0f86693..74280a6f9 100644
--- a/templates/web/fixmystreet.com/header_extra.html
+++ b/templates/web/fixmystreet.com/header_extra.html
@@ -1,3 +1,15 @@
+[% IF NOT bodyclass.match('mappage') %]
+<link rel="prefetch" href="[% version('/vendor/OpenLayers.Projection.OrdnanceSurvey.js') %]">
+[% END %]
+
+[% IF bodyclass.match('frontpage') %]
+<link rel="prefetch" href="[% version('/cobrands/fixmystreet.com/js.js') %]">
+[% END %]
+
+[% IF c.req.uri.host == 'osm.fixmystreet.com' %]
+ <link rel="canonical" href="https://www.fixmystreet.com[% c.req.uri.path_query %]">
+[% END %]
+
<meta name='theme-color' content='#ffd000'>
<link rel="Shortcut Icon" type="image/x-icon" href="/cobrands/fixmystreet.com/favicon.ico">
diff --git a/templates/web/zurich/admin/report_edit-sdm.html b/templates/web/zurich/admin/report_edit-sdm.html
index 9f5433d8b..07fc9ad36 100644
--- a/templates/web/zurich/admin/report_edit-sdm.html
+++ b/templates/web/zurich/admin/report_edit-sdm.html
@@ -1,9 +1,9 @@
[%
PROCESS "report/photo-js.html";
PROCESS "maps/zurich.html";
+ SET bodyclass = 'mappage';
PROCESS 'admin/header.html'
- title = tprintf(loc('Editing problem %d'), problem.id ),
- bodyclass = 'mappage';
+ title = tprintf(loc('Editing problem %d'), problem.id );
PROCESS 'admin/report_blocks.html'
-%]
diff --git a/templates/web/zurich/admin/report_edit.html b/templates/web/zurich/admin/report_edit.html
index aa5029eb7..7e88fab30 100644
--- a/templates/web/zurich/admin/report_edit.html
+++ b/templates/web/zurich/admin/report_edit.html
@@ -1,9 +1,9 @@
[%
PROCESS "report/photo-js.html";
PROCESS "maps/zurich.html";
+ SET bodyclass = 'mappage';
INCLUDE 'admin/header.html'
- title = tprintf(loc('Editing problem %d'), problem.id ),
- bodyclass = 'mappage';
+ title = tprintf(loc('Editing problem %d'), problem.id );
PROCESS 'admin/report_blocks.html'
-%]
diff --git a/templates/web/zurich/maps/zurich.html b/templates/web/zurich/maps/zurich.html
index a9499f657..4000e1e52 100644
--- a/templates/web/zurich/maps/zurich.html
+++ b/templates/web/zurich/maps/zurich.html
@@ -1,13 +1,3 @@
-[%
-map_js = [
- version('/vendor/OpenLayers/OpenLayers.zurich.js'),
- version('/js/OpenLayers.Projection.CH1903Plus.js'),
- version('/js/map-OpenLayers.js'),
- version('/js/map-wmts-base.js'),
- version('/js/map-wmts-zurich.js'),
-]
-%]
-
[% map_sub_links = BLOCK %]
<a class="hidden-nojs" id="map_layer_toggle" href="">Stadtplan</a>
[% END %]
diff --git a/templates/web/zurich/reports/index.html b/templates/web/zurich/reports/index.html
index 8bec64c86..1389c666c 100755
--- a/templates/web/zurich/reports/index.html
+++ b/templates/web/zurich/reports/index.html
@@ -1,8 +1,8 @@
[%
PROCESS "maps/${map.type}.html";
+ SET bodyclass = 'mappage';
INCLUDE 'header.html',
- title = loc('Summary reports'),
- bodyclass = 'mappage';
+ title = loc('Summary reports');
%]
[% map_html %]
</div>