summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Conf.pm7
-rw-r--r--httemplate/elements/coord-links.html9
-rw-r--r--httemplate/view/directions.html7
-rw-r--r--httemplate/view/map.html5
4 files changed, 23 insertions, 5 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 2da69f8a2..57761bb48 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -2069,6 +2069,13 @@ and customer address. Include units.',
},
{
+ 'key' => 'google_maps_api_key',
+ 'section' => 'addresses',
+ 'description' => 'API key for google maps. This must be set for map and directions links to appear on customer pages. See <a href="https://developers.google.com/maps/documentation/javascript/get-api-key">Getting a Google Maps API Key</a>',
+ 'type' => 'text',
+ },
+
+ {
'key' => 'show_ship_company',
'section' => 'addresses',
'description' => 'Turns on display/collection of a "service company name" field for customers.',
diff --git a/httemplate/elements/coord-links.html b/httemplate/elements/coord-links.html
index 45b813201..a755791ae 100644
--- a/httemplate/elements/coord-links.html
+++ b/httemplate/elements/coord-links.html
@@ -1,5 +1,7 @@
<& /elements/init_overlib.html &>
+% if ( $apikey ) {
+
<& /elements/popup_link.html,
'action' => $p. 'view/map.html?'. $query,
'label' => mt('map'),
@@ -19,6 +21,8 @@
&>
% }
+% } # end if $apikey
+
<A HREF="<%$p%>view/kml.cgi?<% $query %>"><% mt('earth') |h %></A>
<%init>
@@ -45,10 +49,13 @@ $m->interp->apply_escapes($js_name, 'js_string');
$js_name =~ s/^'//;
$js_name =~ s/'$//;
+my $conf = new FS::Conf;
+my $apikey = $conf->config('google_maps_api_key');
+
#for directions link
my @origin = $opt{company_address}
? @{ $opt{company_address} }
- : FS::Conf->new->config('company_address', $agentnum);
+ : $conf->config('company_address', $agentnum);
my $origin = uri_escape(join(',', @origin));
</%init>
diff --git a/httemplate/view/directions.html b/httemplate/view/directions.html
index f14a11a07..a07df403b 100644
--- a/httemplate/view/directions.html
+++ b/httemplate/view/directions.html
@@ -38,8 +38,9 @@ body { height: 100%; margin: 0px; padding: 0px }
}
</style>
-<script type="text/javascript"
-src="https://maps.google.com/maps/api/js?v=3.4&sensor=false">
+% my $conf = new FS::Conf;
+% my $apikey = $conf->config('google_maps_api_key');
+<script type="text/javascript" src="https://maps.google.com/maps/api/js?v=3&key=<% $apikey %>">
</script>
<script type="text/javascript">
@@ -62,6 +63,8 @@ function show_route() {
directionsService.route(directionsRequest, function(result, status) {
if ( status == google.maps.DirectionsStatus.OK ) {
directionsDisplay.setDirections(result);
+ } else {
+ document.body.innerHTML = ('<P STYLE="color: red;">Directions lookup failed with the following error: '+status+'</P>');
}
});
}
diff --git a/httemplate/view/map.html b/httemplate/view/map.html
index 3122de6a0..d996a330c 100644
--- a/httemplate/view/map.html
+++ b/httemplate/view/map.html
@@ -22,8 +22,9 @@ body { height: 100%; margin: 0px; padding: 0px }
@media print { #map_canvas { height: 500px; margin: 0; } }
</style>
-<script type="text/javascript"
-src="https://maps.google.com/maps/api/js?v=3.4&sensor=false">
+% my $conf = new FS::Conf;
+% my $apikey = $conf->config('google_maps_api_key');
+<script type="text/javascript" src="https://maps.google.com/maps/api/js?v=3&key=<% $apikey %>">
</script>
<script type="text/javascript">