aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--CHANGELOG.md1
-rw-r--r--templates/web/angus/header.html8
-rw-r--r--templates/web/base/alert/index.html1
-rw-r--r--templates/web/base/around/postcode_form.html1
-rw-r--r--templates/web/base/common_header_tags.html2
-rw-r--r--templates/web/base/common_scripts.html1
-rw-r--r--templates/web/base/header.html8
-rw-r--r--templates/web/base/header/css.html11
-rw-r--r--templates/web/base/index.html2
-rw-r--r--templates/web/base/js/translation_strings.html1
-rw-r--r--templates/web/fiksgatami/header.html9
-rw-r--r--templates/web/fixmystreet.com/header/css.html37
-rw-r--r--templates/web/hart/header.html9
-rw-r--r--templates/web/oxfordshire/header.html8
-rw-r--r--templates/web/stevenage/header.html8
-rw-r--r--templates/web/warwickshire/header.html8
-rw-r--r--templates/web/zurich/header.html8
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js49
-rw-r--r--web/cobrands/fixmystreet/staff.js2
-rw-r--r--web/cobrands/sass/_base.scss65
-rw-r--r--web/cobrands/sass/_fixedthead.scss4
-rw-r--r--web/js/jquery.fixedthead.js81
-rw-r--r--web/vendor/geo.min.js85
24 files changed, 69 insertions, 342 deletions
diff --git a/.gitignore b/.gitignore
index 2c2171260..e5a3f23c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,7 +19,7 @@ FixMyBarangay.po
/web/css/main.css
/web/cobrands/*/*.css
/web/cobrands/*/*.css.map
-*.auto.min.js
+*.auto.*
# Photo upload cache
/web/photo
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cc0395824..a5224b3fd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -38,6 +38,7 @@
- Admins can now unban users #1881
- UK:
- Use SVG logo, inlined on front page. #1887
+ - Inline critical CSS on front page.
* v2.2 (13th September 2017)
- New features:
diff --git a/templates/web/angus/header.html b/templates/web/angus/header.html
index c1d9870cd..1814045cb 100644
--- a/templates/web/angus/header.html
+++ b/templates/web/angus/header.html
@@ -16,13 +16,7 @@
<meta name="mobileoptimized" content="0">
[% INCLUDE 'header_opengraph.html' %]
- <link rel="stylesheet" href="[% version('/cobrands/angus/base.css') %]">
- <link rel="stylesheet" href="[% version('/cobrands/angus/layout.css') %]" media="(min-width:48em)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/angus/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
[% IF c.req.uri.host == 'osm.fixmystreet.com' %]
diff --git a/templates/web/base/alert/index.html b/templates/web/base/alert/index.html
index acef89a78..38ed6f6f5 100644
--- a/templates/web/base/alert/index.html
+++ b/templates/web/base/alert/index.html
@@ -34,6 +34,7 @@ within a certain distance of a particular location.', "%s is the site name"), si
<input class="green-btn" type="submit" value="[% loc('Go') %]">
</div>
</fieldset>
+ <a href="/alert/list" id="geolocate_link">&hellip; [% loc('or locate me automatically') %]</a>
</form>
[% IF photos.size %]
diff --git a/templates/web/base/around/postcode_form.html b/templates/web/base/around/postcode_form.html
index 69c95d311..e0277614d 100644
--- a/templates/web/base/around/postcode_form.html
+++ b/templates/web/base/around/postcode_form.html
@@ -21,5 +21,6 @@
<input type="hidden" name="filter_category" value="[% c.user.categories.join(",") | html %]">
[% END %]
</form>
+ <a href="[% c.uri_for('/around') %]" id="geolocate_link">&hellip; [% loc('or locate me automatically') %]</a>
</div>
</div>
diff --git a/templates/web/base/common_header_tags.html b/templates/web/base/common_header_tags.html
index e5a4d25f2..321e45649 100644
--- a/templates/web/base/common_header_tags.html
+++ b/templates/web/base/common_header_tags.html
@@ -1,7 +1,5 @@
[% SET start = c.config.ADMIN_BASE_URL IF admin %]
-<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 %]">
diff --git a/templates/web/base/common_scripts.html b/templates/web/base/common_scripts.html
index 474edc46e..057ecfd67 100644
--- a/templates/web/base/common_scripts.html
+++ b/templates/web/base/common_scripts.html
@@ -12,7 +12,6 @@ scripts.push(
version('/vendor/jquery.validate.min.js'),
version('/vendor/dropzone.min.js'),
version('/js/jquery.multi-select.js'),
- version('/vendor/geo.min.js'),
version('/cobrands/fixmystreet/fixmystreet.js'),
);
diff --git a/templates/web/base/header.html b/templates/web/base/header.html
index 4e537a7ec..37c81f454 100644
--- a/templates/web/base/header.html
+++ b/templates/web/base/header.html
@@ -19,13 +19,7 @@
<meta name="mobileoptimized" content="0">
[% INCLUDE 'header_opengraph.html' %]
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.asset_moniker _ '/base.css') %]">
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.asset_moniker _ '/layout.css') %]" media="(min-width:48em)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.asset_moniker _ '/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
[% IF c.req.uri.host == 'osm.fixmystreet.com' %]
diff --git a/templates/web/base/header/css.html b/templates/web/base/header/css.html
new file mode 100644
index 000000000..219369465
--- /dev/null
+++ b/templates/web/base/header/css.html
@@ -0,0 +1,11 @@
+[% SET base_css = version('/cobrands/' _ c.cobrand.asset_moniker _ '/base.css') %]
+[% SET layout_css = version('/cobrands/' _ c.cobrand.asset_moniker _ '/layout.css') %]
+
+<link rel="stylesheet" href="[% base_css %]">
+<link rel="stylesheet" href="[% layout_css %]" media="screen and (min-width:48em)">
+<!--[if (lt IE 9) & (!IEMobile)]>
+ <link rel="stylesheet" href="[% layout_css %]">
+<![endif]-->
+<link rel="stylesheet" href="[% version('/vendor/OpenLayers/theme/default/style.css') %]">
+
+[% extra_css %]
diff --git a/templates/web/base/index.html b/templates/web/base/index.html
index 8cb127e6a..92c6b1eed 100644
--- a/templates/web/base/index.html
+++ b/templates/web/base/index.html
@@ -1,7 +1,7 @@
[% PROCESS 'front/javascript.html' %]
[% pre_container_extra = PROCESS 'around/postcode_form.html' %]
-[% INCLUDE 'header.html', title = '', bodyclass = 'frontpage fullwidthpage' %]
+[% INCLUDE 'header.html', title = '', bodyclass = 'frontpage fullwidthpage' inline_css = 1 %]
[% IF error %]
<p class="form-error">[% error %]</p>
diff --git a/templates/web/base/js/translation_strings.html b/templates/web/base/js/translation_strings.html
index 97945a78e..ed95335a6 100644
--- a/templates/web/base/js/translation_strings.html
+++ b/templates/web/base/js/translation_strings.html
@@ -25,7 +25,6 @@
fms_extra_title: '[% loc('Please enter your title') | replace("'", "\\'") %]',
first_name: '[% loc('Please enter your first name') | replace("'", "\\'") %]',
last_name: '[% loc('Please enter your second name') | replace("'", "\\'") %]',
- geolocate: '[% loc('or locate me automatically') | replace("'", "\\'") %]',
right_place: '[% loc('Right place?') | replace("'", "\\'") %]',
try_again: '[% loc('Try again') | replace("'", "\\'") %]',
place_pin_on_map: '[% loc('Place pin on map') | replace("'", "\\'") %]',
diff --git a/templates/web/fiksgatami/header.html b/templates/web/fiksgatami/header.html
index 17765948f..7c73f6060 100644
--- a/templates/web/fiksgatami/header.html
+++ b/templates/web/fiksgatami/header.html
@@ -11,14 +11,7 @@
<meta name="mobileoptimized" content="0">
[% INCLUDE 'header_opengraph.html' %]
-
- <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)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
[% TRY %][% PROCESS 'header_extra.html' %][% CATCH file %][% END %]
diff --git a/templates/web/fixmystreet.com/header/css.html b/templates/web/fixmystreet.com/header/css.html
new file mode 100644
index 000000000..d434beec8
--- /dev/null
+++ b/templates/web/fixmystreet.com/header/css.html
@@ -0,0 +1,37 @@
+[% SET base_css = version('/cobrands/' _ c.cobrand.asset_moniker _ '/base.css') %]
+[% SET layout_css = version('/cobrands/' _ c.cobrand.asset_moniker _ '/layout.css') %]
+[% SET ol_css = version('/vendor/OpenLayers/theme/default/style.css') %]
+
+[% TRY %][% critical = INSERT "header/critical.auto.min.css" %][% CATCH file %][% END %]
+
+[% IF inline_css AND critical %]
+<style id="critical">
+[% critical %]
+</style>
+
+<noscript><link rel="stylesheet" href="[% base_css %]"></noscript>
+<link rel="stylesheet" href="[% base_css %]" media="(min-width:48em)">
+<link rel="prefetch" href="[% ol_css %]" as="style">
+<link id="preload_base_css" rel="preload" href="[% base_css %]" as="style">
+<script nonce="[% csp_nonce %]">
+/* If browser *does* support preload, use stylesheets when loaded */
+document.getElementById('preload_base_css').onload = function(){this.rel='stylesheet'};
+/* Create link elements with JS because we can't use inline onload */
+// (function(d){var c=d.getElementById('critical');function a(p){var l=d.createElement("link");l.rel="preload";l.href=p;l.as="style";l.onload=function(){this.rel='stylesheet'};c.parentNode.insertBefore(l,c)}
+// a("[% base_css %]");
+// })(document);
+/*! loadCSS & rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
+(function(a){var b=function(b,h,e){function c(a){if(f.body)return a();setTimeout(function(){c(a)})}function k(){d.addEventListener&&d.removeEventListener("load",k);d.media=e||"all"}var f=a.document,d=f.createElement("link");var p=f.styleSheets;d.rel="stylesheet";d.href=b;d.media="only x";c(function(){h.parentNode.insertBefore(d,h)});var l=function(a){for(var b=d.href,c=p.length;c--;)if(p[c].href===
+b)return a();setTimeout(function(){l(a)})};d.addEventListener&&d.addEventListener("load",k);l(k)};a.loadCSS=b})(this);
+(function(a){var b={};b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}};b.poly=function(){for(var b=a.document.getElementsByTagName("link"),e=0;e<b.length;e++){var c=b[e];"preload"===c.rel&&"style"===c.getAttribute("as")&&(a.loadCSS(c.href,c,c.getAttribute("media")),c.rel=null)}};if(!b.support()){b.poly()}})(this);
+</script>
+[% ELSE %]
+<link rel="stylesheet" href="[% ol_css %]">
+<link rel="stylesheet" href="[% base_css %]">
+[% END %]
+<link rel="stylesheet" href="[% layout_css %]" media="screen and (min-width:48em)">
+<!--[if (lt IE 9) & (!IEMobile)]>
+ <link rel="stylesheet" href="[% layout_css %]">
+<![endif]-->
+
+[% extra_css %]
diff --git a/templates/web/hart/header.html b/templates/web/hart/header.html
index ee29df818..0aae5568b 100644
--- a/templates/web/hart/header.html
+++ b/templates/web/hart/header.html
@@ -11,15 +11,8 @@
<meta name="mobileoptimized" content="0">
[% INCLUDE 'header_opengraph.html' %]
-
- <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)">
+ [% INCLUDE 'header/css.html' %]
<link rel="stylesheet" href="[% version('/cobrands/hart/hart.css') %]">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
- <![endif]-->
-
[% INCLUDE 'common_header_tags.html' %]
<link rel="Shortcut Icon" type="image/x-icon" href="/cobrands/hart/favicon.ico">
diff --git a/templates/web/oxfordshire/header.html b/templates/web/oxfordshire/header.html
index 3666eb4ff..fce316bf9 100644
--- a/templates/web/oxfordshire/header.html
+++ b/templates/web/oxfordshire/header.html
@@ -13,13 +13,7 @@
<meta name="HandHeldFriendly" content="true">
<meta name="mobileoptimized" content="0">
- <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)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
[% INCLUDE 'tracking_code.html' %]
diff --git a/templates/web/stevenage/header.html b/templates/web/stevenage/header.html
index 34f5ba2b2..219486a9e 100644
--- a/templates/web/stevenage/header.html
+++ b/templates/web/stevenage/header.html
@@ -10,13 +10,7 @@
<meta name="HandHeldFriendly" content="true">
<meta name="mobileoptimized" content="0">
- <link rel="stylesheet" href="[% version('/cobrands/stevenage/base.css') %]">
- <link rel="stylesheet" href="[% version('/cobrands/stevenage/layout.css') %]" media="(min-width:48em)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
[% INCLUDE 'tracking_code.html' %]
diff --git a/templates/web/warwickshire/header.html b/templates/web/warwickshire/header.html
index 727a81c5f..6ad06f69a 100644
--- a/templates/web/warwickshire/header.html
+++ b/templates/web/warwickshire/header.html
@@ -38,13 +38,7 @@
<script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/jquery.zrssfeed.o.js') %]" type="text/javascript"></script>
<script src="[% version ('/cobrands/' _ c.cobrand.moniker _ '/vendor/gamma/homepage-slider-test.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)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
[% INCLUDE 'common_header_tags.html' %]
</head>
diff --git a/templates/web/zurich/header.html b/templates/web/zurich/header.html
index 0ab051aa7..117e44449 100644
--- a/templates/web/zurich/header.html
+++ b/templates/web/zurich/header.html
@@ -10,13 +10,7 @@
<meta name="HandHeldFriendly" content="true">
<meta name="mobileoptimized" content="0">
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/base.css') %]">
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]" media="screen and (min-width:48em)">
- [% extra_css %]
- <!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
- <![endif]-->
-
+ [% INCLUDE 'header/css.html' %]
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/themes/redmond/jquery-ui.css">
[% INCLUDE 'common_header_tags.html' %]
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index ab4a5137f..7c7b3a9d0 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -217,7 +217,7 @@ fixmystreet.geolocate = {
var spincolor = $('<span>').css("color","white").css("color") === $('#front-main').css("background-color") ? 'white' : 'yellow';
$link.append(' <img src="/cobrands/fixmystreet/images/spinner-' + spincolor + '.gif" alt="" align="bottom">');
}
- geo_position_js.getCurrentPosition(function(pos) {
+ navigator.geolocation.getCurrentPosition(function(pos) {
$link.find('img').remove();
success_callback(pos);
}, function(err) {
@@ -409,23 +409,15 @@ $.extend(fixmystreet.set_up, {
},
report_geolocation: function() {
- if (!geo_position_js.init()) {
- return;
- }
- if ($('.js-geolocate').length) {
- var link = $('.js-geolocate').attr('action');
- link = '<a href="' + link + '" id="geolocate_link">&hellip; ' + translation_strings.geolocate + '</a>';
- if ($('body.frontpage').length) {
- $('.js-geolocate').after(link);
- } else{
- $('.js-geolocate').append(link);
- }
+ if ('geolocation' in navigator) {
fixmystreet.geolocate.setup(function(pos) {
var latitude = pos.coords.latitude;
var longitude = pos.coords.longitude;
var page = $('#geolocate_link').attr('href');
location.href = page + '?latitude=' + latitude + ';longitude=' + longitude;
});
+ } else {
+ $('#geolocate_link').hide();
}
},
@@ -604,13 +596,6 @@ $.extend(fixmystreet.set_up, {
}
},
- fixed_thead: function() {
- var thead = $('.nicetable thead');
- if (thead.fixedThead) {
- thead.fixedThead();
- }
- },
-
report_list_filters: function() {
// Hide the pin filter submit button. Not needed because we'll use JS
// to refresh the map when the filter inputs are changed.
@@ -623,12 +608,6 @@ $.extend(fixmystreet.set_up, {
mobile_ui_tweaks: function() {
//move 'skip this step' link on mobile
$('.mobile #skip-this-step').addClass('chevron').wrap('<li>').parent().appendTo('#key-tools');
-
- // nicetable - on mobile shift 'name' col to be a row
- $('.mobile .nicetable th.title').remove();
- $('.mobile .nicetable td.title').each(function(i) {
- $(this).attr('colspan', 5).insertBefore($(this).parent('tr')).wrap('<tr class="heading" />');
- });
},
on_mobile_nav_click: function() {
@@ -808,26 +787,6 @@ $.extend(fixmystreet.set_up, {
});
},
- promo_elements: function() {
- // Add close buttons for .promo's
- if ($('.promo').length) {
- $('.promo').append('<a href="#" class="close-promo">x</a>');
- }
- //only close its own parent
- $('.promo').on('click', '.close-promo', function(e) {
- e.preventDefault();
- $(this).parent('.promo').animate({
- 'height':0,
- 'margin-bottom':0,
- 'padding-top':0,
- 'padding-bottom':0
- },{
- duration:500,
- queue:false
- }).fadeOut(500);
- });
- },
-
ajax_history: function() {
$('#map_sidebar').on('click', '.item-list--reports a', function(e) {
if (e.metaKey || e.ctrlKey) {
diff --git a/web/cobrands/fixmystreet/staff.js b/web/cobrands/fixmystreet/staff.js
index 32824a563..ffc529250 100644
--- a/web/cobrands/fixmystreet/staff.js
+++ b/web/cobrands/fixmystreet/staff.js
@@ -313,7 +313,7 @@ $.extend(fixmystreet.set_up, {
});
}
- if (geo_position_js.init()) {
+ if ('geolocation' in navigator) {
fixmystreet.geolocate.setup(function(pos) {
var latlon = new OpenLayers.LonLat(pos.coords.longitude, pos.coords.latitude);
var bng = latlon.clone().transform(
diff --git a/web/cobrands/sass/_base.scss b/web/cobrands/sass/_base.scss
index a3861738a..016967457 100644
--- a/web/cobrands/sass/_base.scss
+++ b/web/cobrands/sass/_base.scss
@@ -1832,67 +1832,6 @@ label .muted {
}
-table.nicetable {
- width:100%;
- margin-bottom:2em;
- thead {
- border-bottom:0.25em solid #ccc;
- th {
- font-size:0.75em;
- }
- }
- tr {
- &.a {
- background:#f6f6f6;
- }
- &.gone {
- color: #666666;
- background-color: #cccccc;
- }
- &:hover {
- background:#FFF5CC;
- cursor:pointer;
- }
- td {
- padding:0.25em;
- a {
- &:hover {
- text-decoration:none;
- }
- }
- }
- }
- .title {
- text-align: $left;
- }
- .data {
- width:12%;
- }
-}
-
-.promo {
- margin: 0 -1em 1em;
- color: $primary_text;
- background: $primary;
- padding:1em;
- overflow:hidden;
- position: relative;
- .close-promo {
- position:absolute;
- top:0.5em;
- #{$right}: 0.5em;
- display:block;
- width:16px;
- height:16px;
- text-indent:-999999px;
- background:url($image-sprite) -341px -263px no-repeat;
- @include border-radius(4px);
- &:hover {
- background:#222 url($image-sprite) -341px -223px no-repeat;
- }
- }
-}
-
.alert {
margin: 0 -1em 1em;
background:#ff0000;
@@ -2019,6 +1958,9 @@ table.nicetable {
}
}
}
+.no-js #geolocate_link {
+ display: none !important;
+}
#front-howto {
#front_stats {
@@ -2408,7 +2350,6 @@ table.nicetable {
}
@import "_admin";
-@import "_fixedthead";
@import "_dropzone";
@import "_multiselect";
@import "_autocomplete";
diff --git a/web/cobrands/sass/_fixedthead.scss b/web/cobrands/sass/_fixedthead.scss
deleted file mode 100644
index c1896e5d8..000000000
--- a/web/cobrands/sass/_fixedthead.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.js-fixed-thead__clone {
- position: fixed;
- background: #fff;
-} \ No newline at end of file
diff --git a/web/js/jquery.fixedthead.js b/web/js/jquery.fixedthead.js
deleted file mode 100644
index 33e60f721..000000000
--- a/web/js/jquery.fixedthead.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * jQuery.fixedThead.js
- * By Zarino at mySociety
- */
-
-(function ($) {
-
- // Call this on a <thead> element and it'll be given a class
- // of '.js-fixed-thead__clone' when you scroll down. eg:
- // $('#my-table thead').fixedThead()
- //
- // You'll probably want to specify some CSS styles like:
- // .js-fixed-thead__clone { position: fixed; background: #fff; }
-
- $.fn.fixedThead = function() {
-
- var calculateCloneDimensions = function calculateCloneDimensions($originalThead, $cloneThead){
- $cloneThead.css({
- width: $originalThead.width()
- });
-
- $('tr', $originalThead).each(function(tr_index, tr){
- $('th', tr).each(function(th_index, th){
- $cloneThead.find('tr:eq(' + tr_index + ') th:eq(' + th_index + ')').css({
- width: $(th).width()
- });
- });
- });
- }
-
- var showOrHideClone = function showOrHideClone($table, $originalThead, $cloneThead){
- var bounds = $table[0].getBoundingClientRect();
-
- // First we detect whether *any* of the table is visible,
- // then, if it is, we position the fixed thead so that it
- // never extends outside of the table bounds even when the
- // visible portion of the table is shorter than the thead.
-
- if(bounds.top <= 0 && bounds.bottom >= 0){
- $cloneThead.css('display', $originalThead.css('display'));
-
- var rowHeight = $cloneThead.outerHeight();
- if(bounds.bottom < rowHeight){
- $cloneThead.css({
- top: (rowHeight - bounds.bottom) * -1
- });
- } else {
- $cloneThead.css({
- top: 0
- });
- }
-
- } else {
- $cloneThead.css('display', 'none');
- }
- }
-
- return this.each(function() {
- var $originalThead = $(this);
- var $table = $originalThead.parent('table');
- var $cloneThead = $originalThead.clone().addClass('js-fixed-thead__clone');
-
- $cloneThead.insertAfter($originalThead);
- $cloneThead.css('display', 'none');
-
- calculateCloneDimensions($originalThead, $cloneThead);
- showOrHideClone($table, $originalThead, $cloneThead);
-
- $(window).resize(function(){
- calculateCloneDimensions($originalThead, $cloneThead);
- showOrHideClone($table, $originalThead, $cloneThead);
- });
-
- $(window).scroll(function(){
- showOrHideClone($table, $originalThead, $cloneThead);
- });
- });
-
- };
-
-}(jQuery));
diff --git a/web/vendor/geo.min.js b/web/vendor/geo.min.js
deleted file mode 100644
index 4f44b30ca..000000000
--- a/web/vendor/geo.min.js
+++ /dev/null
@@ -1,85 +0,0 @@
-// geo-location-javascript v0.4.8 http://code.google.com/p/geo-location-javascript/ Copyright (c) 2009 Stan Wiechers. Licensed under the MIT licenses.
-
-var bb_success;var bb_error;var bb_blackberryTimeout_id=-1;function handleBlackBerryLocationTimeout()
-{if(bb_blackberryTimeout_id!=-1)
-{bb_error({message:"Timeout error",code:3});}}
-function handleBlackBerryLocation()
-{clearTimeout(bb_blackberryTimeout_id);bb_blackberryTimeout_id=-1;if(bb_success&&bb_error)
-{if(blackberry.location.latitude==0&&blackberry.location.longitude==0)
-{bb_error({message:"Position unavailable",code:2});}
-else
-{var timestamp=null;if(blackberry.location.timestamp)
-{timestamp=new Date(blackberry.location.timestamp);}
-bb_success({timestamp:timestamp,coords:{latitude:blackberry.location.latitude,longitude:blackberry.location.longitude}});}
-bb_success=null;bb_error=null;}}
-var geo_position_js=function(){var pub={};var provider=null;var u="undefined";pub.showMap=function(latitude,longitude)
-{if(typeof(blackberry)!=u)
-{blackberry.launch.newMap({"latitude":latitude*100000,"longitude":-longitude*100000});}
-else
-{window.location="http://maps.google.com/maps?q=loc:"+latitude+","+longitude;}}
-pub.getCurrentPosition=function(success,error,opts)
-{provider.getCurrentPosition(success,error,opts);}
-pub.init=function()
-{try
-{if(typeof(geo_position_js_simulator)!=u)
-{provider=geo_position_js_simulator;}
-else if(typeof(bondi)!=u&&typeof(bondi.geolocation)!=u)
-{provider=bondi.geolocation;}
-else if(typeof(navigator.geolocation)!=u)
-{provider=navigator.geolocation;pub.getCurrentPosition=function(success,error,opts)
-{function _success(p)
-{if(typeof(p.latitude)!=u)
-{success({timestamp:p.timestamp,coords:{latitude:p.latitude,longitude:p.longitude}});}
-else
-{success(p);}}
-provider.getCurrentPosition(_success,error,opts);}}
-else if(typeof(window.blackberry)!=u&&blackberry.location.GPSSupported)
-{if(typeof(blackberry.location.setAidMode)==u)
-{return false;}
-blackberry.location.setAidMode(2);pub.getCurrentPosition=function(success,error,opts)
-{bb_success=success;bb_error=error;if(opts['timeout'])
-{bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",opts['timeout']);}
-else
-{bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",60000);}
-blackberry.location.onLocationUpdate("handleBlackBerryLocation()");blackberry.location.refreshLocation();}
-provider=blackberry.location;}
-else if(typeof(window.google)!="undefined"&&typeof(google.gears)!="undefined")
-{provider=google.gears.factory.create('beta.geolocation');pub.getCurrentPosition=function(successCallback,errorCallback,options)
-{function _successCallback(p)
-{if(typeof(p.latitude)!="undefined")
-{successCallback({timestamp:p.timestamp,coords:{latitude:p.latitude,longitude:p.longitude}});}
-else
-{successCallback(p);}}
-provider.getCurrentPosition(_successCallback,errorCallback,options);}}
-else if(typeof(Mojo)!=u&&typeof(Mojo.Service.Request)!="Mojo.Service.Request")
-{provider=true;pub.getCurrentPosition=function(success,error,opts)
-{parameters={};if(opts)
-{if(opts.enableHighAccuracy&&opts.enableHighAccuracy==true)
-{parameters.accuracy=1;}
-if(opts.maximumAge)
-{parameters.maximumAge=opts.maximumAge;}
-if(opts.responseTime)
-{if(opts.responseTime<5)
-{parameters.responseTime=1;}
-else if(opts.responseTime<20)
-{parameters.responseTime=2;}
-else
-{parameters.timeout=3;}}}
-r=new Mojo.Service.Request('palm://com.palm.location',{method:"getCurrentPosition",parameters:parameters,onSuccess:function(p){success({timestamp:p.timestamp,coords:{latitude:p.latitude,longitude:p.longitude,heading:p.heading}});},onFailure:function(e){if(e.errorCode==1)
-{error({code:3,message:"Timeout"});}
-else if(e.errorCode==2)
-{error({code:2,message:"Position unavailable"});}
-else
-{error({code:0,message:"Unknown Error: webOS-code"+errorCode});}}});}}
-else if(typeof(device)!=u&&typeof(device.getServiceObject)!=u)
-{provider=device.getServiceObject("Service.Location","ILocation");pub.getCurrentPosition=function(success,error,opts)
-{function callback(transId,eventCode,result){if(eventCode==4)
-{error({message:"Position unavailable",code:2});}
-else
-{success({timestamp:null,coords:{latitude:result.ReturnValue.Latitude,longitude:result.ReturnValue.Longitude,altitude:result.ReturnValue.Altitude,heading:result.ReturnValue.Heading}});}}
-var criteria=new Object();criteria.LocationInformationClass="BasicLocationInformation";provider.ILocation.GetLocation(criteria,callback);}}}
-catch(e){if(typeof(console)!=u)
-{console.log(e);}
-return false;}
-return provider!=null;}
-return pub;}(); \ No newline at end of file