diff options
-rw-r--r-- | FS/FS/Conf.pm | 7 | ||||
-rw-r--r-- | httemplate/elements/coord-links.html | 9 | ||||
-rw-r--r-- | httemplate/view/directions.html | 7 | ||||
-rw-r--r-- | httemplate/view/map.html | 5 |
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"> |