diff options
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r-- | perllib/FixMyStreet/App.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Offline.pm | 4 | ||||
-rw-r--r-- | perllib/FixMyStreet/Cobrand/Angus.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map.pm | 4 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Angus.pm | 18 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Bing.pm | 6 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Bristol.pm | 7 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Bromley.pm | 8 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/FMS.pm | 7 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Google.pm | 5 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/GoogleOL.pm | 12 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/OSM.pm | 6 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/OSM/MapQuest.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/OSM/StreetView.pm | 6 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/OSM/TonerLite.pm | 7 | ||||
-rw-r--r-- | perllib/FixMyStreet/Map/Zurich.pm | 7 |
16 files changed, 94 insertions, 9 deletions
diff --git a/perllib/FixMyStreet/App.pm b/perllib/FixMyStreet/App.pm index a0477ca40..1eb197e38 100644 --- a/perllib/FixMyStreet/App.pm +++ b/perllib/FixMyStreet/App.pm @@ -212,6 +212,8 @@ sub setup_request { Memcached::set_namespace( FixMyStreet->config('FMS_DB_NAME') . ":" ); FixMyStreet::Map::set_map_class( $cobrand->map_type || $c->get_param('map_override') ); + # All pages need this, either loading it or prefetching it + $c->stash->{map_js} = FixMyStreet::Map::map_javascript(); unless ( FixMyStreet->config('MAPIT_URL') ) { my $port = $c->req->uri->port; diff --git a/perllib/FixMyStreet/App/Controller/Offline.pm b/perllib/FixMyStreet/App/Controller/Offline.pm index dceccc81f..7b17bb569 100644 --- a/perllib/FixMyStreet/App/Controller/Offline.pm +++ b/perllib/FixMyStreet/App/Controller/Offline.pm @@ -11,7 +11,6 @@ FixMyStreet::App::Controller::Offline - Catalyst Controller =head1 DESCRIPTION Offline pages Catalyst Controller. -On staging site, appcache only for people who want it. =head1 METHODS @@ -19,8 +18,7 @@ On staging site, appcache only for people who want it. sub have_appcache : Private { my ($self, $c) = @_; - return $c->user_exists && $c->user->has_body_permission_to('planned_reports') - && !FixMyStreet->staging_flag('enable_appcache', 0); + return $c->user_exists && $c->user->has_body_permission_to('planned_reports'); } sub manifest : Path("/offline/appcache.manifest") { diff --git a/perllib/FixMyStreet/Cobrand/Angus.pm b/perllib/FixMyStreet/Cobrand/Angus.pm index 51a3da56a..056101574 100644 --- a/perllib/FixMyStreet/Cobrand/Angus.pm +++ b/perllib/FixMyStreet/Cobrand/Angus.pm @@ -24,6 +24,8 @@ sub example_places { return ( 'DD8 3AP', "Canmore Street" ); } +sub map_type { 'Angus' } + sub default_show_name { 0 } sub disambiguate_location { diff --git a/perllib/FixMyStreet/Map.pm b/perllib/FixMyStreet/Map.pm index e0e3c3128..0c75ab891 100644 --- a/perllib/FixMyStreet/Map.pm +++ b/perllib/FixMyStreet/Map.pm @@ -67,6 +67,10 @@ sub display_map { return $map_class->display_map(@_); } +sub map_javascript { + $map_class->map_javascript; +} + sub map_features { my ( $c, %p ) = @_; diff --git a/perllib/FixMyStreet/Map/Angus.pm b/perllib/FixMyStreet/Map/Angus.pm new file mode 100644 index 000000000..98f5373c1 --- /dev/null +++ b/perllib/FixMyStreet/Map/Angus.pm @@ -0,0 +1,18 @@ +# FixMyStreet:Map::Angus +# More JavaScript, for street assets + +package FixMyStreet::Map::Angus; +use base 'FixMyStreet::Map::FMS'; + +use strict; + +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.angus.js', + '/js/map-OpenLayers.js', + '/js/map-bing-ol.js', + '/js/map-fms.js', + '/cobrands/fixmystreet/assets.js', + '/cobrands/angus/js.js', +] } + +1; diff --git a/perllib/FixMyStreet/Map/Bing.pm b/perllib/FixMyStreet/Map/Bing.pm index e62406349..68c9fea32 100644 --- a/perllib/FixMyStreet/Map/Bing.pm +++ b/perllib/FixMyStreet/Map/Bing.pm @@ -8,7 +8,11 @@ use strict; sub map_type { '' } -sub map_template { 'bing' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.fixmystreet.js', + '/js/map-OpenLayers.js', + '/js/map-bing-ol.js', +] } sub copyright { '' } diff --git a/perllib/FixMyStreet/Map/Bristol.pm b/perllib/FixMyStreet/Map/Bristol.pm index 0e3079b0b..a75bb5eb9 100644 --- a/perllib/FixMyStreet/Map/Bristol.pm +++ b/perllib/FixMyStreet/Map/Bristol.pm @@ -58,6 +58,13 @@ sub copyright { sub map_template { 'bristol' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.bristol.js', + '/js/map-OpenLayers.js', + '/js/map-wmts-base.js', + '/js/map-wmts-bristol.js', +] } + # Reproject a WGS84 lat/lon into BNG easting/northing sub reproject_from_latlon($$$) { my ($self, $lat, $lon) = @_; diff --git a/perllib/FixMyStreet/Map/Bromley.pm b/perllib/FixMyStreet/Map/Bromley.pm index 0cd36a2ac..1310c2a5a 100644 --- a/perllib/FixMyStreet/Map/Bromley.pm +++ b/perllib/FixMyStreet/Map/Bromley.pm @@ -9,7 +9,13 @@ use base 'FixMyStreet::Map::FMS'; use strict; -sub map_template { 'bromley' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.fixmystreet.js', + '/js/map-OpenLayers.js', + '/js/map-bing-ol.js', + '/js/map-fms.js', + '/cobrands/bromley/map.js', +] } sub map_tile_base { '-', "https://%sfix.bromley.gov.uk/tilma/%d/%d/%d.png"; diff --git a/perllib/FixMyStreet/Map/FMS.pm b/perllib/FixMyStreet/Map/FMS.pm index c38f8baca..13c7f9d87 100644 --- a/perllib/FixMyStreet/Map/FMS.pm +++ b/perllib/FixMyStreet/Map/FMS.pm @@ -11,6 +11,13 @@ use strict; sub map_template { 'fms' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.fixmystreet.js', + '/js/map-OpenLayers.js', + '/js/map-bing-ol.js', + '/js/map-fms.js', +] } + sub map_tile_base { '-', "//%stilma.mysociety.org/sv/%d/%d/%d.png"; } diff --git a/perllib/FixMyStreet/Map/Google.pm b/perllib/FixMyStreet/Map/Google.pm index 8ddf4f4e9..f40eff167 100644 --- a/perllib/FixMyStreet/Map/Google.pm +++ b/perllib/FixMyStreet/Map/Google.pm @@ -13,6 +13,11 @@ use Utils; use constant ZOOM_LEVELS => 6; use constant MIN_ZOOM_LEVEL => 13; +sub map_javascript { [ + "http://maps.googleapis.com/maps/api/js?sensor=false", + '/js/map-google.js', +] } + # display_map C PARAMS # PARAMS include: # latitude, longitude for the centre point of the map diff --git a/perllib/FixMyStreet/Map/GoogleOL.pm b/perllib/FixMyStreet/Map/GoogleOL.pm index 55032d707..44d0e77e7 100644 --- a/perllib/FixMyStreet/Map/GoogleOL.pm +++ b/perllib/FixMyStreet/Map/GoogleOL.pm @@ -13,4 +13,16 @@ sub map_type { '' } sub map_template { 'google-ol' } +sub map_javascript { + my $google_maps_url = "https://maps.googleapis.com/maps/api/js?v=3"; + my $key = FixMyStreet->config('GOOGLE_MAPS_API_KEY'); + $google_maps_url .= "&key=$key" if $key; + [ + $google_maps_url, + '/vendor/OpenLayers/OpenLayers.google.js', + '/js/map-OpenLayers.js', + '/js/map-google-ol.js', + ] +} + 1; diff --git a/perllib/FixMyStreet/Map/OSM.pm b/perllib/FixMyStreet/Map/OSM.pm index 76af99d36..47d6eeee7 100644 --- a/perllib/FixMyStreet/Map/OSM.pm +++ b/perllib/FixMyStreet/Map/OSM.pm @@ -18,6 +18,12 @@ sub map_type { 'OpenLayers.Layer.OSM.Mapnik' } sub map_template { 'osm' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.fixmystreet.js', + '/js/map-OpenLayers.js', + '/js/map-OpenStreetMap.js', +] } + sub map_tiles { my ( $self, %params ) = @_; my ( $x, $y, $z ) = ( $params{x_tile}, $params{y_tile}, $params{zoom_act} ); diff --git a/perllib/FixMyStreet/Map/OSM/MapQuest.pm b/perllib/FixMyStreet/Map/OSM/MapQuest.pm index ac80e61b5..8b24e1ba2 100644 --- a/perllib/FixMyStreet/Map/OSM/MapQuest.pm +++ b/perllib/FixMyStreet/Map/OSM/MapQuest.pm @@ -11,8 +11,6 @@ use strict; sub map_type { 'OpenLayers.Layer.OSM.MapQuestOpen' } -sub map_template { 'mapquest-attribution' } - sub map_tiles { my ( $self, %params ) = @_; my ( $x, $y, $z ) = ( $params{x_tile}, $params{y_tile}, $params{zoom_act} ); diff --git a/perllib/FixMyStreet/Map/OSM/StreetView.pm b/perllib/FixMyStreet/Map/OSM/StreetView.pm index 12fbdb19d..3281faa35 100644 --- a/perllib/FixMyStreet/Map/OSM/StreetView.pm +++ b/perllib/FixMyStreet/Map/OSM/StreetView.pm @@ -11,7 +11,11 @@ use strict; sub map_type { '' } -sub map_template { 'osm-streetview' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.fixmystreet.js', + '/js/map-OpenLayers.js', + '/js/map-streetview.js', +] } sub base_tile_url { return 'os.openstreetmap.org/sv'; diff --git a/perllib/FixMyStreet/Map/OSM/TonerLite.pm b/perllib/FixMyStreet/Map/OSM/TonerLite.pm index b0d12c453..b50611f3d 100644 --- a/perllib/FixMyStreet/Map/OSM/TonerLite.pm +++ b/perllib/FixMyStreet/Map/OSM/TonerLite.pm @@ -16,7 +16,12 @@ use strict; sub map_type { 'OpenLayers.Layer.Stamen' } -sub map_template { 'osm-toner-lite' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.fixmystreet.js', + "https://stamen-maps.a.ssl.fastly.net/js/tile.stamen.js?v1.3.0", + '/js/map-OpenLayers.js', + '/js/map-toner-lite.js', +] } sub copyright { 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://www.openstreetmap.org/copyright">ODbL</a>.' diff --git a/perllib/FixMyStreet/Map/Zurich.pm b/perllib/FixMyStreet/Map/Zurich.pm index b9d6e3297..8b4a3d931 100644 --- a/perllib/FixMyStreet/Map/Zurich.pm +++ b/perllib/FixMyStreet/Map/Zurich.pm @@ -65,6 +65,13 @@ sub copyright { sub map_template { 'zurich' } +sub map_javascript { [ + '/vendor/OpenLayers/OpenLayers.zurich.js', + '/js/OpenLayers.Projection.CH1903Plus.js', + '/js/map-OpenLayers.js', + '/js/map-wmts-base.js', + '/js/map-wmts-zurich.js', +] } # Reproject a WGS84 lat/lon into Swiss easting/northing sub reproject_from_latlon($$$) { |